文章目录
- 摘要
- I. 引言
- II. 大型语言模型
- A. 早期预训练神经语言模型
- B. 大型语言模型家族
- C. 其他代表性 LLMs
- III. LLM是如何构建的
- A. 主要LLM架构
- B. 数据清洗
- C. 分词
- D. 位置编码
- E. 模型预训练
- F. 微调和指令微调
- G. 对齐
- H. 解码策略
- I. 成本效益的训练/推理/适应/压缩
- IV. LLM如何被使用和增强
- A. LLM的限制
- 统计度量:
- 基于模型的度量:
- LLM如何被使用和增强
- B. 使用LLMs:提示设计与工程
- C. 通过外部知识增强LLMs - RAG
- D. 使用外部工具
- E. LLM代理
- V. 用于LLMS的流行数据集
- A. 用于基本任务的数据集:语言建模/理解/生成
- B. 用于新兴任务的数据集:ICL、推理(CoT)、遵循指令
- C. 用于增强:使用外部知识/工具的数据集
- VI. 重要LLMs在基准测试中的表现
- A. 评估LLMs的流行指标
- B. 大型语言模型在不同任务上的表现
- VII. 挑战与未来方向
- A. 更小更高效的语言模型
- B. 新的后注意力架构范式
- D. 改进的LLM使用和增强技术
- E. 安全和道德/负责任的人工智能
- VIII. 结论
论文名称:Large Language Models A Survey
论文链接:https://arxiv.org/abs/2402.06196
摘要
自2022年11月ChatGPT发布以来,大型语言模型(LLMs)因在各种自然语言任务上表现出色而受到广泛关注。LLMs通过在大量文本数据上训练数十亿个模型参数获得了通用语言理解和生成能力,这符合缩放定律的预测。LLMs的研究领域虽然非常新颖,但在许多不同方面迅速发展。本文回顾了一些最著名的LLMs,包括三个流行的LLM系列(GPT、LLaMA、PaLM),并讨论它们的特点、贡献和局限性。我们还概述了用于构建和增强LLMs的技术。然后,我们调查了为LLM训练、微调和评估准备的流行数据集,审查了广泛使用的LLM评估指标,并比较了几种流行LLM在一组代表性基准测试上的性能。最后,我们通过讨论未来研究方向和面临的挑战来总结本文。
I. 引言
语言建模是一个由来已久的研究课题,可以追溯到上世纪50年代香农将信息论应用于人类语言时,他测量了简单的n-gram语言模型预测或压缩自然语言文本的能力。自那时起,统计语言建模成为许多自然语言理解和生成任务的基础,包括语音识别、机器翻译和信息检索。
基于变压器的大型语言模型(LLMs)的最新进展,这些模型在Web规模文本语料库上进行预训练,显著扩展了语言模型的能力。例如,OpenAI的ChatGPT和GPT-4不仅可用于自然语言处理,还可用作通用任务求解器,以支持Microsoft的Co-Pilot系统,例如,可以按照人类指令执行复杂新任务的多步推理。因此,LLMs正在成为通用人工智能代理或人工通用智能(AGI)发展的基本构建模块。
由于LLMs领域发展迅速,新的发现、模型和技术往往在几个月或几周内发布,AI研究人员和从业者通常很难找到构建LLM驱动的AI系统的最佳方法。本文及时回顾了LLMs的最新进展。我们希望这份调查能成为学生、研究人员和开发人员有价值且易于获取的资源。
LLMs是基于神经网络的大规模、预训练的统计语言模型。LLMs的最新成功是对语言模型数十年研究和发展的积累,可以归类为四个具有不同起点和速度的阶段:统计语言模型、神经语言模型、预训练语言模型和LLMs。
统计语言模型(SLMs)将文本视为一系列单词,并将文本的概率估计为单词概率的乘积。主导形式的SLMs是称为n-gram模型的马尔可夫链模型,它计算一个单词在其前面的n-1个单词的条件概率。由于单词概率是使用从文本语料库中收集的单词和n-gram计数估计的,模型需要处理数据稀疏性(即,对未见单词或n-gram分配零概率)通过使用平滑化,其中模型的一些概率质量被保留给未见的n-grams。n-gram模型在许多NLP系统中被广泛使用。然而,这些模型是不完整的,因为它们无法完全捕捉自然语言的多样性和变异性。
早期的神经语言模型(NLMs)通过将单词映射到低维连续向量(嵌入向量)并基于其前导单词的嵌入向量的聚合来预测下一个单词,从而解决数据稀疏性。NLMs学习的嵌入向量定义了一个隐藏空间,其中向量之间的语义相似性可以轻松计算为它们的距离。这为计算任意两个输入的语义相似性打开了大门,而不考虑它们的形式(例如,在Web搜索中的查询与文档、机器翻译中不同语言的句子)或模态(例如,在图像字幕中的图像和文本)。早期的NLMs是任务特定模型,因为它们是在特定任务数据上训练的,其学习的隐藏空间是任务特定的。
与早期NLMs不同,预训练语言模型(PLMs)是任务不可知的。这种通用性也延伸到了学习的隐藏嵌入空间。PLMs的训练和推断遵循预训练和微调范式,其中使用循环神经网络或变压器对Web规模的未标记文本语料库进行预训练,用于诸如单词预测等一般任务,然后使用少量(标记的)任务特定数据对特定任务进行微调。有关PLMs的最新调查包括。
大型语言模型(LLMs)主要指基于变压器的神经语言模型,其包含数百亿个参数,这些参数在大量文本数据上进行预训练,例如PaLM、LLaMA和GPT-4。与PLMs相比,LLMs不仅在模型大小上更大,而且在语言理解和生成能力上更强,更重要的是,具有在较小规模语言模型中不存在的新能力。正如图1所示,这些新能力包括(1)上下文学习,LLMs可以在推理时从提示中学习新任务的能力,(2)遵循指令,经过指令调整后,LLMs可以遵循新类型任务的指令而无需使用显式示例,(3)多步推理,LLMs可以通过将任务分解为中间推理步骤来解决复杂任务,如链式思维提示中所示。LLMs还可以通过使用外部知识和工具进行增强,以便它们可以有效地与用户和环境交互,并通过与人类交互收集的反馈数据(例如通过强化学习与人类反馈(RLHF))持续改进自身。
图1:LLM的能力。
通过先进的使用和增强技术,LLMs可以部署为所谓的AI代理:感知其环境、做出决策并采取行动的人工实体。先前的研究侧重于为特定任务和领域开发代理。LLMs展示的新能力使得基于LLMs构建通用AI代理成为可能。虽然LLMs被训练以在静态环境中产生响应,但AI代理需要采取行动与动态环境进行交互。因此,基于LLMs的代理通常需要增强LLMs,例如从外部知识库获取更新的信息,验证系统行动是否产生预期结果,并应对事情不如预期时的情况等。我们将在第四节详细讨论基于LLMs的代理。
在本文的其余部分,第二节概述了LLMs的最新技术现状,重点介绍了三个LLM系列(GPT、LLaMA和PaLM)和其他代表性模型。第三节讨论了LLMs的构建方式。第四节讨论了LLMs的使用方式和增强方式。第五节和第六节回顾了用于评估LLMs的流行数据集和基准测试,并总结了报告的LLM评估结果。最后,第七节通过总结挑战和未来研究方向来结束本文。
II. 大型语言模型
在本节中,我们从早期预训练神经语言模型开始回顾,因为它们是LLMs的基础,然后将讨论三个LLM系列:GPT、LlaMA和PaLM。表I提供了一些这些模型及其特征的概述。
A. 早期预训练神经语言模型
使用神经网络进行语言建模是由先驱者开创的。Bengio等人开发了最早的神经语言模型(NLMs),与n-gram模型相媲美。然后,成功将NLMs应用于机器翻译。Mikolov发布的RNNLM(一个开源NLM工具包)显著推广了NLMs。此后,基于循环神经网络(RNNs)及其变体(如长短期记忆(LSTM)和门控循环单元(GRU))的NLMs被广泛用于许多自然语言应用,包括机器翻译、文本生成和文本分类。
然后,变压器架构的发明标志着NLMs发展的又一个里程碑。通过应用自注意力来为句子或文档中的每个单词并行计算“注意力分数”,以建模每个单词对其他单词的影响,变压器比RNNs更具并行性,这使得在GPU上有效地对大量数据进行预训练非常可能。这些预训练语言模型(PLMs)可以为许多下游任务进行微调。
图2:论文结构。
我们根据它们的神经架构,将早期流行的基于变压器的PLMs分为三大类别:仅编码器、仅解码器和编码器-解码器模型。有关早期PLMs的综合调查可参考。
- 仅编码器的PLM:顾名思义,仅编码器模型只包含一个编码器网络。这些模型最初是为了语言理解任务而开发的,比如文本分类,其中模型需要为输入文本预测一个类别标签。代表性的仅编码器模型包括BERT及其变种,例如RoBERTa、ALBERT、DeBERTa、XLM、XLNet、UNILM,如下所述。
BERT(双向编码器表示来自Transformer)[24] 是最广泛使用的仅编码器语言模型之一。BERT由三个模块组成:(1)一个嵌入模块,将输入文本转换为一系列嵌入向量,(2)一堆Transformer编码器,将嵌入向量转换为上下文表示向量,(3)一个全连接层,将表示向量(在最终层)转换为独热向量。BERT是通过使用两个目标进行预训练的:掩码语言建模(MLM)和下一个句子预测。预训练的BERT模型可以通过添加一个分类器层进行微调,用于许多语言理解任务,从文本分类、问答到语言推理。BERT框架的高级概述如图3所示。由于BERT在发布时显著改进了各种语言理解任务的最新技术,AI社区受到启发,开发了许多基于BERT的类似的仅编码器语言模型。
表I:流行语言模型的高级概述
RoBERTa [25] 通过一系列模型设计选择和训练策略显著提高了BERT的鲁棒性,例如修改一些关键超参数、删除下一个句子的预训练目标以及使用更大的小批量和学习速率进行训练。ALBERT [45] 使用两种参数减少技术来降低内存消耗并提高BERT的训练速度:(1)将嵌入矩阵分成两个较小的矩阵,(2)使用分组间重复层。DeBERTa(带有解缠注意力的解码增强BERT)[26] 使用两种新技术改进了BERT和RoBERTa模型。第一种是解缠注意力机制,其中每个单词使用两个向量表示,分别编码其内容和位置,单词之间的注意力权重是使用内容和相对位置的解缠矩阵计算的。其次,使用增强的掩码解码器在解码层中加入绝对位置以预测模型预训练中的掩码标记。此外,使用一种新颖的虚拟对抗训练方法进行微调以提高模型的泛化能力。ELECTRA [46] 使用一种称为替换标记检测(RTD)的新预训练任务,经验上证明比MLM更具样本效率。RTD不是屏蔽输入,而是通过用从小型生成器网络中采样的合理替代品替换一些标记来破坏输入。然后,不是训练一个模型来预测被替换标记的原始身份,而是训练一个区分模型来预测在损坏输入中的标记是否被生成样本替换。RTD比MLM更具样本效率,因为前者定义在所有输入标记上,而不仅仅是被屏蔽的小子集,如图4所示。
Fig. 3: Overall pre-training and fine-tuning procedures for BERT. Courtesy of [24]
Fig. 4: A comparison between replaced token detection and masked language modeling. Courtesy of [46].
图 5: 跨语言语言模型预训练。MLM 目标类似于 BERT,但是使用连续的文本流而不是句子对。TLM 目标将MLM扩展到平行句对。为了预测一个被屏蔽的英文单词,模型可以同时关注英文句子及其法文翻译,并被鼓励对齐英文和法文表示。由 [47] 提供。
XLMs [47] 将BERT扩展为跨语言语言模型,使用两种方法:(1)仅依赖于单语数据的无监督方法,(2)利用包含新跨语言语言模型目标的平行数据进行监督方法,如图5所示。在被提出时,XLMs在跨语言分类、无监督和监督机器翻译方面取得了最先进的结果。
还有一些仅编码器语言模型利用自回归(解码器)模型的优势进行模型训练和推断。其中两个例子是XLNet和UNILM。XLNet [48] 基于Transformer-XL,使用广义自回归方法进行预训练,通过最大化因子分解顺序的所有排列的期望似然来实现学习双向上下文。UNILM(统一预训练语言模型)[49] 使用三种类型的语言建模任务进行预训练:单向、双向和序列到序列预测。这是通过使用共享Transformer网络并利用特定的自注意力掩码来控制预测所依赖的上下文,如图6所示。预训练模型可以针对自然语言理解和生成任务进行微调。
图 6: 统一 LM 预训练概览。模型参数在 LM 目标之间共享(即,双向 LM,单向 LM 和序列到序列 LM)。引自 [49]。
- 仅解码器的PLM:最广泛使用的两个仅解码器PLM是由OpenAI开发的GPT-1和GPT-2,这些模型为随后更强大的LLM奠定了基础,即GPT-3和GPT-4。
GPT-1 [50] 首次证明了通过对一个多样化的未标记文本语料库进行解码器模型的生成预训练(即下一个单词/标记预测)并在每个具体的下游任务上进行区分性微调(使用更少的样本)可以获得广泛自然语言任务的良好性能。如图7所示。GPT-1为随后的GPT模型铺平了道路,每个版本都改进了架构并在各种语言任务上取得了更好的性能。
图 7: GPT 预训练和微调步骤的高级概述。由 OpenAI 提供。
GPT-2 [51] 表明语言模型能够在训练时使用包含数百万网页的大型WebText数据集学习执行特定的自然语言任务而无需任何明确监督。GPT-2模型遵循GPT-1的模型设计,但进行了一些修改:层归一化移至每个子块的输入,最终自注意力块后添加额外的层归一化,初始化修改以考虑残差路径上的累积和缩放残差层的权重,词汇量扩展到50,25,上下文大小从512扩展到1024个标记。
- 编码器-解码器PLM:在[52]中,Raffle等人表明几乎所有NLP任务都可以作为一个序列到序列生成任务。因此,编码器-解码器语言模型从设计上是一个统一的模型,可以执行所有自然语言理解和生成任务。我们将在下面审查的代表性编码器-解码器PLM包括T5、mT5、MASS和BART。
T5 [52] 是一个文本到文本转换Transformer(T5)模型,通过引入一个统一框架,将所有NLP任务都作为文本到文本生成任务来有效利用迁移学习。mT5 [53] 是T5的多语言变体,它在一个包含101种语言文本的新Common Crawl数据集上进行了预训练。
MASS(掩码序列到序列预训练)[54] 采用编码器-解码器框架,以重构给定剩余部分的句子片段。编码器以随机屏蔽片段(几个连续标记)的句子作为输入,解码器预测屏蔽的片段。通过这种方式,MASS同时训练编码器和解码器进行语言嵌入和生成。
BART [55] 使用标准的序列到序列翻译模型架构。它通过用任意噪声函数破坏文本进行预训练,然后学习重构原始文本。
B. 大型语言模型家族
大型语言模型(LLMs)主要是指包含数百亿到数千亿参数的基于Transformer的PLMs。与上述PLMs相比,LLMs不仅在模型大小上更大,而且在语言理解、生成和新出现的能力方面表现更强。接下来,我们将审查三个LLM家族:GPT、LLaMA和PaLM,如图8所示。
1.**GPT 家族:**生成式预训练 Transformer (Generative Pre-trained Transformers) 是由 OpenAI 开发的一系列仅包含解码器的基于 Transformer 的语言模型。这个家族包括 GPT-1、GPT-2、GPT-3、InstrucGPT、ChatGPT、GPT-4、CODEX 和 WebGPT。尽管早期的 GPT 模型,比如 GPT-1 和 GPT-2,是开源的,但最近的模型,如 GPT-3 和 GPT-4,是闭源的,只能通过 API 访问。GPT-1 和 GPT-2 模型已在早期的 PLM 子章节中讨论过。我们从以下内容开始介绍 GPT-3。
GPT-3 [56] 是一个预训练的自回归语言模型,拥有1750亿个参数。GPT-3被广泛认为是第一个大型语言模型,不仅比以前的PLM大得多,而且首次展示了以前较小的PLM中没有观察到的新兴能力。GPT-3展示了上下文学习的新兴能力,这意味着GPT-3可以应用于任何下游任务,而无需任何梯度更新或微调,任务和少量示范纯粹通过与模型的文本交互来指定。GPT-3在许多自然语言处理任务上取得了出色的表现,包括翻译、问答和填空任务,以及一些需要即时推理或领域适应的任务,如解密单词、在句子中使用新词、3位数算术。图9显示了GPT-3的性能与上下文提示示例数量的关系。
CODEX [57] 是OpenAI于2023年3月发布的通用编程模型,可以解析自然语言并生成代码作为响应。CODEX是GPT-3的后代,针对从GitHub收集的代码语料库进行了编程应用的微调。CODEX为微软的GitHub Copilot 提供支持。
WebGPT [58] 是GPT-3的另一个后代,经过微调以使用基于文本的网络浏览器回答开放性问题,帮助用户搜索和浏览网络。具体来说,WebGPT经过三个步骤的训练。首先,WebGPT学习模仿人类浏览行为,使用人类示范数据。然后,学习一个奖励函数来预测人类偏好。最后,通过强化学习和拒绝抽样对WebGPT进行优化以优化奖励函数。
为了使LLM能够遵循预期的人类指令,InstructGPT [59] 提出了通过人类反馈对各种任务的语言模型进行微调,以与用户意图保持一致。从一组标记器编写的提示和通过OpenAI API提交的提示开始,收集了一组标记器演示所需模型行为的数据集。然后在这个数据集上对GPT-3进行微调。然后,收集了一个人类排名的模型输出数据集,以进一步使用强化学习对模型进行微调。该方法被称为从人类反馈中学习强化学习(RLHF),如图10所示。由此产生的InstructGPT模型在真实性方面有所改善,并减少了有害输出的生成,同时在公共自然语言处理数据集上几乎没有性能退化。
图8:流行的LLM家族。
图9:GPT-3显示出更大的模型越来越有效地利用上下文信息。它展示了一个简单任务上的上下文学习性能,要求模型从单词中删除随机符号,无论是否有自然语言任务描述。由[56]提供。
图10:RLHF的高级概述。由[59]提供。
LLM发展的最重要里程碑是ChatGPT(Chat Generative Pre-trained Transformer)[60]于2022年11月30日推出。ChatGPT是一个聊天机器人,可以帮助用户引导对话以完成各种任务,如问答、信息查找、文本摘要等。ChatGPT由GPT-3.5(后来由GPT-4)提供支持,这是InstructGPT的一个同级模型,旨在遵循提示并提供详细响应。
GPT-4 [33] 是GPT家族中最新、最强大的LLM。于2023年3月推出,GPT-4是一种多模态LLM,可以接受图像和文本作为输入,并生成文本输出。虽然在一些最具挑战性的现实场景中仍不及人类,但GPT-4在各种专业和学术基准测试中表现出与人类水平相当的性能,包括通过模拟的律师资格考试并获得排名前10%左右的分数,如图11所示。与早期的GPT模型一样,GPT-4首先在大型文本语料库上预训练以预测下一个标记,然后通过RLHF进行微调,以使模型行为与人类期望一致。
- LLAMA家族:LLaMA是Meta发布的一组基础语言模型。与GPT模型不同,LLaMA模型是开源的,即模型权重以非商业许可证发布给研究社区。因此,LLaMA家族迅速增长,因为这些模型被许多研究团体广泛使用,以开发更好的开源LLM来竞争封闭源代码的模型或为任务特定的LLM开发用于关键任务应用。
第一批LLaMA模型[32]于2023年2月发布,参数范围从7B到65B。这些模型在从公开可用数据集中收集的数万亿标记上进行了预训练。LLaMA使用GPT-3的变压器架构,进行了一些较小的架构修改,包括(1)使用SwiGLU激活函数代替ReLU,(2)使用旋转位置嵌入代替绝对位置嵌入,以及(3)使用均方根层归一化代替标准层归一化。开源的LLaMA-13B模型在大多数基准测试中优于专有的GPT-3(175B)模型,使其成为LLM研究的良好基准。
图11:GPT-4在学术和专业考试中的表现,与GPT 3.5进行比较。由[33]提供。
在2023年7月,Meta与微软合作发布了LLaMA-2系列[61],其中包括基础语言模型和针对对话进行微调的Chat模型,称为LLaMA-2 Chat。据报道,LLaMA-2 Chat模型在许多公共基准测试中表现优异。图12显示了LLaMA-2 Chat的训练过程。该过程从使用公开在线数据对LLaMA-2进行预训练开始。然后,通过监督微调构建LLaMA-2 Chat的初始版本。随后,模型通过RLHF、拒绝抽样和近端策略优化进行迭代优化。在RLHF阶段,积累人类反馈以修订奖励模型对于防止奖励模型发生过大变化对于LLaMA模型训练的稳定性至关重要。
图12:LLaMA-2 Chat的训练。由[61]提供。
Alpaca [62] 是通过使用GPT-3.5(text-davinci-003)生成的 52 K 52K 52K个遵循指令的演示进行微调的LLaMA-7B模型。Alpaca在训练成本方面非常具有成本效益,特别适用于学术研究。在自我指导评估集上,Alpaca的表现与GPT-3.5相似,尽管Alpaca要小得多。
Vicuna团队通过使用从ShareGPT收集的用户共享对话对LLaMA进行微调,开发了一个13B聊天模型Vicuna13B。使用GPT4作为评估器进行初步评估显示,Vicuna-13B在超过90%的情况下实现了超过OpenAI的ChatGPT和Google的Bard的质量,并在超过90%的情况下优于其他模型,如LLaMA和Stanford Alpaca。图13显示了Vicuna和GPT-4的几个其他知名模型的相对响应质量。Vicuna-13B的另一个优势是相对较低的模型训练计算需求。Vicuna-13B的训练成本仅为300美元。
图13:Vicuna和GPT-4的相对响应质量。由Vicuna团队提供。
像Alpaca和Vicuna一样,Guanaco模型 [63] 也是使用遵循指令数据对LLaMA模型进行微调的。但是,通过QLoRA进行微调非常高效,使得可以在单个48GB GPU上对一个 65 B 65B 65B参数模型进行微调。QLoRA通过将梯度反向传播到冻结的、4位量化的预训练语言模型中,进而将梯度传播到低秩适配器(LoRA)。最佳的Guanaco模型在Vicuna基准测试中优于先前发布的所有模型,达到ChatGPT性能水平的99.3%,只需要在单个GPU上进行24小时的微调。
Koala [64] 是另一个基于LLaMA构建的遵循指令语言模型,但专注于包括用户输入和由ChatGPT等高性能闭源聊天模型生成的响应在内的交互数据。根据基于真实用户提示的人类评估,Koala-13B模型在与最先进的聊天模型竞争方面表现出色。
Mistral-7B [65] 是一个专为卓越性能和效率而设计的7B参数语言模型。Mistral-7B在所有评估基准中优于最佳开源13B模型(LLaMA-2-13B),并在推理、数学和代码生成方面优于最佳开源34B模型(LLaMA-34B)。该模型利用了分组查询注意力以实现更快的推理,结合滑动窗口注意力以有效处理任意长度的序列并降低推理成本。
LLaMA家族正在迅速增长,因为更多的遵循指令模型已经建立在LLaMA或LLaMA2上,包括Code LLaMA [66]、Gorilla [67]、Giraffe [68]、Vigogne [69]、Tulu 65B [70]、Long LLaMA [71]和Stable Beluga2 [72],仅举几例。
在使用 Pathways 系统的 6144 个 TPU v4 芯片上,实现了高效的跨多个 TPU Pods 训练。PaLM 展示了通过扩展规模持续获益的优势,实现了在数百种语言理解和生成基准测试中的最新 few-shot 学习结果。PaLM540B 不仅在一系列多步推理任务上优于最先进的微调模型,而且在最近发布的 BIG-bench 基准测试中与人类表现相当。
- PaLM 家族:PaLM(Pathways Language Model)家族由 Google 开发。第一款 PaLM 模型[31] 于 2022 年 4 月宣布,并保持私有状态直到 2023 年 3 月。这是一款拥有 540B 参数的基于 Transformer 的大语言模型。该模型是在一个包含 7800 亿 Token 的高质量文本语料库上进行预训练的,涵盖了各种自然语言任务和使用案例。PaLM 使用 Pathways 系统在 6144 个 TPU v4 芯片上进行预训练,该系统可以在多个 TPU Pod 上实现高效训练。PaLM 在数百项语言理解和生成基准测试中展现了持续的扩展优势,实现了最先进的少样本学习结果。PaLM540B 不仅在一系列多步推理任务上胜过最先进的微调模型,还在最近发布的 BIG-bench 基准测试上与人类持平。
U-PaLM 模型的 8 B , 62 B 8 \mathrm{~B}, 62 \mathrm{~B} 8 B,62 B 和 540 B 540 \mathrm{~B} 540 B 规模持续在 PaLM 上进行 UL2R 训练,这是一种使用 UL2 的混合去噪目标在少数步骤上继续训练 LLMs 的方法 [73]。据报道,节约了约 2 x 2 x 2x 的计算成本。
随后,U-PaLM 被指导微调为 Flan-PaLM [74]。与上述其他指导微调工作相比,Flan-PaLM 的微调使用了更多的任务、更大的模型规模和链式思维数据。结果,Flan-PaLM 在很大程度上优于先前的指导模型。例如,FlanPaLM-540B 在 1.8 K 1.8 \mathrm{~K} 1.8 K 个任务上进行指导微调,平均优于 PaLM-540B 很大幅度(平均增加了 +9.4%)。微调数据包括 473 个数据集、146 个任务类别和 1,836 个总任务,如图 14 所示。
图 14:Flan-PaLM 微调包括上述任务类别中的 473 个数据集。由 [74] 提供。
PaLM-2 [75] 是一种更高效的 LLM,具有更好的多语言和推理能力,与其前身 PaLM 相比。PaLM-2 使用多种目标进行训练。通过对英语、多语言和推理任务的广泛评估,PaLM-2 在不同模型规模下显著提高了模型在下游任务中的性能,同时展现出比 PaLM 更快速和高效的推理能力。
Med-PaLM [76] 是一种特定领域的 PaLM,旨在为医学问题提供高质量答案。Med-PaLM 使用指导提示微调在 PaLM 上进行微调,这是一种用少量示例将 LLMs 对齐到新领域的参数高效方法。Med-PaLM 在许多医疗保健任务上取得了非常令人鼓舞的结果,尽管仍然不及人类临床医生。Med-PaLM 2 通过医学领域微调和集成提示进一步改进了 MedPaLM [77]。Med-PaLM 2 在 MedQA 数据集上获得了高达 86.5 % 86.5 \% 86.5% 的分数(即结合了六个现有开放问题回答数据集的基准测试),比 Med-PaLM 提高了超过 19 % 19 \% 19% 并创造了新的最先进水平。
C. 其他代表性 LLMs
除了前几小节讨论的模型外,还有其他流行的 LLMs,它们不属于这三个模型系列,但在性能上取得了巨大进展,并推动了 LLMs 领域的发展。我们在本小节简要描述这些 LLMs。
FLAN:在 [78] 中,魏等人探索了一种简单的方法,用于提高语言模型的零-shot学习能力。他们表明,在一系列通过指令描述的数据集上对语言模型进行指导微调,可以显著提高未见任务的零-shot性能。他们采用了一个拥有 137B 参数的预训练语言模型,并在通过自然语言指令模板描述的 60 多个 NLP 数据集上进行指导微调。他们将这种指导微调模型称为 FLAN。图 15 对比了指导微调与预训练微调和提示的效果。
图 15:指导微调与预训练微调和提示的比较。由 [78] 提供。
Gopher:在 [79] 中,雷等人对基于 Transformer 的语言模型在各种模型规模上的性能进行了分析,从拥有数千万参数的模型到名为 Gopher 的 2800 亿参数模型。这些模型在 152 个不同任务上进行了评估,在大多数任务上取得了最先进的性能。不同模型规模的层数、键/值大小和其他超参数在图 16 中展示。
图 16:Gopher 不同参数数量的模型架构细节。由 [78] 提供。
T0:在 [80] 中,Sanh 等人开发了 T0,这是一个系统,可以将任何自然语言任务轻松映射为人类可读的提示形式。他们转换了大量带有多个提示的监督数据集,每个提示都有不同的措辞。
这些提示数据集允许对模型执行完全保留任务的能力进行基准测试。然后,开发了一个 T0 编码器-解码器模型,用于处理文本输入并生成目标响应。该模型在不同任务分区的多任务 NLP 数据集上进行训练。
ERNIE 3.0:在 [81] 中,孙等人提出了一个名为 ERNIE 3.0 的统一框架,用于预训练大规模知识增强模型。它融合了自回归网络和自编码网络,使训练后的模型可以轻松地通过零-shot学习、few-shot学习或微调来适应自然语言理解和生成任务。他们在由纯文本和大规模知识图组成的 4TB 语料库上训练了拥有 100 亿参数的 ERNIE 3.0。图 17 展示了 Ernie 3.0 的模型架构。
图 17:ERNIE 3.0 的高级模型架构。由 [81] 提供。
RETRO:在 [82] 中,Borgeaud 等人通过在大型语料库中检索与前面标记的本地相似性相关的文档块来增强自回归语言模型,这些文档块对条件进行了调整。使用 2 兆令牌数据库,检索增强 Transformer(Retro)在 Pile 上获得了与 GPT-3 和 Jurassic-1 [83] 相当的性能,尽管使用的参数少了 25 % 25 \% 25%。如图 18 所示,Retro 结合了一个冻结的 Bert 检索器、一个可微分编码器和一个分块交叉注意机制,以根据比通常在训练期间消耗的数据多一个数量级的数据来预测令牌。
GLaM:在 [84] 中,杜等人提出了一系列名为 GLaM(通用语言模型)的 LLMs,它们使用稀疏激活的专家混合架构来扩展模型容量,同时与密集变体相比,训练成本大大降低。最大的 GLaM 具有 1.2 万亿参数,比 GPT3 大约大 7 x 7 \mathrm{x} 7x。它仅消耗了训练 GPT-3 所用能量的 1 / 3 1 / 3 1/3,并且推理时需要一半的计算 FLOPS,同时在 29 个 NLP 任务中实现了更好的零、一和 few-shot 性能。图 19 展示了 GLAM 的高级架构。
LaMDA:在 [85] 中,Thoppilan 等人提出了 LaMDA,这是一系列专门用于对话的基于 Transformer 的神经语言模型,具有高达 137B 参数,并在公共对话数据和网络文本中预先训练了 1.56 T 1.56 \mathrm{~T} 1.56 T 个单词。
图 18:Retro 架构。左:简化版本,长度为 n = 12 n=12 n=12 的序列分为大小为 m = 4 m=4 m=4 的 1 = 3 1=3 1=3 个块。对于每个块,我们检索 k = 2 k=2 k=2 个长度为 r = r= r= 5 的邻居。检索路径显示在顶部。右:CCA 操作符中的交互细节。因果关系保持为第一个块的邻居仅影响第一个块的最后一个令牌和第二个块的令牌。由 [82] 提供。
图 19:GLaM 模型架构。每个 MoE 层(底部块)与一个 Transformer 层(上部块)交替。由 [84] 提供。
他们表明,通过使用注释数据进行微调并使模型可以查阅外部知识源,可以显著改善安全性和事实基础的两个关键挑战。
OPT:在 [86] 中,张等人提出了 Open Pre-trained Transformers(OPT),这是一套仅解码器的预训练 transformer,参数范围从 125 M 125 \mathrm{M} 125M 到 175 B 175 \mathrm{~B} 175 B,并与研究人员共享。OPT 模型的参数在图 20 Chinchilla中展示:在 [2] 中,霍夫曼等人调查了在给定计算预算下训练 transformer 语言模型的最佳模型大小和令牌数量。通过在 5 到 5000 亿令牌上训练范围从 7000 万到超过 1600 亿参数的 400 多种语言模型,他们发现,对于计算最优训练,模型大小和训练令牌数量应该等比例缩放:每倍增模型大小,训练令牌数量也应该加倍。他们通过训练一个预测的计算最优模型 Chinchilla 来测试这一假设,该模型使用与 Gopher 相同的计算预算,但具有 700B 参数和比 Gopher 多 4 % 4 \% 4% 的数据。
图 20:不同 OPT 模型的架构细节。由 [86] 提供。
Galactica:在 [87] 中,泰勒等人介绍了 Galactica,一个可以存储、组合和推理科学知识的大型语言模型。他们在大量科学论文、参考资料、知识库和许多其他来源的科学语料库上进行了训练。Galactica 在推理方面表现出色,在数学 MMLU 上的表现超过 Chinchilla 的 41.3 % 41.3 \% 41.3% 到 35.7 % 35.7 \% 35.7%,在 MATH 上的得分为 20.4 % 20.4 \% 20.4%,而 PaLM 540B 的得分为 8.8 % 8.8 \% 8.8%。
AlexaTM: 在[89]中,Soltan等人展示了多语言大规模序列到序列(seq2seq)模型,在混合去噪和因果语言建模(CLM)任务的预训练基础上,比仅解码器模型更有效地进行少样本学习,适用于各种任务。他们训练了一个拥有200亿参数的多语言seq2seq模型,名为Alexa Teacher Model(AlexaTM 20B),并展示其在1-shot摘要任务上实现了最先进的性能,优于一个规模更大的540B PaLM解码器模型。AlexaTM包括46个编码器层,32个解码器层,32个注意力头,并且 d model = 4096 d_{\text {model }}=4096 dmodel =4096。
Sparrow: 在[90]中,Glaese等人提出了Sparrow,一个信息搜索对话代理,经过训练比提示的语言模型基线更有帮助、更正确、更无害。他们利用来自人类反馈的强化学习来训练他们的模型,并增加了两个新功能,以帮助人类评价代理的行为。Sparrow模型的高级流程如图21所示。
Minerva: 在[91]中,Lewkowycz等人介绍了Minerva,一个大型语言模型,预先在一般自然语言数据上进行预训练,并进一步在技术内容上进行训练,以解决以往LLM在定量推理(如解决数学、科学和工程问题)方面的困难。
MoD: 在[92]中,Tay等人提出了自然语言处理中自监督学习的广义和统一视角,并展示了不同的预训练目标如何相互转化,以及在不同目标之间插值如何有效。他们提出了混合去噪器(MoD),这是一种将不同的预训练范式结合在一起的预训练目标。这个框架被称为统一语言学习(UL2)。UL2预训练范式的概述如图21所示。
图21:Sparrow流程依赖人类参与不断扩展训练集。由[90]提供。
图22:UL2预训练范式概述。由[92]提供。
BLOOM: 在[93]中,Scao等人介绍了BLOOM,一个拥有176B参数的开放获取语言模型,得益于数百名研究人员的合作设计和构建。BLOOM是一个仅解码器的Transformer语言模型,训练于ROOTS语料库,该数据集包含46种自然语言和13种编程语言的数百个来源(共59种)。BLOOM架构概述如图23所示。
图23:BLOOM架构概述。由[93]提供。
GLM: 在[94]中,Zeng等人介绍了GLM-130B,一个拥有1300亿参数的双语(英语和中文)预训练语言模型。这是为了开源一个至少与GPT-3(davinci)一样好的100B规模模型,并揭示这种规模模型如何成功地进行预训练。
Pythia: 在[95]中,Biderman等人介绍了Pythia,一套由16个LLM组成的模型,全部在公共数据上按照完全相同的顺序训练,参数范围从7000万到120亿。我们提供每个16个模型的154个检查点的公共访问,以及下载和重建它们确切的训练数据加载器的工具,以供进一步研究。
Orca: 在[96]中,Mukherjee等人开发了Orca,一个拥有130亿参数的模型,学习模仿大型基础模型的推理过程。Orca从GPT-4中获取丰富的信号,包括解释痕迹;逐步思考过程;以及其他复杂指令,通过ChatGPT的教师辅助进行指导。
StarCoder: 在[97]中,Li等人介绍了StarCoder和StarCoderBase。它们是拥有155亿参数的模型,上下文长度为8000,具有填充功能,并且通过多查询注意力实现快速大批量推理。StarCoderBase在来自The Stack的一万亿令牌上进行了微调,结果创建了StarCoder。他们对迄今为止最全面的代码LLM进行了评估,并展示了StarCoderBase优于支持多种编程语言的每个开放代码LLM,并与OpenAI code-cushman-001模型匹配或优于。
KOSMOS: 在[98]中,Huang等人介绍了KOSMOS-1,一个多模态大型语言模型(MLLM),可以感知一般模态,学习在上下文中(即少样本)并遵循指令(即零样本)。具体来说,他们从头开始在网络规模的多模态语料库上训练KOSMOS-1,包括任意交错的文本和图像、图像标题对以及文本数据。实验结果表明,KOSMOS1在语言理解、生成,甚至OCR-free NLP(直接使用文档图像)方面取得了令人印象深刻的表现,以及感知-语言任务,包括多模态对话、图像字幕、视觉问答,以及视觉任务,如通过文本指令指定分类的图像识别。
Gemini: 在[99]中,Gemini团队介绍了一系列新的多模态模型,展示了在图像、音频、视频和文本理解方面的有希望的能力。Gemini系列包括三个版本:Ultra用于高度复杂的任务,Pro用于增强性能和规模部署,Nano用于设备应用。Gemini架构建立在Transformer解码器之上,并经过训练以支持32k上下文长度(通过使用高效的注意机制)。
一些其他流行的LLM框架(或用于高效开发LLM的技术)包括InnerMonologue [100]、Megatron-Turing NLG [101]、LongFormer [102]、OPT-IML [103]、MeTaLM [104]、Dromedary [105]、Palmyra [106]、Camel [107]、Yalm [108]、MPT [109]、ORCA2 [110]、Gorilla [67]、PAL [111]、Claude [112]、CodeGen 2 [113]、Zephyr [114]、Grok [115]、Qwen [116]、Mamba [30]、Mixtral-8x7B [117]、DocLLM [118]、DeepSeek-Coder [119]、FuseLLM-7B [120]、TinyLlama-1.1B [121]、LLaMA-Pro-8B [122]。
图24提供了一些最具代表性的LLM框架的概述,以及有助于LLM成功并推动LLM极限的相关工作。
III. LLM是如何构建的
在本节中,我们首先回顾了用于LLM的流行架构,然后讨论了数据和建模技术,从数据准备、标记化,到预训练、指令调整和对齐。
一旦选择了模型架构,训练LLM涉及的主要步骤包括:数据准备(收集、清理、去重等)、标记化、模型预训练(以自监督学习方式)、指令调整和对齐。我们将在下面的各个小节中解释每一个步骤。这些步骤也在图25中有所说明。
A. 主要LLM架构
最广泛使用的LLM架构是仅编码器、仅解码器和编码器-解码器。它们大多基于Transformer(作为构建块)。因此,我们在这里也回顾了Transformer架构。
- Transformer:在一项开创性的工作[44]中,Vaswani等人提出了Transformer框架,最初设计用于使用GPU进行有效的并行计算。Transformer的核心是(自我)注意机制,可以更有效地使用GPU捕获长期上下文信息,而不是使用循环和卷积机制。图26提供了Transformer工作的高级概述。在本节中,我们提供了主要元素和变体的概述,更多细节请参见[44],[123]。
Transformer语言模型架构最初用于机器翻译,由编码器和解码器组成。编码器由 N = 6 N=6 N=6个相同的Transformer层堆叠而成。每个层有两个子层。第一个是多头自注意力层,另一个是简单的位置逐点全连接前馈网络。解码器由6个相同的层堆叠而成。除了每个编码器层中的两个子层外,解码器还有第三个子层,对编码器堆栈的输出执行多头注意力。注意函数可以描述为将查询和一组键值对映射到输出,其中查询、键、值和输出都是向量。输出是值的加权和,其中分配给每个值的权重由查询与相应键的兼容函数计算。与使用 d model d_{\text {model }} dmodel 维键、值和查询执行单个注意力函数不同,发现通过不同的、学习到的线性投影将查询、键和值 h h h线性投影到 d k , d k d_{k}, d_{k} dk,dk和 d v d_{v} dv维度是有益的。位置编码被整合以融合关于序列中令牌的相对或绝对位置的信息。
图26:一些迄今为止最具代表性的LLM框架的时间线。除了我们的#参数阈值内的大型语言模型,我们还包括了一些代表性的作品,这些作品推动了语言模型的极限,并为它们的成功铺平了道路(例如vanilla Transformer、BERT、GPT-1),以及一些小型语言模型。 &显示的实体不仅作为模型,还作为方法。 仅显示方法。
- 编码器模型:对于这类模型,在每个阶段,注意力层可以访问初始句子中的所有单词。这些模型的预训练通常包括以某种方式破坏给定句子(例如,通过对其中的单词进行屏蔽)并要求模型找到或重建初始句子。编码器模型非常适用于需要理解完整序列的任务,比如句子分类、命名实体识别和抽取式问答。一个著名的仅编码器模型是 BERT(来自Transformer的双向编码器表示),见文献[24]。
-
仅解码器模型:对于这些模型,在每个阶段,对于任何单词,注意力层只能访问该单词之前位置的单词。这些模型有时也被称为自回归模型。这些模型的预训练通常被制定为预测序列中的下一个单词(或标记)。仅解码器模型最适用于涉及文本生成的任务。GPT 模型是这一模型类别的杰出示例。
-
编码器-解码器模型:这些模型同时使用编码器和解码器,有时被称为序列到序列模型。在每个阶段,编码器的注意力层可以访问初始句子中的所有单词,而解码器的注意力层只能访问输入中给定单词之前位置的单词。这些模型通常使用编码器或解码器模型的目标进行预训练,但通常涉及更复杂的内容。例如,一些模型通过用单个掩码特殊词替换文本的随机跨度(可能包含多个单词),然后目标是预测此掩码词替换的文本来进行预训练。编码器-解码器模型最适用于根据给定输入生成新句子的任务,例如摘要、翻译或生成式问答。
B. 数据清洗
数据质量对于在其上训练的语言模型的性能至关重要。诸如过滤、去重等数据清洗技术已被证明对模型性能有重大影响。
以 Falcon40B [124] 为例,Penedo 等人表明,经过适当过滤和去重的网络数据本身就可以产生强大的模型;甚至在性能上明显优于在 The Pile 上训练的最新模型。尽管经过了大量过滤,他们仍能从 CommonCrawl 中获得五万亿个标记。他们还发布了从我们的 REFINEDWEB 数据集中提取的 6000 亿个标记的数据集,并在其上训练了 1.3/7.5B 参数的语言模型。图 27 展示了该工作对 CommonCrawl 数据进行的精炼过程。
- 数据过滤:数据过滤旨在提升训练数据的质量和训练后语言模型的有效性。常见的数据过滤技术包括:
去除噪声:指消除可能影响模型泛化能力的不相关或嘈杂数据。例如,可以考虑从训练数据中删除虚假信息,以降低模型生成错误响应的可能性。质量过滤的两种主流方法包括:基于分类器和基于启发式的框架。
图 25:这幅图展示了语言模型的不同组成部分。
图 26:变压器工作的高级概述。由 [44] 提供。
图 27:Macrodata Refinement 的后续阶段几乎删除了 CommonCrawl 中最初的文档的 90%。由 [124] 提供。
处理异常值:识别和处理数据中的异常值或异常情况,以防止它们对模型产生不成比例的影响。
解决不平衡:平衡数据集中类别或类别的分布,以避免偏见并确保公平代表性。这对于负责任的模型训练和评估特别有用。
文本预处理:通过删除停用词、标点符号或其他对模型学习贡献不大的元素来清理和标准化文本数据。
处理歧义:解决或排除可能在训练过程中使模型困惑的模糊或矛盾数据。这有助于模型提供更明确和可靠的答案。
- 去重:去重指的是在数据集中删除重复实例或相同数据的重复出现。重复数据点可能会在模型训练过程中引入偏见,并降低多样性,因为模型可能多次从相同示例中学习,可能导致对这些特定实例过度拟合。一些研究 [125] 表明,去重可以提高模型对新的、未见数据的泛化能力。
在处理大型数据集时,去重过程尤为重要,因为重复数据可能无意中夸大某些模式或特征的重要性。这在自然语言处理任务中尤为重要,因为多样且具代表性的训练数据对于构建健壮的语言模型至关重要。
具体的去重方法可能根据数据的性质和正在训练的特定语言模型的要求而变化。它可能涉及比较整个数据点或特定特征以识别和消除重复项。在文档级别上,现有的研究主要依赖于文档之间高级特征(例如 n-gram 重叠)的重叠比率来检测重复样本。
C. 分词
分词是将文本序列转换为更小部分(称为标记)的过程。虽然最简单的分词工具只是根据空格将文本切分为标记,但大多数分词工具依赖于词典。然而,在这种情况下,词汇表外(OOV)是一个问题,因为分词器只认识其词典中的词。为增加词典的覆盖范围,用于大型语言模型的流行分词器基于子词,这些子词可以组合成大量单词,包括训练数据中未见的单词或其他语言中的单词。接下来,我们描述三种流行的分词器。
- BytePairEncoding:BytePairEncoding 最初是一种使用字节级频繁模式来压缩数据的算法。按定义,该算法主要尝试保留常见单词的原始形式,并分解不常见的单词。这种简单的范例使得词汇表不会很大,同时也足够好地表示常见单词。如果后缀或前缀在算法的训练数据中也经常出现,那么常见单词的形态形式也可以很好地表示。
- WordPieceEncoding:这种算法主要用于非常知名的模型,如 BERT 和 Electra。在训练开始时,该算法获取训练数据中的所有字母,以确保训练数据中不会留下 UNK 或未知的内容。当模型接收到无法由分词器进行分词的输入时,就会出现这种情况。这种情况通常发生在一些字符无法被分词器进行分词的情况下。与 BytePairEncoding 类似,它试图最大化根据频率将所有标记放入词汇表的可能性。
- SentencePieceEncoding:尽管前面描述的两种分词器强大且与基于空格分词相比具有许多优势,但它们仍然默认单词始终由空格分隔。这种假设并不总是正确,事实上,在某些语言中,单词可能会被许多嘈杂元素(如不需要的空格或甚至虚构的单词)破坏。SentencePieceEncoding 试图解决这个问题。
D. 位置编码
- 绝对位置嵌入:(APE)[44] 在原始 Transformer 模型中被用于保留序列顺序的信息。因此,单词的位置信息被添加到编码器和解码器堆栈底部的输入嵌入中。关于位置编码,有多种选项,可以是学习的,也可以是固定的。在传统的 Transformer 中,正弦和余弦函数被用于此目的。使用 APE 在 Transformer 中的主要缺点是限制于一定数量的标记。此外,APE 未考虑标记之间的相对距离。
- 相对位置嵌入:(RPE)[126] 扩展了自注意力机制,考虑输入元素之间的成对链接。RPE 被添加到模型的两个级别:首先作为键的附加组件,随后作为值矩阵的子组件。这种方法将输入视为具有标签和有向边的全连接图。对于线性序列,边可以捕获输入元素之间的相对位置差异的信息。一个剪切距离,表示为 k \mathrm{k} k, 2 ≤ k ≤ n − 4 2 \leq k \leq n-4 2≤k≤n−4,指定了相对位置的最大限制。这使得模型能够对不属于训练数据的序列长度做出合理的预测。
- 旋转位置嵌入:旋转位置嵌入(RoPE)[127] 解决了现有方法的问题。学习的绝对位置编码可能缺乏泛化性和意义性,特别是当句子很短时。此外,像 T5 的位置嵌入这样的当前方法在构建位置之间的完整注意力矩阵时面临挑战。RoPE 使用旋转矩阵来编码单词的绝对位置,并同时在自注意力中包含显式的相对位置细节。RoPE 带来了一些有用的特性,如对句子长度的灵活性,随着相对距离的增加减少单词依赖性,以及通过相对位置编码改进线性自注意力的能力。GPT-NeoX-20B、PaLM、CODEGEN 和 LLaMA 是利用 RoPE 架构的模型之一。
- 相对位置偏差: 这种类型的位置嵌入的概念旨在促进推理过程中对比训练中遇到的更长序列的外推。在[128]中,Press等人提出了带有线性偏差的注意力(ALiBi)。他们不是简单地将位置嵌入加到词嵌入中,而是为查询-键对的注意力分数引入了偏差,对它们的距离施加了罚款。在BLOOM模型中,利用了ALiBi。
E. 模型预训练
预训练是大型语言模型训练流程中的第一步,它帮助语言模型获得基本的语言理解能力,这对各种与语言相关的任务都很有用。在预训练期间,语言模型通常会以自监督的方式在大量(通常是)无标签的文本上进行训练。用于预训练的不同方法包括下一个句子预测 [24],其中最常见的两种方法包括下一个标记预测(自回归语言建模)和掩码语言建模。
在自回归语言建模框架中,给定一个长度为 n n n 的标记序列 x 1 , … , x n x_{1}, \ldots, x_{n} x1,…,xn,模型尝试以自回归的方式预测下一个标记 x n + 1 x_{n+1} xn+1(有时还包括下一个标记序列)。在这种情况下,一个常见的损失函数是预测标记的对数似然,如方程式 2 所示:
L A L M ( x ) = ∑ i = 1 N p ( x i + n ∣ x i , … , x i + n − 1 ) \begin{equation*} \mathscr{L}_{A L M}(x)=\sum_{i=1}^{N} p\left(x_{i+n} \mid x_{i}, \ldots, x_{i+n-1}\right) \tag{1} \end{equation*} LALM(x)=i=1∑Np(xi+n∣xi,…,xi+n−1)(1)
由于这种框架的自回归性质,仅有解码器的模型更适合学习如何完成这些任务。
在掩码语言建模中,序列中的一些单词被掩盖,模型被训练以基于周围上下文预测被掩盖的单词。有时人们也将这种方法称为去噪自编码。如果我们用 x ~ \tilde{x} x~ 表示序列 x x x 中的掩盖/损坏样本,则该方法的训练目标可以写成:
L M L M ( x ) = ∑ i = 1 N p ( x ~ ∣ x \ x ~ ) \begin{equation*} \mathscr{L}_{M L M}(x)=\sum_{i=1}^{N} p(\tilde{x} \mid x \backslash \tilde{x}) \tag{2} \end{equation*} LMLM(x)=i=1∑Np(x~∣x\x~)(2)
最近,混合专家模型(MoE)[130],[131] 在语言模型领域也变得非常流行。MoE使模型能够在更少的计算资源下进行预训练,这意味着可以在相同的计算预算下大幅扩展模型或数据集的规模,就像密集模型一样。MoE由两个主要元素组成:稀疏 MoE 层,用于替代密集前馈网络(FFN)层,并且有一定数量的“专家”(例如 8 个),其中每个专家是一个神经网络。在实践中,专家是 FFN,但它们也可以是更复杂的网络。一个门控网络或路由器,用于确定哪些标记被发送到哪个专家。值得注意的是,一个标记可以被发送到多个专家。在使用 MoE 时如何将标记路由到专家是一个重要决策之一 - 路由器由学习参数组成,并且与网络的其余部分同时进行预训练。图 29 展示了一个 Switch Transformer 编码器块的示意图,这些块用于 MoE。
F. 微调和指令微调
早期的语言模型(如 BERT)使用自监督训练,如第 [III-E] 部分所述,无法执行特定任务。为了使基础模型有用,需要使用带标签数据对其进行特定任务的微调(称为监督微调或 SFT)。例如,在原始的 BERT 论文 [24] 中,该模型被微调用于 11 个不同的任务。尽管最近的语言模型不再需要进行微调即可使用,但它们仍然可以从任务或数据特定的微调中受益。例如,OpenAI 报告称,规模小得多的 GPT-3.5 Turbo 模型在使用任务特定数据进行微调后可以胜过 GPT-4 2 { }^{2} 2。
微调不一定只针对单个任务,还有不同的多任务微调方法(例如参见 Mahabi 等人 [132])。微调到一个或多个任务已知可以改善结果并减少提示工程的复杂性,它可以作为检索增强生成的一种替代方法。此外,进行微调可能是明智的另一个原因。例如,有人可能希望微调以使模型接触到在预训练期间未曾接触过的新数据或专有数据。
(a) 绝对位置嵌入 [129]
© 旋转位置嵌入 [127]
(b) 相对位置嵌入
(d) 相对位置偏差 [128]
图 28:LLM 中使用的各种位置编码。
图 29:Switch Transformer 编码器块的示意图。它们用稀疏的 Switch FFN 层(浅蓝色)替换了 Transformer 中的密集前馈网络(FFN)层。由 [131] 提供。
微调语言模型的一个重要原因是调整模型的响应以符合人类在通过提示提供指令时的期望。这就是所谓的指令微调 [133]。我们将在第 IV-B 节详细探讨如何设计和构建提示,但在指令微调的背景下,重要的是要理解指令是指定模型应完成的任务的提示。指令微调数据集(如 Natural Instructions [134])不仅包括任务定义,还包括其他组件,如正面/负面示例或要避免的内容。
用于指令微调语言模型的具体方法和指令数据集各不相同,但总体而言,经过指令微调的模型通常优于它们所基于的原始基础模型。例如,InstructGPT [59] 在大多数基准测试中优于 GPT-3。Alpaca [62] 与 LLaMA 相比也是如此。
Self-Instruct [135] 是王等人提出的另一种沿着这条路线的流行方法,他们介绍了一个改进预训练语言模型的指令遵循能力的框架,通过从语言模型生成自己的生成物。他们的流程从语言模型生成指令、输入和输出样本,然后过滤无效或相似的样本,最后使用它们来微调原始模型。
G. 对齐
AI 对齐是将 AI 系统引导到人类目标、偏好和原则的过程。为了进行单词预测而进行预训练的语言模型经常表现出意外行为。例如,它们可能生成有毒、有害、误导性和偏见的内容。
上文讨论的指令微调使语言模型更接近对齐。然而,在许多情况下,有必要包含进一步的步骤来改善模型的对齐并避免意外行为 3 。我们将在本小节中回顾最流行的[^2]对齐方法。
RLHF(从人类反馈中进行强化学习)和 RLAIF(从 AI 反馈中进行强化学习)是两种流行的方法。RLHF 使用奖励模型从人类反馈中学习对齐。调整后的奖励模型能够对不同的输出进行评分,并根据人类给定的对齐偏好对其进行评分。奖励模型向原始语言模型提供反馈,这个反馈用于进一步调整语言模型 [137]。另一方面,从 AI 反馈进行强化学习直接将一个预训练良好对齐的模型连接到语言模型,并帮助其从更大、更对齐的模型中学习 [138]。
在另一项最近的工作中(称为 DPO)[139],Rafailov 等人讨论了 RLHF 是一个复杂且经常不稳定的过程,并尝试用一种新方法解决这个问题。他们利用奖励函数和最优策略之间的映射,展示了这个受限奖励最大化问题可以通过单个阶段的策略训练来精确优化,从根本上解决了在人类偏好数据上进行分类问题的问题。由此产生的算法被称为直接偏好优化(DPO),它稳定、高效且计算轻量级,消除了拟合奖励模型、在微调期间从 LM 中采样或进行重要的超参数调整的需要。他们观察到,使用 DPO 进行微调超过了 RLHF 在控制生成物情感和提高摘要质量方面的能力。图 30 显示了 DPO 与 RLHF 的高级比较。
图 30:DPO 优化人类偏好,同时避免强化学习。现有的使用人类反馈微调语言模型的方法首先将奖励模型拟合到提示和人类对响应对的偏好的数据集,然后使用强化学习找到最大化学习奖励的策略。相比之下,DPO 直接优化最适合满足偏好的策略,使用简单的分类目标,无需明确的奖励函数或强化学习。由 [139] 提供。
最近,Ethayarajh 等人提出了一种名为 Kahneman-Tversky Optimization (KTO) 的新的对齐方法 [136]。与现有的最先进方法不同,KTO 不需要配对的偏好数据 ( x , y w , y l ) \left(x, y_{w}, y_{l}\right) (x,yw,yl),它只需要 ( x , y ) (\mathrm{x}, \mathrm{y}) (x,y) 以及 y y y 是可取或不可取的知识。研究表明,KTO 对齐模型在 10 亿到 30 亿规模上表现良好甚至优于 DPO 对齐模型,尽管没有使用配对偏好数据。KTO 在现实世界中的使用也比偏好优化方法要简单得多,因为它所需的数据类型更加丰富。举例来说,每家零售公司都拥有大量客户互动数据,以及该互动是否成功(例如,是否购买)。然而,它们几乎没有因果数据(即,是什么让一个不成功的客户互动 y l y_{l} yl 变为成功的 y w ) \left.y_{w}\right) yw)。图 31 显示了KTO与前述其他对齐方法之间的高层比较。
图31:LLM对齐涉及监督微调,然后优化人类中心损失(HALO)。然而,现有方法需要的成对偏好很难获得。相比之下,KTO使用一种更丰富的数据类型,使其在现实世界中更容易使用。由[136]提供。
H. 解码策略
解码是指使用预训练的LLM生成文本的过程。给定输入提示,分词器将输入文本中的每个标记转换为相应的标记ID。然后,语言模型使用这些标记ID作为输入,并预测下一个最有可能的标记(或一系列标记)。最后,模型生成logits,通过softmax函数将其转换为概率。已经提出了不同的解码策略。其中一些最流行的策略包括贪婪搜索、束搜索,以及不同的采样技术,如top-K、top-P(核采样)。
- 贪婪搜索:贪婪搜索在每一步中将最有可能的标记作为序列中的下一个标记,舍弃所有其他潜在选项。可以想象,这是一种简单的方法,可能会丢失很多时间一致性和连贯性。它只考虑每一步中最有可能的标记,而不考虑对序列整体的影响。这种特性使其速度快,但也意味着可能会错过出现概率略低的更好序列。
- 束搜索:与只考虑下一个最有可能标记的贪婪搜索不同,束搜索考虑 N \mathbf{N} N个最有可能的标记,其中 N \mathbf{N} N表示束的数量。此过程重复进行,直到达到预定义的最大序列长度或出现序列结束标记。在这一点上,选择具有最高总分的标记序列(也称为“束”)作为输出。例如,对于束大小为2和最大长度为5,束搜索需要跟踪 2 5 = 32 2^{5}=32 25=32个可能序列。因此,它比贪婪搜索更消耗计算资源。
- Top-k采样:Top-k采样是一种利用语言模型生成的概率分布从 k \mathrm{k} k个最有可能选项中随机选择一个标记的技术。
假设我们有6个标记(A、B、C、D、E、F),k=2,且 P ( A ) = 30 % \mathrm{P}(\mathrm{A})=30 \% P(A)=30%, P ( B ) = 20 % \mathrm{P}(\mathrm{B})=20 \% P(B)=20%, P ( C ) = P ( D ) = P ( E ) = P ( F ) = 12.5 % \mathrm{P}(\mathrm{C})=\mathrm{P}(\mathrm{D})=\mathrm{P}(\mathrm{E})=\mathrm{P}(\mathrm{F})=12.5 \% P(C)=P(D)=P(E)=P(F)=12.5%。在top-k采样中,标记C、D、E、F被忽略,模型输出A的概率为60%,B的概率为40%。这种方法确保我们优先考虑最有可能的标记,同时在选择过程中引入一定的随机性。
随机性通常是通过温度的概念引入的。温度 T \mathrm{T} T是一个从0到1的参数,影响softmax函数生成的概率,使得最有可能的标记更具影响力。在实践中,它简单地通过将输入logits除以温度值来实现:
softmax ( x i ) = e x i / T ∑ j e x j / T \begin{equation*} \operatorname{softmax}\left(x_{i}\right)=\frac{e^{x_{i} / T}}{\sum_{j} e^{x_{j} / T}} \tag{3} \end{equation*} softmax(xi)=∑jexj/Texi/T(3)
低温度设置显著改变概率分布(通常用于控制生成输出中的“创造性”水平),而较高温度则优先考虑具有较高概率的标记。Top-k是一种创造性的采样方式,可以与束搜索一起使用。通过top-k采样选择的序列可能不是束搜索中概率最高的序列。但重要的是要记住,最高分数并不总是导致更现实或更有意义的序列。
- Top-p采样:Top-p采样,也称为核采样,与top-k采样稍有不同。核采样不是选择前 k \mathrm{k} k个最有可能的标记,而是选择一个截断值 p p p,使得所选标记的概率之和超过 p p p。这形成了一个“核心”标记集,从中随机选择下一个标记。换句话说,在top-p采样中,语言模型按降序检查最有可能的标记,并将它们添加到列表中,直到概率之和超过阈值 p p p。可以想象,这在top-k标记没有大概率质量的情况下可能更好。与top-k采样不同,核采样中包含的标记数量不是固定的。这种可变性通常会产生更多样化和创造性的输出,使核采样在与文本生成相关的任务中备受青睐。
I. 成本效益的训练/推理/适应/压缩
在这部分中,我们将回顾一些用于更具成本效益(和计算效率)训练和使用LLM的流行方法。
- 优化训练:有许多为LLM优化训练开发的框架,这里介绍一些著名的。
ZeRO:在[140]中,Rajbhandari等人开发了一种新颖的解决方案Zero Redundancy Optimizer(ZeRO),以优化内存,大大提高LLM的训练速度,同时增加可以高效训练的模型大小。ZeRO消除了数据并行和模型并行训练中的内存冗余,同时保持低通信量和高计算粒度,使得可以将模型大小按设备数量比例扩展,保持高效率。
RWKV:在[141]中,Peng等人提出了一种新颖的模型架构,Receptance Weighted Key Value(RWKV),将Transformer的高效可并行训练与RNN的高效推理相结合。他们的方法利用线性注意机制,允许将模型构建为Transformer或RNN,这在训练期间并行计算,并在推理期间保持恒定的计算和内存复杂度,导致第一个非Transformer架构被扩展到数百亿个参数。RWKV架构如图32所示。RWKV与不同Transformer的时间复杂度比较如图33所示。
图32:RWKV架构。由[141]提供。
Transformers的时间复杂度与RWKV的比较如图33所示。
图 33: RWKV 与不同 Transformer 的时间复杂度比较。这里 TT 表示序列长度,dd 表示特征维度,\mathrm{c}c 是 MEGA 的二次注意力块大小。资料来源:[141]。
- 低秩调整 (LoRA): 低秩调整是一种流行且轻量级的训练技术,可以显著减少可训练参数的数量。它基于这样一个关键观点,即针对专门任务进行微调的权重与初始预训练权重之间的差异通常呈现出“低内在秩” - 意味着它可以很好地被低秩矩阵近似表示。 [142]。
图34:LoRA重参数化示意图。只有在此过程中训练的 A A A和 B B B。由[142]提供。
使用LoRA进行训练更快速、节省内存,并产生更小的模型权重(几百MB),更易于存储和共享。低秩矩阵的一个特性是它们可以表示为两个较小矩阵的乘积。这一认识导致了这样一个假设,即微调权重与初始预训练权重之间的差异通常表现出“低固有秩” - 这意味着它可以很好地近似为一个低秩矩阵。
具体地,对于一个预训练权重矩阵 W 0 ∈ R d × k W_{0} \in R^{d \times k} W0∈Rd×k,LoRA通过将其更新表示为低秩分解 W 0 + Δ W = W 0 + B A W_{0}+\Delta W=W_{0}+B A W0+ΔW=W0+BA来约束其更新,其中 B ∈ R d × r B \in R^{d \times r} B∈Rd×r, A ∈ R r × k A \in R^{r \times k} A∈Rr×k,且秩 r ≪ min ( d , k ) r \ll \min (d, k) r≪min(d,k)。在训练期间, W 0 W_{0} W0被冻结,不接收梯度更新,而 A A A和 B B B包含可训练参数。值得一提的是, W 0 W_{0} W0和 Δ W = B A \Delta W=B A ΔW=BA与相同的输入相乘,它们的各自输出向量在坐标上求和。对于 h = W 0 x h=W_{0} x h=W0x,它们修改后的前向传递为: h = W 0 x + Δ W x = W 0 x + B A x h=W_{0} x+\Delta W x=W_{0} x+B A x h=W0x+ΔWx=W0x+BAx。通常,对 A A A使用随机高斯初始化,对 B B B使用零初始化,因此 Δ W = B A \Delta W=B A ΔW=BA在训练开始时为零。然后,他们通过 α r \alpha r αr缩放 Δ W x \Delta W x ΔWx,其中 α \alpha α是 r \mathrm{r} r中的常数。这种重新参数化如图34所示。
值得一提的是,LoRA可以应用于神经网络中的任何一部分权重矩阵,以减少可训练参数的数量。在Transformer架构中,自注意力模块中有四个权重矩阵 ( W q , W k , W v , W o ) \left(W_{q}, W_{k}, W_{v}, W_{o}\right) (Wq,Wk,Wv,Wo),MLP模块中有两个。大多数情况下,LoRA专注于仅调整下游任务的注意权重,并冻结MLP模块,因此在下游任务中它们既出于简单性又出于参数效率的考虑而不被训练。
- 知识蒸馏:知识蒸馏是从一个更大的模型中学习的过程 [143]。在较早发布的表现最佳模型中,已经证明这种方法即使在 API 蒸馏方法中也非常有用。这也被称为将不只是单个模型的知识,而是多个模型的知识蒸馏到一个更小模型的方法。通过这种方法创建更小的模型可以得到更小的模型尺寸,甚至可以在边缘设备上使用。如图 35 所示,知识蒸馏展示了这一训练方案的一般设置。
图35:带有学生和老师的通用知识蒸馏框架(由[144]提供)。
知识可以通过不同形式的学习进行传递:响应蒸馏、特征蒸馏和API蒸馏。响应蒸馏仅涉及老师模型的输出,并尝试教导学生模型如何像老师一样进行(在预测意义上)准确或至少类似地执行。特征蒸馏不仅使用最后一层,还使用中间层,为学生模型创建更好的内部表示。这有助于较小的模型具有与老师模型类似的表示。
API蒸馏是使用API(通常来自LLM提供者,如OpenAI)来训练较小的模型的过程。在LLM的情况下,它用于从较大模型的直接输出训练模型,使其与响应蒸馏非常相似。这种类型的蒸馏引发了许多关注,因为在模型本身不公开可用的情况下,为最终用户提供了一个(通常是付费的)API。另一方面,虽然用户每次调用都要付费,但如何使用预测是受限制的,例如,OpenAI禁止使用其API创建后来将用于与其竞争的LLM。在这种情况下的主要价值在于训练数据。
- 量化:深度学习本质上是一组应用于矩阵的数学函数,具有模型权重的特定精度。减少权重的精度可用于减小模型的大小并使其更快。例如,与Int-8操作相比,Float-32操作较慢。这个过程称为量化,可以在不同阶段应用。模型量化的主要方法可以分类为:训练后量化和量化感知训练。训练后量化涉及两种众所周知的方法:动态和静态的量化训练后量化在运行时计算量化范围,与静态相比较慢。量化感知训练将量化标准添加到训练中,并在训练过程中训练和优化量化模型。这种方法确保最终模型将具有良好的性能,并且在训练后不需要进行量化。
IV. LLM如何被使用和增强
一旦LLM被训练,我们可以使用它们为各种任务生成所需的输出。LLM可以通过基本提示直接使用。然而,为了充分利用它们的潜力或解决一些缺点,我们需要通过一些外部手段来增强模型。在本节中,我们首先简要概述LLM的主要缺点,深入探讨幻觉问题。然后,我们描述提示和一些增强方法如何不仅可以解决这些限制,还可以用于增强LLM的能力,甚至将LLM转变为一个具有与外部世界交互能力的全面AI代理。
A. LLM的限制
重要的是要记住,LLM被训练用于预测一个标记。尽管微调和对齐提高了它们的性能并为它们的能力增加了不同的维度,但仍然存在一些重要的限制,特别是如果它们被天真地使用。其中一些包括以下内容:
- 它们没有状态/记忆。LLM本身甚至不能记住之前提示发送给它们的内容。对于许多需要某种形式状态的用例来说,这是一个重要的限制。
- 它们是随机的/概率的。如果将相同的提示多次发送给LLM,您可能会得到不同的响应。虽然有参数,特别是温度,可以限制响应中的变化,但这是它们训练的固有属性,可能会产生问题。
- 它们具有过时的信息,并且本身没有访问外部数据的能力。LLM本身甚至不知道当前时间或日期,也无法访问其训练集中不存在的任何信息。
- 它们通常非常庞大。这意味着训练和服务需要许多昂贵的GPU机器。在某些情况下,最大的模型在延迟方面具有较差的SLA。
- 它们会产生幻觉。LLM没有“真相”的概念,它们通常是在好坏内容的混合中进行训练的。它们可以产生非常可信但不真实的答案。
尽管以前的限制对于某些应用可能都很重要,但我们值得深入研究最后一个限制,即幻觉,因为它在过去几个月引起了很多关注,并且也激发了我们稍后将描述的许多提示方法和LLM增强方法。
幻觉:在大型语言模型(LLM)领域,"幻觉"现象引起了很大关注。在文献中定义,特别是在“自然语言生成中幻觉调查”论文[145]中,LLM中的幻觉被描述为“生成内容是荒谬的或与提供的源不忠实”。尽管这个术语根植于心理学术语,但已被人工智能领域所使用。
LLM中的幻觉可以广泛分类为两种类型:
- 内在幻觉:这些直接与源材料相冲突,引入事实错误或逻辑不一致。
- 外在幻觉:这些虽然不矛盾,但无法根据源进行验证,包括推测性或无法证实的元素。
LLM上下文中“源”的定义随任务而异。在基于对话的任务中,它指的是“世界知识”,而在文本摘要中,它涉及输入文本本身。这种区别在评估和解释幻觉中起着至关重要的作用。幻觉的影响也高度依赖于上下文。例如,在像写诗这样的创造性工作中,幻觉可能被认为是可以接受甚至有益的。
LLM在包括互联网、书籍和维基百科在内的多样数据集上进行训练,基于概率模型生成文本,而没有对真实性或虚假性的固有理解。最近的进展,如指导微调和来自人类反馈的强化学习(RLHF),试图引导LLM产生更真实的输出,但基本的概率性质及其固有限制仍然存在。最近的一项研究,“大型语言模型在推理任务中产生幻觉的来源”[146],强调了导致LLM产生幻觉的两个关键因素:真实性先验和相对频率启发式,突显了LLM训练和输出生成中的复杂性。
在LLM中有效地自动测量幻觉需要结合统计和基于模型的度量。
统计度量:
- ROUGE [147]和BLEU [148]等度量常用于评估文本相似性,重点关注内在幻觉。
- 当结构化知识源可用时,会使用高级度量,如PARENT [149],PARENT T \mathrm{T} T [150]和知识F1 [151]。这些度量虽然有效,但在捕捉句法和语义细微差别方面存在局限性。
基于模型的度量:
- 基于信息提取的度量:利用信息提取模型将知识简化为关系元组,然后将其与源进行比较。
- 基于问答的度量:通过问答框架评估生成内容与源之间的重叠(见[152])。
- 基于自然语言推理的度量:使用自然语言推理数据集评估生成假设的真实性,基于给定的前提(见[153])。
- 忠实度分类度量:通过为细致评估创建任务特定数据集,提供精细的评估(见[154])。
尽管自动度量方面取得了进展,但人类判断仍然是至关重要的。通常涉及两种方法:
LLM如何被使用和增强
图36:LLM如何被使用和增强。
- 评分:人类评估者根据预定义的标准对幻觉水平进行评分。
- 比较分析:评估者将生成的内容与基线或基本真实参考进行比较,增加了一个重要的主观评估层面。
FactScore [155]是一个最近的度量的例子,可用于人类和基于模型的评估。该度量将LLM生成分解为“原子事实”。最终得分计算为每个原子事实的准确性之和,每个原子事实都被赋予相同的权重。准确性是一个二进制数字,简单地说明原子事实是否由源支持。作者实施了不同的自动化策略,使用LLM来估计这个度量。
最后,在LLM中减少幻觉是一个多方面的挑战,需要量身定制的策略来适应各种应用。这些策略包括:
- 产品设计和用户交互策略,如用例设计、结构化输入/输出或提供用户反馈机制。
- 数据管理和持续改进。维护和分析幻觉跟踪集对于持续改进模型至关重要。
- 提示工程和元提示设计。IV-B中描述的许多高级提示技术,如检索增强生成,直接解决了幻觉风险。
B. 使用LLMs:提示设计与工程
在生成式人工智能模型中,提示是用户提供的文本输入,用于引导模型的输出。这可以是从简单问题到详细描述或具体任务的范围。提示通常包括指令、问题、输入数据和示例。在实践中,为了从人工智能模型中引出期望的响应,提示必须包含指令或问题,其他元素则是可选的。高级提示涉及更复杂的结构,例如“思维链”提示,其中模型被引导遵循逻辑推理过程以得出答案。
提示工程是一个快速发展的学科,塑造了LLMs和其他生成式人工智能模型的交互和输出。提示工程的核心在于设计最佳提示以实现特定目标与生成模型。这个过程不仅仅是关于指导模型,还涉及对模型的能力和限制以及其运行环境的一些理解。
提示工程超越了简单的提示构建;它需要结合领域知识、对人工智能模型的理解以及一种系统的方法来为不同环境量身定制提示。这可能涉及创建可以根据给定数据集或环境进行程序化修改的模板。例如,基于用户数据生成个性化响应可能会使用一个动态填充相关用户信息的模板。
此外,提示工程是一个迭代和探索性过程,类似于传统的机器学习实践,如模型评估或超参数调整。这一领域的快速增长表明了它有可能革新机器学习的某些方面,超越传统方法,如特征或架构工程。另一方面,传统的工程实践,如版本控制和回归测试,需要适应这种新范式,就像它们适应其他机器学习方法一样。
在接下来的段落中,我们详细介绍一些最有趣和流行的提示工程方法。
- 思维链(CoT):思维链(CoT)技术最初在谷歌研究人员撰写的论文“思维链提示引发大型语言模型的推理”[34] 中描述,代表了大型语言模型(LLMs)提示工程的一个重要进展。这种方法的关键在于理解LLMs虽然擅长标记预测,但并非专门设计用于明确推理。CoT通过引导模型完成基本推理步骤来解决这个问题。
C o T \mathrm{CoT} CoT 基于将LLMs的隐式推理过程变得显式。通过概述推理所需的步骤,模型被引导更接近逻辑和推理的输出,特别是在需要不仅仅是简单信息检索或模式识别的场景中。
CoT提示体现在两种主要形式中:
- 零-shot CoT:这种形式涉及指导LLM“逐步思考”,促使其分解问题并阐述每个推理阶段。
- 手动CoT:这是一种更复杂的变体,需要提供逐步推理示例作为模型的模板。虽然产生更有效的结果,但在可扩展性和维护方面存在挑战。
手动CoT比零-shot更有效。然而,这种基于示例的CoT的有效性取决于选择多样化的示例,并且手动构建具有逐步推理示例的提示是困难且容易出错的。这就是自动CoT [157] 发挥作用的地方。
- 思维树(ToT):思维树(ToT)提示技术受到在收敛于最合理解决方案之前考虑各种替代解决方案或思维过程的概念启发。ToT基于展开多个“思维树”的概念,其中每个分支代表不同的推理线路。这种方法允许LLM探索各种可能性和假设,就像人类认知过程中在确定最可能解之前考虑多种情景一样。
ToT的一个关键方面是对这些推理路径的评估。随着LLM生成不同的思维分支,每个分支都会被评估其对查询的有效性和相关性。这个过程涉及对分支的实时分析和比较,导致选择最连贯和逻辑的结果。
ToT在复杂问题解决场景中特别有用,单一推理线路可能不足以解决问题。它允许LLMs模仿更类似于人类的问题解决方法,考虑多种可能性后再得出结论。这种技术增强了模型处理模糊性、复杂性和微妙任务的能力,使其成为高级人工智能应用中的有价值工具。
- 自一致性:自一致性 [159] 利用基于集成的方法,提示LLM对同一查询生成多个响应。这些响应之间的一致性作为其准确性和可靠性的指标。
自一致性方法基于这样一个原则,即如果LLM对相同提示生成多个相似的响应,那么这些响应更有可能是准确的。这种方法涉及要求LLM多次处理一个查询,每次分析响应的一致性。这种技术在需要事实准确性和精度至关重要的场景中特别有用。
响应的一致性可以用各种方法来衡量。一个常见的方法是分析响应内容的重叠。其他方法可能包括比较响应的语义相似性或使用更复杂的技术,如BERT分数或n-gram重叠。这些措施有助于量化LLM生成的响应之间的一致性水平。
自一致性在信息准确性至关重要的领域有重要应用。它特别适用于事实核查等场景,其中确保由人工智能模型提供的信息准确性至关重要。通过采用这种技术,提示工程师可以增强LLMs的可信度,使其在需要高水平事实准确性的任务中更可靠。
- 反思:反思 [160] 包括提示LLMs评估并根据对其响应的正确性和连贯性的推理进行修订。反思的概念集中在LLMs进行一种自我评估的能力上。在生成初始响应后,模型被提示反思其自身的输出,考虑事实准确性、逻辑一致性和相关性等因素。这种内省过程可以导致生成修订或改进的响应。
反思的一个关键方面是LLM进行自我编辑的能力。通过评估其初始响应,模型可以确定潜在的错误或改进领域。这种生成、反思和修订的迭代过程使LLM能够完善其输出,提高其响应的整体质量和可靠性。
- 专家提示:专家提示 [161] 通过模拟各个领域专家的响应,增强了大型语言模型(LLMs)的能力。这种方法涉及提示LLMs扮演专家角色并相应地回答,提供高质量、知情的答案。在专家提示中的一个关键策略是多专家方法。LLM被提示考虑来自多个专家视角的响应,然后综合这些视角形成全面且全面的答案。这种技术不仅增强了响应的深度,还融合了一系列观点,反映了对主题的更全面理解。
- 链:链指的是将多个组件链接成序列以处理大型语言模型(LLMs)中的复杂任务的方法。这种方法涉及创建一系列相互连接的步骤或过程,每个步骤都对最终结果有所贡献。链的概念基于构建工作流程的想法,其中不同阶段或组件被顺序排列。链中的每个组件执行特定功能,一个组件的输出作为下一个组件的输入。这种端到端的安排允许更复杂和微妙的处理,因为每个阶段都可以定制处理任务的特定方面。链的复杂性和结构可以根据需求而变化。在“PromptChainer:通过可视化编程链接大型语言模型提示”[162] 中,作者不仅描述了设计链的主要挑战,还描述了支持这些任务的可视化工具。
- 约束:在高级提示工程中,约束是指通过预定义的规则或模板引导和控制大型语言模型(LLMs)的输出的方法。这种方法旨在确保模型的响应符合特定的标准或标准,增强输出的相关性、安全性和准确性。约束的概念涉及建立一个框架或一组指导原则,LLM在生成响应时必须遵循这些指导原则。这些指导原则通常使用建模语言或称为规范形式的模板来定义,规范化自然语言句子的结构和传递方式。
约束可以根据应用的具体需求设计为各种目的:
- 主题约束:确保LLM专注于特定主题或领域。
- 事实核查约束:旨在最小化生成虚假或误导性信息。
- 自动提示工程(Automatic Prompt Engineering,APE):自动提示工程(APE)[163]专注于自动化大型语言模型(LLMs)的提示创建过程。APE旨在简化和优化提示设计过程,利用LLMs自身的能力生成和评估提示。APE涉及以自指方式使用LLMs,其中模型被用于生成、评分和改进提示。LLMs的这种递归使用使得可以创建更有可能引发期望响应或结果的高质量提示。
APE的方法可以分解为以下几个关键步骤:
- 提示生成:LLM基于给定任务或目标生成一系列潜在提示。
- 提示评分:然后对每个生成的提示进行评估其有效性,通常使用清晰度、具体性和引发期望响应可能性等标准。
- 优化和迭代:根据这些评估,提示可以进行优化和迭代,进一步增强其质量和有效性。
C. 通过外部知识增强LLMs - RAG
预训练LLMs的主要局限之一是它们缺乏最新知识或访问私有或特定用例的信息。这就是检索增强生成(Retrieval Augmented Generation,RAG)[164]的用武之地。RAG,如图37所示,涉及从输入提示中提取查询,并使用该查询从外部知识源(例如搜索引擎或知识图,见图38)检索相关信息。然后将相关信息添加到原始提示中,并馈送给LLM,以便模型生成最终响应。RAG系统包括三个重要组件:检索、生成、增强[165]。
a) RAG感知提示技术:由于RAG对构建先进LLM系统的重要性,最近已开发了几种RAG感知提示技术。其中一种技术是前瞻性主动检索增强生成(Forward-looking Active Retrieval Augmented Generation,FLARE)。
前瞻性主动检索增强生成(FLARE)[168]通过迭代地结合预测和信息检索来增强大型语言模型(LLMs)的能力。FLARE代表了检索增强生成的演进,旨在提高LLM响应的准确性和相关性。
FLARE涉及一个迭代过程,LLM主动预测即将到来的内容,并将这些预测用作查询以检索相关信息。这种方法与通常一次性检索信息然后进行生成的传统检索增强模型形成对比。在FLARE中,这个过程在生成阶段始终是动态和持续的。在FLARE中,LLM生成的每个句子或段落都会评估置信度。如果置信水平低于一定阈值,模型将使用生成的内容作为查询检索相关信息,然后用于重新生成或改进句子。这种迭代过程确保响应的每个部分都受到最相关和最新信息的影响。
图37:将RAG与LLMs合成用于问答应用的示例[166]。
图38:这是将知识图(KG)作为LLMs的检索器之一的示例[167]。
有关RAG框架及相关作品的更多细节,我们建议读者参阅这篇检索增强生成的综述[165]。
D. 使用外部工具
如上所述,从外部知识源检索信息只是增强LLM的潜在方式之一。更一般地,LLM可以访问任意数量的外部工具(例如服务的API)来增强其功能。在这方面,RAG可以被看作是所谓“工具”这一更广泛类别的一个特定实例。
在这个上下文中,工具是LLMs可以利用的外部功能或服务。这些工具扩展了LLM可以执行的任务范围,从基本信息检索到与外部数据库或API的复杂交互。
在论文“Toolformer: Language Models Can Teach Themselves to Use Tools”[169]中,作者通过训练LLM决定何时使用什么工具,甚至API需要什么参数,超越了简单的工具使用。工具包括两种不同的搜索引擎,或者计算器。在以下示例中,LLM决定调用外部问答工具、计算器和维基百科搜索引擎。最近,伯克利的研究人员训练了一个名为Gorilla的新LLM[67],在使用API方面击败了GPT-4,这是一个特定但相当通用的工具。
a) 工具感知提示技术:类似于RAG,已经开发了几种工具感知提示方法,以使工具的使用更具可扩展性。一种流行的技术是所谓的自动多步推理和工具使用(Automatic Multistep Reasoning and Tool-use,ART)。
自动多步推理和工具使用(ART)[170]是一种提示工程技术,它将思维链的自动化提示与外部工具的使用结合起来。ART代表了多种提示工程策略的融合,增强了大型语言模型(LLMs)处理需要推理和与外部数据源或工具交互的复杂任务的能力。
ART涉及一个系统化的方法,给定一个任务和输入,系统首先从任务库中识别类似任务。然后在提示中使用这些任务作为示例,指导LLM如何处理和执行当前任务。当任务需要内部推理和外部数据处理或检索的结合时,这种方法特别有效。
E. LLM代理
AI代理的概念在AI历史上得到了广泛探讨。代理通常是一个可以使用其传感器感知环境、根据当前状态做出判断,并根据其可用的动作采取行动的自主实体。
在LLMs的背景下,代理指的是基于专门实例化的(增强的)LLM的系统,能够自主执行特定任务。这些代理被设计为与用户和环境交互,根据输入和交互的预期目标做出决策。代理基于具有访问和使用工具的LLMs,以及根据给定输入做出决策的能力。它们旨在处理需要一定程度的自主性和决策制定的任务,通常超出简单的响应生成。
通用LLM代理的功能包括:
- 工具访问和利用:代理有能力访问外部工具和服务,并有效地利用这些资源来完成任务。
- 决策制定:它们可以根据输入、上下文和可用工具做出决策,通常使用复杂的推理过程。
例如,如果一个LLM可以访问天气API这样的功能(或API),它可以回答与特定地点天气有关的任何问题。换句话说,它可以使用API解决问题。此外,如果该LLM可以访问一个允许进行购买的API,那么可以构建一个购买代理,不仅具有从外部世界读取信息的能力,还可以对其进行操作[171]。
图40展示了另一个LLM代理的示例,用于对话式信息检索[36],其中LLM通过一组即插即用模块进行增强,包括跟踪对话状态的工作记忆、为任务制定执行计划并选择下一个系统动作的策略、执行由策略选择的动作(从外部知识中整合证据,或提示LLM生成响应)的动作执行器,以及访问LLM响应与用户期望或特定业务要求的一致性的效用,并生成反馈以改进代理性能。
有关基于LLM的AI代理的更多细节,请参阅最近的调查[172],[173],[174]。
a) 代理的提示工程技术:与RAG和工具类似,已经开发了专门解决基于LLM代理需求的提示工程技术。其中三个例子是无观察推理(ReWOO)、推理和行动(ReAct)和对话启用解析代理(DERA)。
无观察推理(ReWOO)[175]旨在将推理与直接观察分离。ReWOO通过使LLMs能够制定全面的推理计划或元计划,而无需立即依赖外部数据或工具来运行。这种方法允许代理创建一个结构化的推理框架,一旦必要的数据或观察可用,就可以执行。在ReWOO中,LLM最初制定一个计划(一系列步骤),概述如何处理和解决给定问题。这个元规划阶段至关重要,因为它为代理在数据可用时如何处理信息奠定了基础。执行阶段涉及将实际数据或观察整合到预先指定的计划中,从而产生连贯和与上下文相关的响应。ReWOO在标记效率和对工具故障的稳健性方面提供了显著优势。它使LLMs能够处理需要即时访问外部数据不可用的任务,而是依赖于良好结构的推理框架。这种方法在数据检索成本高、速度慢或不确定的情况下特别有优势,使基于LLM的代理能够保持高水平的性能和可靠性。
对话式解决代理(DERA)[177]是一种专门的人工智能代理,可以参与对话,解决查询,并根据互动交流做出决策。DERA的开发基于利用对话上下文中的多个代理的想法,每个代理都有特定的角色和功能。这些代理可以包括研究人员,他们收集和分析信息,以及决策者,他们根据提供的信息做出最终判断。这种角色分工方式为解决问题和决策提供了井然有序和高效的方法。DERA在需要复杂决策和问题解决的场景中特别有优势,比如医学诊断或客户服务等领域。DERA代理的协作和互动性质使它们能够处理具有深度和细微差别的复杂查询,而单一代理系统可能会遇到困难。此外,这种方法与人类决策过程相吻合,使得人工智能推理更具可靠性和可信度。
V. 用于LLMS的流行数据集
大型语言模型展现出令人期待的成就,但主要问题是它们如何有效地运作以及如何评估它们在特定任务或应用中的表现。
对LLM的评估面临着特殊挑战,这是由于它们应用领域的不断发展。开发LLM的最初目的是提升自然语言处理任务的性能,比如翻译、摘要、问答等[178]。然而,如今明显可见,这些模型正在在包括代码生成和金融在内的各种领域发挥作用。此外,LLM的评估涵盖了几个关键考虑因素,如公平性和偏见、事实核查和推理。在本节中,我们概述了用于评估LLM的常用基准。这些基准根据训练或评估LLM能力进行分类。
A. 用于基本任务的数据集:语言建模/理解/生成
本节概述了适用于评估LLM基本能力的基准和数据集。
- 自然问题(Natural Questions)[179]是一个问答数据集,包含向Google搜索引擎提交的真实匿名聚合查询作为问题。注释者会看到一个问题以及来自前5个搜索结果的维基百科页面,并注释一个长答案(通常是一个段落)和一个短答案
图39:HuggingGPT:一种使用工具和规划的基于代理的方法[图像由[171]提供]
图40:用于对话信息检索的基于LLM的代理。由[36]提供。
(如果页面上存在一个或多个实体),或者如果没有长/短答案则标记为空。
- MMLU [180] 旨在评估模型在零样本和少样本场景下获得的知识。这意味着MMLU评估模型的通用知识和问题解决能力。它涵盖了STEM、人文学科、社会科学和其他领域的57个主题。该基准在复杂性上有所不同,从基础到高级专业不等。值得一提的是,该数据集的主要贡献是用于多任务语言理解、问题回答和算术推理。
- MBPP [181] 代表“大多数基本Python问题”,提供了一个用于评估为代码生成而设计的模型性能的基准。该基准包含974个短Python程序,包括各种主题,包括基本编程概念和标准库使用等。每个挑战包括一个任务描述、一个代码解决方案和三个自动化测试用例。
- HumanEval [182] 是一个用于代码生成任务的数据集。该数据集包含164个手工编写的编程挑战。每个挑战都附带一个函数签名、文档字符串、代码主体和多个单元测试。开发这一数据集的主要目的是确保其内容不包含在代码生成模型的训练数据集中。
- APPS [183] 专为关注Python编程语言的代码生成任务而设计。APPS数据集包含232,444个Python程序的集合。数据集中的每个程序平均有18行Python代码。此外,APPS还提供了一个包含10,000个独特编程练习的存储库,每个练习都有基于文本的问题描述。最后要强调的是,它包括测试用例。
- WikiSQL [184] 专为代码生成任务而设计,其中包含了来自维基百科表格的87726个经过精心标记的SQL查询对和相应的自然语言问题。SQL查询包括三个子集:测试集(17284个示例)、开发集(9145个示例)和训练集(61297个示例)。
- TriviaQA [185] 专为问答任务而设计。该数据集包含超过650,000个问题-答案-证据三元组。该数据集中有95,000个问题-答案对,每个问题由问答爱好者编写,并由平均六个独立来源的证据文档支持。这些文档是从维基百科或更广泛的网络搜索结果中自动获取的。数据集分为两个部分,包括那些来自维基百科和网络领域的真实答案以及验证集,其中包含准确回答的问题以及其相关文档,这些文档来自维基百科和在线领域。
图41:数据集应用。
- RACE [186] 适用于阅读理解任务。该数据集基于中国中学和高中学生完成的英语测试,年龄介于12到18岁之间,包含大约28,000篇文本和100,000个问题,由人类专家精心准备,主要是英语教师。该数据集包含广泛选择的主题,旨在评估学生的理解和推理能力。该数据集分为三个子组:RACE-M、RACE-H和RACE。RACE-M指的是中学考试,而RACE-H表示高中考试。最后,RACE是RACE-M和RACE-H的综合。
- SQuAD [187] 代表“斯坦福问答数据集”,是一个基于维基百科文章的众包阅读理解数据集。它包含大约100,000个与500多篇文章相关的问答对。这些问题的答案通常是从相应的阅读段落中提取的文本片段或跨度。在某些情况下,问题可能无法回答。该数据集分为三个集合:80%的训练集、10%的开发集和10%的隐藏测试集。
图42:根据不同许可证授权的数据集。
-
BoolQ [188] 是一个是/否问答数据集,旨在进行阅读理解任务。BoolQ包含15,942个示例。每个示例是一个三元组,包括一个问题、一个相关段落和解决方案。尽管该数据集的主要目的是用于阅读理解,但也可用于推理、自然语言推理和问答任务。
-
MultiRC [189] 是另一个适合阅读理解任务的数据集。MultiRC包含简短段落以及可以使用段落中信息回答的多句问题。该数据集中的段落来自各种来源,包括新闻、小说、历史文本、维基百科文章、关于社会和法律的讨论、小学科学教科书和911报告。每个问题有许多响应选择,其中一个或多个是正确的。回答问题需要跨越几个句子进行推理。MultiRC数据集包含来自800多个段落的约6,000个多句问题。平均而言,每个问题提供约两个有效的答案选择,总共有五个。
-
HellaSwag [192] 是为了评估大语言模型(LLMs)中的常识推理而设计的。该基准包含 70,000 个多项选择题。每个问题都源自两个领域之一:ActivityNet 或 WikiHow,并提供四个答案选项,涉及接下来可能发生的情况。正确答案提供了描述即将发生事件的实际陈述,但其他三个错误答案则是为了迷惑机器而制作的。
-
AI2 Reasoning Challenge (ARC) [193] 用于常识推理。该基准包含 7,787 个科学考试问题。这些问题用英语提出,大多数以多项选择的形式设置。这些问题被分为两组:一个包含 2,590 个困难问题的挑战集和一个包含 5,197 个问题的简单集。每个集合也被预先分成了训练、发展和测试子集。
-
PIQA [194] 旨在评估语言表征对物理常识的了解。在该数据集中,重点放在日常情况上,偏好不寻常的解决方案。中心任务是多项选择题回答,其中提供一个问题 ( q ) (q) (q) 和两个潜在解决方案 ( s 1 , s 2 ) (s 1, s 2) (s1,s2)。然后,通过模型或人类选择最佳解决方案。对于每个问题,只有一个解决方案是正确答案。
-
SIQA [195] 提供了一个评估模型在社交情境中进行常识推理能力的框架。SIQA 数据集包含 38,000 个多项选择题,旨在评估情绪和社交智力在日常情况下的应用。该数据集涵盖了各种社交场景。在 SIQA 中,潜在答案是人类选择的回答和经过对抗过程筛选的机器生成的回答的混合。
-
OpenBookQA(OBQA)[196] 是一种新型问答数据集,回答其问题需要额外的常识和常见知识,而这些知识不包含在书籍和丰富的文本理解中。该数据集包括约 6,000 个多项选择题。每个问题都与一个核心事实相关,以及一个包含 6000 多个事实的附加集合。这些问题是通过多阶段众包和专家筛选程序开发的。OpenBookQA 的问题很困难,因为它们需要具有有限背景的多跳推理。
-
TruthfulQA [197] 是专门设计用于评估语言模型在生成问题答案时的真实性。该数据集包含 817 个问题,由不同类别的作者撰写,包括健康、法律、金融和政治等 38 个类别。这些问题被有意设计为挑战人类回答者,因为它们可能包含导致错误答案的常见误解。
-
OPT-IML Bench [103] 是用于指令元学习的全面基准。它涵盖了来自 8 个现有基准的 2000 个自然语言处理任务。OPT-IML Bench 包括一个包含 17.9 百万示例的训练集,一个包含 145 千个样本的开发集,以及一个包含 321 千个样本的测试集。
B. 用于新兴任务的数据集:ICL、推理(CoT)、遵循指令
本节重点介绍用于评估LLM新兴能力的基准和数据集。
- GSM8K [190] 旨在评估模型进行多步数学推理的能力。GSM8K包括由人类编写的8.5K个语言多样的小学数学问题。数据集分为两组:包含7.5K个问题的训练集和包含1K个问题的测试集。这些问题需要2到8个步骤才能解决。解决方案主要是使用基本算术运算进行一系列基本计算。
- MATH [191] 可以评估模型解决数学问题的能力。MATH数据集包含来自高中数学竞赛的12,500个问题。数据集中的每个问题都有一个逐步解决方案和一个用方框圈起来的最终答案。这些问题涵盖了各种主题,复杂程度不同。总共有七个学科。此外,每个问题的难度根据AoPS标准评定,从’1’到’5’的等级。'1’代表一个学科中最容易的问题,而’5’代表最困难的问题。在格式上,所有问题和解决方案都使用LATEX和Asymptote矢量图形语言呈现。
C. 用于增强:使用外部知识/工具的数据集
这一部分关注设计用于增强大型语言模型(LLMs)能力的数据集。
- HotpotQA [198] 旨在涵盖多样化且可解释的问答数据集,需要进行多跳推理。该数据集源自英文维基百科,包含大约113,000个问题。数据集中的每个问题都附带两个段落,称为黄金段落,来自两篇维基百科文章。此外,还有一份由众包工作者挑选出的对回答问题至关重要的句子列表。
- ToolQA [199] 是一个问答基准,用于评估LLMs利用外部工具回答问题的能力。
- GPT4Tools 作为一个指导性数据集,由高级教师(如ChatGPT)生成,其中包含基于视觉内容和工具描述的指导。这个过程会生成与使用工具相关的指导。这个数据集有三个版本。第一个版本包括71,000个用于微调GPT4Tools模型的遵循指导数据点。下一个版本包括手动清理的用于验证的指导数据,涵盖了第一个版本中工具相关的指导。最后一个版本是用于测试的清理指导数据,包括与第一个版本中不存在的一些工具相关的指导。
VI. 重要LLMs在基准测试中的表现
在本节中,我们首先概述了用于评估LLMs在不同场景下表现的一些流行指标。然后,我们将查看重要大型语言模型在一些热门数据集和基准测试中的表现。
A. 评估LLMs的流行指标
评估生成式语言模型的性能取决于它们将要用于的基础任务。大多数涉及从给定选项中选择一个选项的任务(例如情感分析)可以被视为简单的分类,它们的性能可以使用分类指标进行评估。在这种情况下,准确率、精确率、召回率、F1等指标是适用的。值得注意的是,模型为特定任务生成的答案总是True或False。如果答案不在选项集中,也可以视为False。
然而,一些纯粹开放式文本生成的任务无法像分类那样进行评估。需要针对评估的特定目的使用不同的指标。代码生成在开放式生成式评估中是一个非常不同的情况。生成的代码必须通过测试套件,但另一方面,了解模型是否能够生成不同的解决方案作为代码,以及在其中选择正确解决方案的概率是很重要的。Pass @ k k k 是这种情况下非常好的指标。它的工作方式是,给定一个问题,生成不同的代码解决方案。通过使用不同的功能测试对其进行正确性测试。随后,从生成的 n n n个解决方案中,其中 c c c个是正确的,方程4提供了最终值。
表II:LLM数据集概述。
pass @ k : = E Problems [ 1 − ( n − c k ) ( n k ) ] (4) \text { pass } @ k:=\underset{\text { Problems }}{\mathbb{E}}\left[1-\frac{\left(\begin{array}{c} n-c \tag{4}\\ k \end{array}\right)}{\left(\begin{array}{l} n \\ k \end{array}\right)}\right] pass @k:= Problems E 1−(nk)(n−ck) (4)
精确匹配(EM)是另一个主要关注(预定义)答案的精确匹配的指标。如果预测与一个或多个期望的参考文本完全匹配,它将计为正确。在某些情况下,它可以与准确率相同,方程5显示了数学定义。这里M是正确答案的总数,N是问题的总数[202]。
E M = M N \begin{equation*} E M=\frac{M}{N} \tag{5} \end{equation*} EM=NM(5)
人类等效分数(HEQ)则是F1分数的替代指标[203]。HEQ-Q代表每个问题的精确度,其中如果模型的F1分数超过平均人类F1分数,则答案被视为正确。同样,HEQ-D表示每个对话的精确度;当对话中的所有问题都符合HEQ的标准时,它被视为准确[182]。
对于其他生成式任务(如机器翻译)的评估基于Rouge和BLEU等指标。当有一个参考文本作为基本事实(如翻译)和由生成模型(在我们的情况下是LLM)生成的假设时,这些分数很有效。这些分数通常用于在计算方式上检测答案和基本事实的相似性。在计算方式上,这意味着不会使用更多的N-Grams。然而,像BERTScore这样的指标对于这些情况也很好,但它们也存在严重的错误,因为另一个模型用于判断。即使在今天,评估纯粹生成的内容仍然非常困难,没有找到完全合适的指标,这些指标要么只关注N-Gram、SkipGram等简单特征,要么是具有未知准确性和精确性的模型[204]。
表III:LLM类别及其相应定义。
!截屏2024-04-09 07.08.16!截屏2024-04-09 07.08.25
表IV:不同LLM分类。
生成式评估指标是另一种使用另一个LLM评估答案的评估指标。然而,根据任务本身,评估可以以这种方式进行或不进行。使生成式评估容易出错的另一个依赖是对提示本身的依赖。RAGAS是一个很好的例子,它结合了生成式评估的使用。
已经提出了各种基准和排行榜来解决大型语言模型领域中最具挑战性的问题:哪个更好?然而,没有一个简单的答案可以回答这个问题。答案取决于大型语言模型的各个方面。第V节展示了不同任务的分类呈现以及每个类别中最重要的数据集。我们将遵循相同的分类,并根据每个类别提供比较。在为每个类别提供比较后,我们将通过对不同任务上报告的性能指标进行平均,提供聚合性能的广泛概述。
根据提供的分类,我们可以将每个显著的大型语言模型进行分类和标记,如表 IV 所示。从这张表中可以看出,被归类为非常大的模型也是不可用的。
B. 大型语言模型在不同任务上的表现
常识推理是每个模型可以获得的重要能力之一。这种能力表示模型利用先前知识结合推理能力的能力。例如,在 HellaSwag 的情况下,找到文本的延续是具有挑战性的,因为给定的文本包含故事的部分,而给定的选择作为延续则难以选择,如果没有关于世界的先前知识,这是不可能的。这种特定类型的推理值得高度关注,因为它涉及利用先前知识与开放文本描述的场景或事实。从表 V \mathrm{V} V 可以看出,不仅不可用的模型,公开的模型也可以在各种测试中取得良好的结果。
图 43:LLM 分类。
表 V:常识推理比较。
从表 V \mathrm{V} V 中呈现的结果可以清楚地看出,GPT-4 在 HellaSwag 上取得了最佳结果,而 Davinci-003 是 OBQA 的最佳模型。值得注意的是,并非所有模型都报告了 OBQA 的结果,可能 davinci-003 并非在 OBQA 上取得最高结果的最佳模型。
并非所有模型都报告其在所有数据集上的表现,因此在不同表格中报告性能的模型数量会有所不同。
表 VI:符号推理比较。
世界知识主要涉及一般知识问题,例如在 Wikifact 数据集中可以找到问题,比如“某本知名书籍的作者是谁”,并提供了参考资料。表 VII 显示了结果。
表 VII:世界知识比较。
对于一些特定用例模型,具有编码和代码生成能力是非常需要的。表 VIII 显示了不同模型在编码能力上的结果。
表 VIII:编码能力比较。
算术推理是另一个具有挑战性的推理能力。例如,GSM8K 包含与答案相关的小学数学问题。表 IX 提供了不同模型比较的见解。
表 IX:算术推理比较。
在某些情况下,大型语言模型会产生幻觉式答案,因为它们是下一个标记预测机器。幻觉是衡量大型语言模型可信度和可靠性的重要因素之一。然而,衡量幻觉并不像看起来那么简单,因为每个事实可以用不同的方式写入,即使是写作中的最小变化也会使其难以检测。可以合理地假设,如果某个特定的大型语言模型更能够检测文本中错误信息的幻觉,那么它也更加可信赖。HaluEval 是一个旨在衡量这一领域幻觉的数据集 [205]。评估也可以通过另一个模型根据实际答案对响应进行评判 [206]。表 X 显示了基于这些数据集的不同模型的评估。
VII. 挑战与未来方向
正如我们在前面的部分中所看到的,大型语言模型在过去的 1-2 年中取得了令人印象深刻的成果。
表 X:幻觉评估
与此同时,这仍然是一个新颖且极其活跃的研究领域,创新的步伐正在加快而不是减缓。然而,与任何其他不断发展的领域一样,仍然面临着许多挑战。在这里,我们简要提及一些已知的挑战和主要活跃领域。值得注意的是,关于 LLM 挑战的详细讨论可以在 Kaddour 等人的作品中找到 [207]。
A. 更小更高效的语言模型
这是关于大型语言模型的一项调查,最初有一个“越大越好”的初步推动,显然已经得到了诸如 GPT4 等越来越大的模型在基准测试中获得更好准确性和性能的回报。然而,这些大型模型在多个维度(例如高延迟)上都是昂贵且低效的。作为对所有这些的回应,当前的研究趋势是提出小型语言模型(SLMs)作为对LLMs的一种经济有效的替代方案,特别是在用于可能不需要较大模型完整通用性的特定任务时。在这个方向上的重要工作包括 Microsoft 的 Phi-1 [208]、Phi-1.5 [209] 和 Phi-2。
更一般地说,我们应该期待在这个领域有许多研究工作,探讨如何训练更小更高效的模型。诸如参数高效微调(PEFT)、师生学习和其他形式的蒸馏 - 见第 III-I 节 - 将继续被用于从较大模型构建较小模型。
B. 新的后注意力架构范式
Transformer 块一直是当前大多数LLM框架的关键和不变部分,目前这种架构还能流行多久,以及在深度学习(和自然语言处理)领域的下一个重大架构突破将是什么,这是一个大问题。自 2012 年的 AlexNet 以来,我们已经看到许多架构进入并退出流行,包括 LSTM、GRU、seq2seq,但自其问世以来,Transformers 一直是主导方法。如前所述,注意力是驱动 Transformer 的主要机制。最近,出现了一些被标记为后注意力的替代方法的有希望研究。
这类后注意力模型的一个重要类别是所谓的状态空间模型(SSMs)。虽然状态空间模型的概念在机器学习中有着悠久的历史,但在语言模型的背景下,SSM 通常是指较新的结构状态空间模型架构或简称 S4(参见 Gu 等人 [29])。这一类别中的一些最新模型包括 Mamba [30]、Hyena [210] 和 Striped Hyena [211]。
尽管所有这些模型在排行榜和效率方面都非常有竞争力,但它们也解决了传统基于注意力的架构中的一个重要挑战:对更大上下文窗口的支持不足。
对许多提示提供一个好的答案需要上下文。例如,对“给我推荐一些好电影”这个问题的回答需要关于“我”以及可用的电影和我尚未观看的电影的大量上下文。对于 RAG 来说,上下文长度尤为重要,因为可能会检索大量文本并将其注入到提示中进行生成(见第 IV-C 节)。
上下文长度越长,我们就可以将更多标记挤入上下文中。模型可以访问的信息越多,其响应就会越好。但另一方面,对于非常长的上下文,模型要记住所有内容并高效处理所有信息可能会很困难。基于注意力的模型对于更长的上下文非常低效,因此我们应该期待在不同机制方面进行更多研究,以实现处理更长上下文并一般提出更高效架构。
也就是说,新的架构可能不仅仅提出注意力机制的替代方案,而是重新思考整个 Transformer 架构。作为这一点的早期例子,Monarch Mixer [212] 提出了一种使用相同的次二次原语,在序列长度和模型维度上实现高硬件效率的新架构 - Monarch 矩阵。
另一方面,值得一提的是,最近一些与注意力兼容的架构机制已经开始崭露头角,并证明它们在创建更好、更强大的LLMs方面具有价值。这类机制的最佳例子可能是专家混合(MoE)。MoE 在深度学习时代之前就存在多年,甚至在深度学习时代之前就存在 [213],但自那时以来,它们在 Transformer 模型和 LLMs 的背景下变得越来越受欢迎。
在LLMs中,MoEs允许训练一个非常大的模型,然后在推理期间只部分实例化,其中一些专家在权重函数赋予低权重的地方被关闭。例如,GLaM 模型有 1.2 万亿参数,但在推理期间只使用了 64 个专家中的 2 个 [84]。
MoEs现在是所谓的前沿LLMs(即最先进和功能强大的模型)的重要组成部分。据传言,GPT-4 本身就是基于 MoE 架构,而一些表现最佳的LLMs,如 Mixtral [117],基本上是现有LLMs的 MoE 版本。
最后,值得注意的是,MoEs可以作为任何架构的组成部分,无论其是否基于注意力。事实上,MoEs也已经应用于基于SSM的LLMs,如 Mamba [pioro2024moemamba]。无论基础架构如何,我们应该继续看到未来在MoE驱动的改进。
D. 改进的LLM使用和增强技术
正如我们在第四部分中所描述的,LLM的许多缺点和限制,如幻觉,可以通过先进的提示工程、工具的使用或其他增强技术来解决。我们应该期待在这个领域不仅会有持续的研究,而且会加速进行。值得一提的是,在软件工程的具体案例中,一些研究 ( [ 218 ] ) ([218]) ([218]) 尝试自动消除整体软件工程工作流程中的这一问题。
基于LLM的系统已经开始取代直到最近使用其他方法的机器学习系统。作为一个明显的例子,LLM现在被部署用于更好地理解人们的偏好和兴趣,并提供更个性化的互动,无论是在客户服务、内容推荐还是其他应用中。这涉及更好地理解用户的偏好,分析他们过去的互动并将其用作上下文。我们将继续看到关于LLM的应用和使用的研究,不仅仅是个性化和推荐,还有许多其他应用领域使用其他机器学习技术。
最后,我们预计LLM代理和多代理系统 [172], [173], [174] 这一重要研究领域将受到更多关注。开发具有外部工具和决策能力的LLM系统既令人兴奋又具有挑战性。我们将看到在这一重要领域的持续研究和进展,一些人认为这可能导致人工通用智能(AGI)。
E. 安全和道德/负责任的人工智能
确保LLM对抗对抗性攻击和其他漏洞的健壮性和安全性是一个重要的研究领域 [219]。随着LLM越来越多地部署在现实应用中,需要保护它们免受潜在威胁,以防止它们被用来操纵人们或传播错误信息。
解决LLM中的道德关切和偏见是另一个活跃的研究领域。正在努力确保LLM公平、无偏见,并能够负责任地处理敏感信息。随着越来越多的人每天使用LLM,确保它们无偏见且行为负责任至关重要。
VIII. 结论
本文对过去几年开发的LLM进行了调查。我们首先概述了早期预训练语言模型(如BERT),然后回顾了三个流行的LLM系列(GPT、LLaMA、PaLM)以及其他代表性的LLM。然后我们调查了构建、增强和使用LLM的方法和技术。我们审查了流行的LLM数据集和基准,并比较了一组知名模型在公共基准上的性能。最后,我们提出了未来的挑战和研究方向。
标签:Language,训练,Models,模型,Large,LLMs,LLM,GPT,语言 From: https://blog.csdn.net/wjjc1017/article/details/137548212