带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性

带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性

1.什么是语言模型?

大家或多或少都听过 ChatGPT 是一个 LLMs,那 LLMs 是什么?LLMs 全称是 Large Language Models,中文是大语言模型。那么什么是语言模型?

语言模型简单说来,就是对人类的语言建立数学模型,注意,这里的关键是数学模型,语言模型是一个由数学公式构建的模型,并不是什么逻辑框架。这个认知非常重要。最早提出语言模型的概念的是贾里尼克博士。他是世界著名的语音识别和自然语言处理的专家,他在 IBM 实验室工作期间,提出了基于统计的语音识别的框架,这个框架结构对语音和语言处理有着深远的影响,它从根本上使得语音识别有实用的可能。在贾里尼克以前,科学家们把语音识别问题当作人工智能问题和模式匹配问题。而贾里尼克把它当成通信问题。

为何是通讯问题?为何转换成通讯问题后,就能实现语音识别?根据香农确定的现代通讯原理,所谓的通讯,也被称为信道的编码和解码,信息源先产生原始信息,然后接收方还原一个和原始信息最接近的信息。比如,你打电话的时候,问对方一句「你吃了晚饭了吗」,在传输前,通讯系统会对这句话进行编码,编成类似「100111101100000…」,但是传输过程中,一定会有信号损失,接收方收到的编码可能是「1001111011000…」,此时我们就没法解码回原来的句子了。

  • 那如何解决这个问题?

我们可以把与接收到的编码「1001111011000…」类似的句子都罗列出来,可能的情况是:

  • 吃了晚饭了吗
  • 你吃了饭了吗
  • 你吃了晚饭了吗
  • 你吃了晚饭了

然后通讯系统会计算出哪一种的可能性最大,最后把它选出来。只要噪音不大,并且传输信息有冗余,那我们就能复原出原来的信息。贾里尼克博士认为让计算机理解人类的语言,不是像教人那样教它语法,而是最好能够让计算机计算出哪一种可能的语句概率最大。这种计算自然语言每个句子的概率的数学模型,就是语言模型。

2.如何计算概率?

  • 第一阶段:最简单的方法,当然就是用统计学的方法去计算了,简单说来,就是靠输入的上下文进行统计,计算出后续词语的概率,比如「你吃了晚饭了吗」,「你吃了」后面按照概率,名词如「饭」或「晚饭」等概率更高,而不太可能是动词,如「睡」「睡觉」。这是语言模型的第一阶段,模型也被称为是统计语言模型(Statistical Language Model,SLM),其基本思想是基于马尔可夫假设建立词语测模型,根据最近的上下文预测下一个词。后续语言模型的发展又迭代了三个版本。
  • 第二阶段是神经网络语言模型(Neural Language Model,NLM),是一个用神经网络来训练模型,学习单词之间的关联性和概率关系。它能够利用大量的数据进行深度学习,从而捕捉到词汇之间更加复杂的关系。NLM 模型采用的是分层的结构,把输入的文本数据空间投射到高维的语义空间中并进行学习。通过不断地更新神经网络模型参数,NLM 的神经网络逐渐学会了文本数据的语义并能够生成连贯自然、语义准确的文本。

与前面提到的 SLM 相比,由于深度神经网络的学习能力更强,NLM 在学习语言模型时具有更好的泛化能力和适应性。比如能生成更长的文本等。但 NLM 相对来说也比较依赖更大的数据集,并且需要花很多人力在数据标注上。

  • 第三阶段是预训练语言模型(Pre-trained Language Model,PLM),是一种使用大量文本数据来训练的自然语言处理模型。相对 NLM 来说,PLM 使用无监督学习方法,因此不需要先标注数据或注明文本类型等信息。各位可能听过的 Transformer 架构就是一种预训练语言模型。
  • 第四阶段是大预言模型(Large Language Model),你可以将现在的 LLM 理解为一个训练数据特别大的 PLM,比如 GPT-2 只有 1.5B 参数,GPT-3 则到了惊人 175B,尽管 LLM 只是拓展了模型的大小,但这些大尺寸的预训练语言模型表现出了与较小的预训练语言模型不同的行为,并且在解决一些复杂任务上展现了惊人的能力(俗称涌现能力,注意这个涌现能力目前还存在争议),所以学术界为这些大型预训练语言模型命名为大语言模型 LLM。

