语言模型进化史(下)

由于篇幅原因,本文分为上下两篇,上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型,下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是:https://www.numind.ai/blog/what-are-large-language-models

四、现代语言大模型

Transformer的发明标志着现代LLM时代的开始。 自2018年以来, AI实验室开始训练规模越来越大的模型。令众人惊讶的是,这些模型的质量也在不断提高!下图对这些模型进行了可视化,我们将重点介绍其中值得关注的模型:

LLM进化树。来源:https://github.com/Mooler0410/LLMsPracticalGuide

这些语言模型主要分为三类。一是“仅编码器(encoder-only)”组(上图中的粉色部分),该类语言模型擅长文本理解,因为它们允许信息在文本的两个方向上流动。二是“仅解码器(decoder-only)”组(上图中的蓝色部分),该类语言模型擅长文本生成,因为信息只能从文本的左侧向右侧流动,以自回归方式有效生成新词汇。三是“编码器-解码器(encoder-decoder)”组(上图中的绿色部分),该类语言模型对上述两种模型进行了结合,用于完成需要理解输入并生成输出的任务,例如翻译。

这一切都主要始于文本理解类模型。最初是使用RNN的ELMo,之后是谷歌著名的BERT模型及其派生模型(如RoBERTa),它们都基于Transformer。这些模型通常具有几亿个参数(相当于约1GB的计算机内存),在大约10GB到100GB的文本上进行训练(通常为几十亿个单词),并且可以在现代笔记本电脑上以约0.1秒的速度处理一段文本。这些模型极大地提升了文本理解任务的性能,如文本分类、实体检测和问题回答等。 这已然是NLP(自然语言处理)领域的一场革命,不过才刚刚拉开序幕……

在文本理解类语言模型发展的同时,OpenAI开始基于Transformer创建文本生成类语言模 型。首先是2018年的GPT-1,有1亿个参数;然后是2019年的GPT-2,拥有高达15亿个参数,并在40GB的文本上进行了训练。至少对我来说,GPT-2的创建是一个至关重要的时刻。以下是GPT-2可以生成的文本示例,从一个由人类撰写的段落开始:

来源:https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf 

生成的英语文本质量很不错,而且具有连贯性。例如,科学家的名字没有改变,而这在基于RNN的模型中是个经典问题。由于GPT-2在所生成文本的质量上取得了巨大突破,为避免滥用,OpenAI最初决定不向公众发布。可以说GPT-2标志着LLM正朝着正确的方向发展。 需要注意的是:使用这类语言模型需要先提供一个起始文本,这个起始文本被称为提示(prompt)。

一年后(2020年),OpenAI创建了GPT-3。GPT-3是一个具有1750亿个参数的模型(需要700GB的计算机内存来存储模型!),该模型不仅规模显著扩大,文本生成质量也有重大改进。除了性能的提升外,GPT-3还让人们对未来如何使用LLM大开眼界。

首先,GPT-3能够编写代码。例如, 你可以使用GPT-3来生成(非常)简单的网站,只需在提示中描述网站的外观即可。以下是一个示例,让GPT-3使用HTML创建一个按钮:

这些基本的编码能力在当时并不十分实用, 但它们的出现意味着软件开发在未来可能会发生根本性转变。

GPT-3另一令人瞩目的能力是能够进行上下文学习, 它可以通过提示中所展示的示例来学习如何执行任务。这意味着你可以通过编写提示来定制LLM,而无需更改它们的权重。这一能力开辟了一种全新的、完全基于提示的自然语言处理方式,如今十分受欢迎。

总而言之,GPT-3展示了“提示”作为一种新方式的潜力,可以让机器通过自然语言按照我们的意愿执行任务。

注意:GPT-3比GPT-2要大得多。 自2018年以来,模型的规模急剧增加。以下是一些值得关注的LLM及其规模:

在两年时间里,模型参数的数量增加了1000倍,目前最大的模型(如GPT-4)已接近1万亿个参数,这是因为模型规模的增加与性能的改善密切相关,并且目前还未达到性能瓶颈。这些模型规模十分庞大,与人脑相比,人脑约有1000亿个神经元,每个神经元平均与其他1000个神经元相连接,总共约有100万亿个连接。从某种意义上说,最大的LLM仍然比人脑小100倍。当然,这只是一个非常宽泛的比较,因为人脑和当前LLM使用的架构和学习方法都截然不同。

另一个有趣的指标是这些模型在训练阶段所“阅读(read)”的单词数量。

如你所见, 数量十分庞大。这些模型在训练过程中会接触超1000亿个单词,是一个人在一生中听到或阅读单词数量的100倍以上!这显示出神经网络与人脑的不同之处:神经网络的学习速度比人类慢得多,但可以获得比人类接触的多得多的数据。

需要注意的是, LLM在训练过程中所接触到的单词数量并未像参数数量那样迅速增长(从GPT-1到GPT-3只增长了3倍)。这是因为优先考虑模型规模,不过结果证明这是一个小小的失误。最新的模型并没有比GPT-3大很多,但通过处理更多单词来进行训练。

这种对数据的渴求导致了一个问题, 即可用文本的总量存在硬性限制,约为数万亿个单词,而模型正在接近这一限制。虽然仍有可能循环遍历所有文本,但这会导致模型性能的回报递减。总而言之,可得出结论:网络在训练阶段处理的有效限制是几十万亿个单词,比GPT-4的数量约多出10倍。

另一个问题是, 通过用更多的数据训练更大的模型,计算成本也在增加。以下是训练上述模型的预估计算成本:

为显著超越当前模型的性能,下一代模型需要耗费数亿美元的计算资源。虽然考虑到这些模型能带来的好处,这一成本是合理的,但如此巨大的花费仍然是一个问题。

模型的扩展变得越来越困难。幸运的是,扩大规模并不是改进LLM的唯一途径。2022年末,一项创新开启了另一场革命,这次的影响远远超出了NLP领域。

五、指令调优和聊天机器人LLM

GPT-3揭示了提示的潜力,但撰写提示并不容易。事实上,传统语言模型经训练可以模仿其在网络上看到的内容。 因此,要想创建一个好的提示,你必须清楚网络上哪种起始文本可能会引导模型生成你所期望的结果。这是一种奇怪的游戏,也是一种找到正确表述的艺术,你需要改变措辞,假装自己是专家,展示如何逐步思考的示例等等。这一过程叫做提示工程, 这使得使用这些LLM变得困难。

为解决这个问题,研究人员一直在探索如何修改基础LLM,以让其更好地遵循人类指令。现在主要有两种方法:一是使用人类编写的指令-回答对(instruction-answer pairs),并在此数据集上对基础LLM进行微调(即继续训练)。二是让LLM生成几个可能的答案,然后由人类对答案评分,并使用强化学习在此数据集上对LLM微调。这就是著名的RLHF(人类反馈的强化学习)的过程。此外,我们还可以将两种方法相结合,OpenAI在InstructGPT和ChatGPT中就对这两者进行了结合。

InstructGPT和ChatGPT的指令调整步骤。来源: https://openai.com/blog/chatgpt(修改自https://arxiv.org/abs/2203.02155)

将这两种技术结合在一起可以得到一个经过指令调整的LLM。调整后的LLM比基础模型更擅长遵循人类指令,使用起来更加容易。

经过指令调整的LLM已经非常出色了,但还有最后一步才能将这些LLM真正转化为每个人都可以使用的东西——聊天机器人。 OpenAI在2022年12月发布了ChatGPT,一个基于GPT-3.5的聊天机器人。它的创建方式与InstructGPT相同,但这次使用的是整个对话而不仅仅是指令-回答对。

ChatGPT发布后,基于LLM的新型聊天机器人开始层出不穷。 OpenAI使用GPT-4来代替GPT-3.5,对ChatGPT进行了改进,Anthropic发布了Claude,Google推出Bard,Meta也 研发出了LLaMA,还有几个开源LLM正在发布过程中。这是一次真正的模型大爆炸,将会带来许多令人兴奋的应用,NuMind也会为此出一份力。

ChatGPT发布两个月后,迅速拥有了上亿用户,成为有史以来用户增长最快的产品。人们用ChatGPT来根据要点编写电子邮件、重新组织文本、总结文本、编写代码,或学习东西(在此之前,搜索引擎一直垄断着这项任务)。ChatGPT的发布是LLM发展史的转折点,它让 人们意识到了LLM的潜力,引发了“AI竞赛”,世界上主要人工智能实验室和初创公司都参与其中。

值得注意的是, LLM的突然普及也引发了人们的担忧。人们担心LLM被有心人利用,做一些有害的事情,所以创建开放式LLM聊天机器人必须确保它们的“安全”性(或“与人类价值观保持一致”),也就是说它们不能帮助制造炸弹等。目前有一些方法可以绕过聊天机器人的安全防御措施,但随着时间推移,这些安全措施会逐渐完善,想绕过它们将变得十分困难。

六、语言大模型的未来

近年来, LLM取得了很大进步,人们对它的热情达到了空前高度,在这一领域投入了大量精力。那么,LLM的未来将如何发展?虽然预测未来很难,但我们也有一些看法:

模型大小和训练规模将继续扩大。扩展在过去取得了非常好的效果,且仍有提升空间,但问题是,模型的训练成本急剧增长,逐渐让人望而却步(>1亿美元)。更好的GPU和新的专用硬件有助于扩展模型规模,但它们的开发和生产需要时间。此外,最大的模型已经迭代了所有书籍和整个网络,这意味着我们正在达到可用训练数据的极限(即“词元危机”)。

因此,可以肯定的是,在未来几年内,参数数量不会像过去那样出现爆发式增长。最大的模型今年应该会稳定在1万亿参数以下规模, 然后以每年50%的速度增长。

LLM将超越纯语言模型,将图像和视频纳入训练数据,成为多模态模型。从图像和视频中学习可能有助于模型更好地理解世界。GPT-4就是在图像和文本上进行训练的,且取得了少许性能提升。利用视频数据训练LLM可能给这一领域带来质的改变,但这需要大量计算。预计还需两年多的时间才能真正实现利用视频训练“语言”大模型。