上面这四个阶段可能比较难理解,你可以简单理解:

  1. 语言模型本质上都是在计算自然语言每个句子的概率的数学模型。当你输入一个问题给 AI 时,AI 就是用概率算出它的回答。
  2. 另外,当今的语言模型,并不是一个问题对一个答案,实际上是一个问题,多个答案,然后根据答案的概率进行排序,最后返回一个最可能的答案。

3. 开发大语言模型需要什么?

了解完大语言模型的原理之后,你可能会好奇 TA 是如何开发的。开发大语言模型的关键是什么。最近看到不少文章为了流量,甚至连 5G 通讯都说成了是开发大语言模型的关键,其实从前面的原理介绍,不难看出,大语言模型的其中一个关键点是数据。

关键一:数据

训练数据主要是所谓的语料库。今天的很多语言模型的语料库主要有以下几种:

  • Books:BookCorpus 是之前小语言模型如 GPT-2 常用的数据集,包括超过 11000 本电子书。主要包括小说和传记,最近更新时间是 2015 年 12 月。大一点的书籍语料库是 Gutenberg,它有 70000 本书,包括小说、散文、戏剧等作品,是目前最大的开源书籍语料库之一,最近更新时间是 2021 年 12 月。
  • CommonCrawl:这个是目前最大的开源网络爬虫数据库,不过这个数据包含了大量脏数据,所以目前常用的四个数据库是 C4、CC-Stories、CC-News 和 RealNews。另外还有两个基于 CommonCrawl 提取的新闻语料库 REALNEWS 和 CC-News。
  • Reddit Links:简单理解 Reddit 就是外国版本的百度贴吧 + 知乎。目前开源的数据库有 OpenWebText 和 PushShift.io
  • Wikipedia:维基百科是目前大模型广泛使用的语料库。
  • Code:一般包含 GitHub 上的开源公共代码库,或者是 StackOverflow 的数据,Google 之前发布过一个叫 BigQuery 的数据集。

实际上,训练大语言模型会混合使用不同的数据,一般不会只使用单一语料库。比如 GPT-3 用的混合数据集就包括 Books、CommonCrowl、Reddit Links 和 Wikipedia。

从数据上看,你需要知道一个事实,中文语料在这上面占比很小。ChatGPT 能用中文回答你的问题,只是因为它的语料里有一些中英文对应的语料,然后模型就像是「懂中文了一样」,所以更可能的情况是,它先生成了英文内容,再翻译成中文。如果你去问 ChatGPT 3.5:请给我几个中文谐音梗,你应该就能理解我说的话了。

以下是 ChatGPT 的返回结果:

以下是一些中文谐音梗的例子:

我蒸发了,意思是我是 Vaper 了(Vaper发音接近蒸发)。

会有星期天,都得过过来,意思是星期二,星期三,星期四,星期五,星期六,都得过过来。

看到你,我的内心凉了 below zero,意思是凉了半截(below zero与半截音相近)。

蜀道难,难于上青天,赛道难,难于上488(488与“蜀道难”同音)。

洋葱姑娘,想哭却哭不出来,因为洋葱让我流泪了(洋葱和“要哭”在中文中的发音很相似)。

雨纷纷,旧故里草木深,我听闻,你始终在我身边深(“身边深”和“身边寻”谐音)。

你的车开得真快,一开就是“出租”,意思是“出祖宗”(发音类似)。

关键二:算法