扩大规模、实现语言模型向多模态模型的转变需要大量算力。为缓解这一问题,我们可以采用更好的神经架构和训练程序,这些架构和训练程序要么计算强度较低,要么可以用更少的数据进行学习(人类大脑证明这是可能的)。然而更可能的是类似于RNN的内存会卷土重来,因 为这种内存运行时的效率非常高(例如最近的RWKV架构)。

此外,还可能有一些更大的变化, 例如LLM不以自回归的方式生成,而是以自上而下的方式 生成(例如在生成单词之前做出(随机)决定),这种做法可能更合乎逻辑(这就是神经网络目前生成图像的方式)。到底何时会开发出这样的新架构/方法还很难说,但我们预计应该就 在未来几年,一旦开发出来, LLM模型的性能将得到大幅提升。

另一个改进方向是继续进行指令调优,让更多人参与到“教育”LLM(即与AI对齐)的过程中。这可以由私人AI实验室来实现,也可以是一个更像维基百科的众包项目,以改进和对齐开放模型的LLM能力。在这个问题上,我们还是希望偏离传统的RLHF,而是让人们与模型对话来进行教导,就像我们对待孩子一样。我不确定这种项目的具体时间线,但我已经思考了一段时间,非常希望看到它的实现。

上文我们只讨论了改进实际模型的方法,但实际上有一些方法可以在不改变模型的情况下改进LLM。方法之一就是为LLM提供工具。这种工具可以是用于查找准确信息的搜索引擎,或者是用于进行基本数学计算的计算器。此外,它还可以是一个结合了推理引擎(符号人工智能的经典组件)的知识库,如Wolfram Alpha,用于查找事实、进行逻辑推理或其他神经网络不擅长的计算。当然,这个工具还可以是一个用于编写和运行代码的完整编程环境。LLM可以通  过生成触发API调用的特殊词元(单词)来使用这些工具, 然后将API的输出插入到生成的文本中。

LLM使用工具示例。来源:https://arxiv.org/abs/2302.04761

上述趋势实际上已经开始了(例如,ChatGPT插件、LangChain库和Toolformer论文),我相信这些工具将成为LLM的核心。

改进LLM的另一个方法是以更智能的方式使用它们,让它们更好地完成任务。这可以通过巧妙的提示或更高级的程序来实现。比如说我们可以让LLM按步骤进行思考(即思想链提示(chain-of-thoughts prompting)),并提高LLM在逻辑任务上的表现。以下是提示LLM按步骤思考的示例:

思维链提示示例。来源:https://arxiv.org/abs/2201.11903

同样地,我们可以要求LLM反思、批判自己的输出,并对其进行迭代修改。 通过迭代,我们可以显著提高LLM性能, 尤其是生成代码方面的性能。我们还可以更进一步,创建完全自主的智能体,这些智能体可以管理任务列表并迭代任务,直到达到主要目标(请参考AutoGPT和BabyAGI)。目前,这些自动化智能体的运行效果并不理想,但它们的效果会逐步提升,很难说这些自动化智能体会发展到何种程度,对LLM产生何种影响。

由于LLM可以通过这些程序(思想链、迭代批评等) 改进答案,因此,我们可以使用这些程序创建指令-答案对,然后在指令-答案对上按顺序对LLM微调以提高其性能。这种自我完善是可能的(参见https://arxiv.org/abs/2210.11610),我相信它具有很大的潜力。例如,我们可以想象模型为了变得更加自洽而与自身进行讨论,这是一种自我反思过程。可能会进一步提升LLM的表现。

LLM可能还有其他改进方向, 总的来说,我们无法确定LLM的未来,但显然它们将继续发展下去。理解和生成文本的能力使LLM成为了一项基本技术。即使在目前的发展情况下,LLM也将解锁大量应用程序,日常工作中的数字助理就是一个很好的例子,更疯狂的是,LLM甚至可能引导我们创造某种超级智能。

相关推荐

  1. 语言模型的未来进化路径及其影响

    2024-04-04 10:14:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 10:14:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 10:14:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 10:14:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 10:14:02       20 阅读

热门阅读

  1. Qt之QSoundEffect播放简单音效

    2024-04-04 10:14:02       12 阅读
  2. NLP学习路线指南总结

    2024-04-04 10:14:02       13 阅读
  3. 使用 XCTest 进行 iOS UI 自动化测试

    2024-04-04 10:14:02       14 阅读
  4. 每天学习一个Linux命令之tee

    2024-04-04 10:14:02       15 阅读
  5. 说明计算机视觉(CV)技术的优势和挑战

    2024-04-04 10:14:02       18 阅读
  6. Go-Gin-Example 第九部分 实现redis缓存

    2024-04-04 10:14:02       19 阅读
  7. 品深文司绿茶——传承千古的爱情佳话

    2024-04-04 10:14:02       15 阅读
  8. .NET 设计模式—单例模式(SingletonPattern)

    2024-04-04 10:14:02       18 阅读
  9. 蓝桥杯每日一题(筛质数、最大公约数)

    2024-04-04 10:14:02       14 阅读