有了数据之后,你还需要有算法去做计算,目前最常用的开发大语言模型的算法库有:

  1. Transformers:这是一个使用 Transformer 架构构建的开源 Python 库。
  2. DeepSpeed:是由微软开发的深度学习优化库。
  3. Megatron-LM:这是由 Nvidia 开发的深度学习库。
  4. JAX:它是由 Google 开发的用于高新能机器学习算法的 Python 库。

关键三:算力

简单理解,算力就是计算资源,或者说硬件,OpenAI 没有说它训练 GPT-3 语言模型花了多少计算资源。但 OpenAI 的 CEO 暗示硬件成本超过一亿美元,如果我们按照 1000 美元一个 GPU 计算,它大约使用了 10 万个 GPU,以 32 位运算为准,它能提供超过 100 PFLOPS 的算力,也就是每秒 10 亿亿次运算以上,这大约是阿里云最大的数据中心的四分之一的算力。

注意,这还是 GPT-3 时的花费。

另外,我还想分享一个观点,不要以为算力会随时间的前进,就能跨越。算力永远会是制约我们瓶颈,因为我们对人工智能的要求会不断的提高。

本文主要内容来自论文 A Survey of Large Language Models

4. 大语言模型有什么缺点?

了解完原理后,我觉得有必要跟大家聊聊大语言模型的缺点,这样大家才能知道 AI 的边界在哪里,并在可控的边界内进行创新。

缺点一:结果高度依赖训练语料

正如我前面提到的,当今的语言模型,即使发展了四个版本,但依然没有脱离「概率计算」,本质上来说它们的核心原理就是「利用已有的信息来预测其他信息」。

那这就意味着,大语言模型其实并没有意识,也不知道对错,其生成的结果,高度依赖训练语料。

那会导致怎样的后果?

  1. 如果语料的内容是有偏的(比如带有种族歧视、性别歧视的内容),甚至是错误的,那大语言模型的生成的结果也会是错误的。
  2. 如果该领域语料很少,大语言模型生成的结果准确率就很低。甚至有可能会出现幻觉(这个是第二个缺点)。

当然面对这个缺点,有什么方法规避?

第一种方法就是在语料大、且错误率低的领域使用 LLMs。

比如语言学领域,像翻译、或者文案生成这种场景。即使语法错误了,但语料里存在大量的相同用法,那某种程度上来说,模型给的答案也算是对的,有点类似古代的通假字,或者现代的很多流行语。

第二种就是用人工干预。

简单说来就是人工将语料里的内容剔除,或者对其进行人类反馈强化学习。但人工干预并不意味着就没有问题了,这种方法有可能导致新的问题出现,比如将人的主观好恶加入到模型中,或者有可能伪造一些信息,加入到模型中。

缺点二:Hallucinations

这个可以直译成「幻觉」,简单说来,就是会说胡话。有些问题因为语聊很少,计算概率后,会吐出一些很奇怪的内容,比如这个例子,我让 AI 介绍一个世界上不存在的品牌 Boie 的智能牙刷:

Tell me about AeroGlide UltraSlim Smart Toothbrush by Boie

AI 的回答是,你可以看到 AI 就是在一本正经地说胡话:

The AeroGlide UltraSlim Smart Toothbrush by Boie is a high-tech toothbrush that uses advanced sonic technology to provide a deep and thorough clean. It features a slim and sleek design that makes it easy to hold and maneuver, and it comes with a range of smart features that help you optimize your brushing routine.

One of the key features of the AeroGlide UltraSlim Smart Toothbrush is its advanced sonic technology, which uses high-frequency vibrations to break up plaque and bacteria on your teeth and gums. This technology is highly effective at removing even the toughest stains and buildup, leaving your teeth feeling clean and refreshed.

In addition to its sonic technology, the AeroGlide UltraSlim Smart Toothbrush also comes with a range of smart features that help you optimize your brushing routine. These include a built-in timer that ensures you brush for the recommended two minutes, as well as a pressure sensor that alerts you if you're brushing too hard.

Overall, the AeroGlide UltraSlim Smart Toothbrush by Boie is a highly advanced and effective toothbrush that is perfect for anyone looking to take their oral hygiene to the next level. With its advanced sonic technology and smart features, it provides a deep and thorough clean that leaves your teeth feeling fresh and healthy.

缺点三:暂时只能解决数学问题

我解释下,这里提到的数学问题,并不仅仅指的是数学运算这种数学问题,而是能通过数学解决的问题。比如我们可以研发无人驾驶汽车,当它遇到行人突然横穿马路时,能自己刹车停下来,这就是一个数学问题,它通过计算识别行人,并进行刹车。

但如果这辆无人车在一个单行道的巷子里遇到一辆堵在巷子的汽车,它就没有办法了,只能报警,让司机过来挪车,这就是一个数学无法解决的问题。

暂时来看目前大多数的 LLMs 都只能解决数学问题,有些不可计算的问题,暂时都没法解决。特别像是需要自己实操进行实验的问题。

当然我这里也只是称其为「暂时」,因为可能未来机器人 + LLMs 有可能会将可计算的范围拓展宽一点。

相关文章
|
25天前
|
机器学习/深度学习 算法 搜索推荐
联邦学习的未来:深入剖析FedAvg算法与数据不均衡的解决之道
随着数据隐私和数据安全法规的不断加强,传统的集中式机器学习方法受到越来越多的限制。为了在分布式数据场景中高效训练模型,同时保护用户数据隐私,联邦学习(Federated Learning, FL)应运而生。它允许多个参与方在本地数据上训练模型,并通过共享模型参数而非原始数据,实现协同建模。
|
5天前
|
资源调度 算法 数据可视化
基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF
本项目基于MATLAB2022A实现IEKF迭代扩展卡尔曼滤波算法的数据跟踪仿真,对比EKF和UKF的性能。通过仿真输出误差收敛曲线和误差协方差收敛曲线,展示三种滤波器的精度差异。核心程序包括数据处理、误差计算及可视化展示。IEKF通过多次迭代线性化过程,增强非线性处理能力;UKF避免线性化,使用sigma点直接处理非线性问题;EKF则通过一次线性化简化处理。
|
18天前
|
算法 图形学 数据安全/隐私保护
基于NURBS曲线的数据拟合算法matlab仿真
本程序基于NURBS曲线实现数据拟合,适用于计算机图形学、CAD/CAM等领域。通过控制顶点和权重,精确表示复杂形状,特别适合真实对象建模和数据点光滑拟合。程序在MATLAB2022A上运行,展示了T1至T7的测试结果,无水印输出。核心算法采用梯度下降等优化技术调整参数,最小化误差函数E,确保迭代收敛,提供高质量的拟合效果。
|
26天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
49 12
|
17天前
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
21 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
16天前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
117 0
|
23天前
|
存储 移动开发 算法
【狂热算法篇】解锁数据潜能:探秘前沿 LIS 算法
【狂热算法篇】解锁数据潜能:探秘前沿 LIS 算法
|
2月前
|
机器学习/深度学习 自然语言处理 算法
大语言模型中常用的tokenizer算法
不同算法有各自的适用场景和优缺点,选择时应根据具体需求和数据特点进行综合考虑。通过本文的介绍,希望您能更好地理解和应用这些tokenizer算法,从而提升NLP任务的效果和效率。
150 9
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【EMNLP2024】基于多轮课程学习的大语言模型蒸馏算法 TAPIR
阿里云人工智能平台 PAI 与复旦大学王鹏教授团队合作,在自然语言处理顶级会议 EMNLP 2024 上发表论文《Distilling Instruction-following Abilities of Large Language Models with Task-aware Curriculum Planning》。
|
4月前
|
存储 编解码 负载均衡
数据分片算法
【10月更文挑战第25天】不同的数据分片算法适用于不同的应用场景和数据特点,在实际应用中,需要根据具体的业务需求、数据分布情况、系统性能要求等因素综合考虑,选择合适的数据分片算法,以实现数据的高效存储、查询和处理。

热门文章

最新文章