赞
踩
论文链接:https://arxiv.org/abs/2402.06196
自2022年11月ChatGPT发布以来,大型语言模型(LLMs)因在各种自然语言任务上表现出色而受到广泛关注。LLMs通过在大量文本数据上训练数十亿个模型参数获得了通用语言理解和生成能力,这符合缩放定律的预测。LLMs的研究领域虽然非常新颖,但在许多不同方面迅速发展。本文回顾了一些最著名的LLMs,包括三个流行的LLM系列(GPT、LLaMA、PaLM),并讨论它们的特点、贡献和局限性。我们还概述了用于构建和增强LLMs的技术。然后,我们调查了为LLM训练、微调和评估准备的流行数据集,审查了广泛使用的LLM评估指标,并比较了几种流行LLM在一组代表性基准测试上的性能。最后,我们通过讨论未来研究方向和面临的挑战来总结本文。
语言建模是一个由来已久的研究课题,可以追溯到上世纪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评估结果。最后,第七节通过总结挑战和未来研究方向来结束本文。
在本节中,我们从早期预训练神经语言模型开始回顾,因为它们是LLMs的基础,然后将讨论三个LLM系列:GPT、LlaMA和PaLM。表I提供了一些这些模型及其特征的概述。
使用神经网络进行语言建模是由先驱者开创的。Bengio等人开发了最早的神经语言模型(NLMs),与n-gram模型相媲美。然后,成功将NLMs应用于机器翻译。Mikolov发布的RNNLM(一个开源NLM工具包)显著推广了NLMs。此后,基于循环神经网络(RNNs)及其变体(如长短期记忆(LSTM)和门控循环单元(GRU))的NLMs被广泛用于许多自然语言应用,包括机器翻译、文本生成和文本分类。
然后,变压器架构的发明标志着NLMs发展的又一个里程碑。通过应用自注意力来为句子或文档中的每个单词并行计算“注意力分数”,以建模每个单词对其他单词的影响,变压器比RNNs更具并行性,这使得在GPU上有效地对大量数据进行预训练非常可能。这些预训练语言模型(PLMs)可以为许多下游任务进行微调。
图2:论文结构。
我们根据它们的神经架构,将早期流行的基于变压器的PLMs分为三大类别:仅编码器、仅解码器和编码器-解码器模型。有关早期PLMs的综合调查可参考。
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]。
GPT-1 [50] 首次证明了通过对一个多样化的未标记文本语料库进行解码器模型的生成预训练(即下一个单词/标记预测)并在每个具体的下游任务上进行区分性微调(使用更少的样本)可以获得广泛自然语言任务的良好性能。如图7所示。GPT-1为随后的GPT模型铺平了道路,每个版本都改进了架构并在各种语言任务上取得了更好的性能。
图 7: GPT 预训练和微调步骤的高级概述。由 OpenAI 提供。
GPT-2 [51] 表明语言模型能够在训练时使用包含数百万网页的大型WebText数据集学习执行特定的自然语言任务而无需任何明确监督。GPT-2模型遵循GPT-1的模型设计,但进行了一些修改:层归一化移至每个子块的输入,最终自注意力块后添加额外的层归一化,初始化修改以考虑残差路径上的累积和缩放残差层的权重,词汇量扩展到50,25,上下文大小从512扩展到1024个标记。
T5 [52] 是一个文本到文本转换Transformer(T5)模型,通过引入一个统一框架,将所有NLP任务都作为文本到文本生成任务来有效利用迁移学习。mT5 [53] 是T5的多语言变体,它在一个包含101种语言文本的新Common Crawl数据集上进行了预训练。
MASS(掩码序列到序列预训练)[54] 采用编码器-解码器框架,以重构给定剩余部分的句子片段。编码器以随机屏蔽片段(几个连续标记)的句子作为输入,解码器预测屏蔽的片段。通过这种方式,MASS同时训练编码器和解码器进行语言嵌入和生成。
BART [55] 使用标准的序列到序列翻译模型架构。它通过用任意噪声函数破坏文本进行预训练,然后学习重构原始文本。
大型语言模型(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模型[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 基准测试中与人类表现相当。
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% 并创造了新的最先进水平。
除了前几小节讨论的模型外,还有其他流行的 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极限的相关工作。
在本节中,我们首先回顾了用于LLM的流行架构,然后讨论了数据和建模技术,从数据准备、标记化,到预训练、指令调整和对齐。
一旦选择了模型架构,训练LLM涉及的主要步骤包括:数据准备(收集、清理、去重等)、标记化、模型预训练(以自监督学习方式)、指令调整和对齐。我们将在下面的各个小节中解释每一个步骤。这些步骤也在图25中有所说明。
最广泛使用的LLM架构是仅编码器、仅解码器和编码器-解码器。它们大多基于Transformer(作为构建块)。因此,我们在这里也回顾了Transformer架构。
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),以及一些小型语言模型。 &显示的实体不仅作为模型,还作为方法。 仅显示方法。
仅解码器模型:对于这些模型,在每个阶段,对于任何单词,注意力层只能访问该单词之前位置的单词。这些模型有时也被称为自回归模型。这些模型的预训练通常被制定为预测序列中的下一个单词(或标记)。仅解码器模型最适用于涉及文本生成的任务。GPT 模型是这一模型类别的杰出示例。
编码器-解码器模型:这些模型同时使用编码器和解码器,有时被称为序列到序列模型。在每个阶段,编码器的注意力层可以访问初始句子中的所有单词,而解码器的注意力层只能访问输入中给定单词之前位置的单词。这些模型通常使用编码器或解码器模型的目标进行预训练,但通常涉及更复杂的内容。例如,一些模型通过用单个掩码特殊词替换文本的随机跨度(可能包含多个单词),然后目标是预测此掩码词替换的文本来进行预训练。编码器-解码器模型最适用于根据给定输入生成新句子的任务,例如摘要、翻译或生成式问答。
数据质量对于在其上训练的语言模型的性能至关重要。诸如过滤、去重等数据清洗技术已被证明对模型性能有重大影响。
以 Falcon40B [124] 为例,Penedo 等人表明,经过适当过滤和去重的网络数据本身就可以产生强大的模型;甚至在性能上明显优于在 The Pile 上训练的最新模型。尽管经过了大量过滤,他们仍能从 CommonCrawl 中获得五万亿个标记。他们还发布了从我们的 REFINEDWEB 数据集中提取的 6000 亿个标记的数据集,并在其上训练了 1.3/7.5B 参数的语言模型。图 27 展示了该工作对 CommonCrawl 数据进行的精炼过程。
去除噪声:指消除可能影响模型泛化能力的不相关或嘈杂数据。例如,可以考虑从训练数据中删除虚假信息,以降低模型生成错误响应的可能性。质量过滤的两种主流方法包括:基于分类器和基于启发式的框架。
图 25:这幅图展示了语言模型的不同组成部分。
图 26:变压器工作的高级概述。由 [44] 提供。
图 27:Macrodata Refinement 的后续阶段几乎删除了 CommonCrawl 中最初的文档的 90%。由 [124] 提供。
处理异常值:识别和处理数据中的异常值或异常情况,以防止它们对模型产生不成比例的影响。
解决不平衡:平衡数据集中类别或类别的分布,以避免偏见并确保公平代表性。这对于负责任的模型训练和评估特别有用。
文本预处理:通过删除停用词、标点符号或其他对模型学习贡献不大的元素来清理和标准化文本数据。
处理歧义:解决或排除可能在训练过程中使模型困惑的模糊或矛盾数据。这有助于模型提供更明确和可靠的答案。
在处理大型数据集时,去重过程尤为重要,因为重复数据可能无意中夸大某些模式或特征的重要性。这在自然语言处理任务中尤为重要,因为多样且具代表性的训练数据对于构建健壮的语言模型至关重要。
具体的去重方法可能根据数据的性质和正在训练的特定语言模型的要求而变化。它可能涉及比较整个数据点或特定特征以识别和消除重复项。在文档级别上,现有的研究主要依赖于文档之间高级特征(例如 n-gram 重叠)的重叠比率来检测重复样本。
分词是将文本序列转换为更小部分(称为标记)的过程。虽然最简单的分词工具只是根据空格将文本切分为标记,但大多数分词工具依赖于词典。然而,在这种情况下,词汇表外(OOV)是一个问题,因为分词器只认识其词典中的词。为增加词典的覆盖范围,用于大型语言模型的流行分词器基于子词,这些子词可以组合成大量单词,包括训练数据中未见的单词或其他语言中的单词。接下来,我们描述三种流行的分词器。
预训练是大型语言模型训练流程中的第一步,它帮助语言模型获得基本的语言理解能力,这对各种与语言相关的任务都很有用。在预训练期间,语言模型通常会以自监督的方式在大量(通常是)无标签的文本上进行训练。用于预训练的不同方法包括下一个句子预测 [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
)
由于这种框架的自回归性质,仅有解码器的模型更适合学习如何完成这些任务。
在掩码语言建模中,序列中的一些单词被掩盖,模型被训练以基于周围上下文预测被掩盖的单词。有时人们也将这种方法称为去噪自编码。如果我们用 x ~ \tilde{x} x~ 表示序列 x x x 中的掩盖/损坏样本,则该方法的训练目标可以写成:
L
M
L
M
(
x
)
=
∑
i
=
1
N
p
(
x
~
∣
x
\
x
~
)
最近,混合专家模型(MoE)[130],[131] 在语言模型领域也变得非常流行。MoE使模型能够在更少的计算资源下进行预训练,这意味着可以在相同的计算预算下大幅扩展模型或数据集的规模,就像密集模型一样。MoE由两个主要元素组成:稀疏 MoE 层,用于替代密集前馈网络(FFN)层,并且有一定数量的“专家”(例如 8 个),其中每个专家是一个神经网络。在实践中,专家是 FFN,但它们也可以是更复杂的网络。一个门控网络或路由器,用于确定哪些标记被发送到哪个专家。值得注意的是,一个标记可以被发送到多个专家。在使用 MoE 时如何将标记路由到专家是一个重要决策之一 - 路由器由学习参数组成,并且与网络的其余部分同时进行预训练。图 29 展示了一个 Switch Transformer 编码器块的示意图,这些块用于 MoE。
早期的语言模型(如 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] 是王等人提出的另一种沿着这条路线的流行方法,他们介绍了一个改进预训练语言模型的指令遵循能力的框架,通过从语言模型生成自己的生成物。他们的流程从语言模型生成指令、输入和输出样本,然后过滤无效或相似的样本,最后使用它们来微调原始模型。
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]提供。
解码是指使用预训练的LLM生成文本的过程。给定输入提示,分词器将输入文本中的每个标记转换为相应的标记ID。然后,语言模型使用这些标记ID作为输入,并预测下一个最有可能的标记(或一系列标记)。最后,模型生成logits,通过softmax函数将其转换为概率。已经提出了不同的解码策略。其中一些最流行的策略包括贪婪搜索、束搜索,以及不同的采样技术,如top-K、top-P(核采样)。
假设我们有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
低温度设置显著改变概率分布(通常用于控制生成输出中的“创造性”水平),而较高温度则优先考虑具有较高概率的标记。Top-k是一种创造性的采样方式,可以与束搜索一起使用。通过top-k采样选择的序列可能不是束搜索中概率最高的序列。但重要的是要记住,最高分数并不总是导致更现实或更有意义的序列。
在这部分中,我们将回顾一些用于更具成本效益(和计算效率)训练和使用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]。
图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模块,因此在下游任务中它们既出于简单性又出于参数效率的考虑而不被训练。
图35:带有学生和老师的通用知识蒸馏框架(由[144]提供)。
知识可以通过不同形式的学习进行传递:响应蒸馏、特征蒸馏和API蒸馏。响应蒸馏仅涉及老师模型的输出,并尝试教导学生模型如何像老师一样进行(在预测意义上)准确或至少类似地执行。特征蒸馏不仅使用最后一层,还使用中间层,为学生模型创建更好的内部表示。这有助于较小的模型具有与老师模型类似的表示。
API蒸馏是使用API(通常来自LLM提供者,如OpenAI)来训练较小的模型的过程。在LLM的情况下,它用于从较大模型的直接输出训练模型,使其与响应蒸馏非常相似。这种类型的蒸馏引发了许多关注,因为在模型本身不公开可用的情况下,为最终用户提供了一个(通常是付费的)API。另一方面,虽然用户每次调用都要付费,但如何使用预测是受限制的,例如,OpenAI禁止使用其API创建后来将用于与其竞争的LLM。在这种情况下的主要价值在于训练数据。
一旦LLM被训练,我们可以使用它们为各种任务生成所需的输出。LLM可以通过基本提示直接使用。然而,为了充分利用它们的潜力或解决一些缺点,我们需要通过一些外部手段来增强模型。在本节中,我们首先简要概述LLM的主要缺点,深入探讨幻觉问题。然后,我们描述提示和一些增强方法如何不仅可以解决这些限制,还可以用于增强LLM的能力,甚至将LLM转变为一个具有与外部世界交互能力的全面AI代理。
重要的是要记住,LLM被训练用于预测一个标记。尽管微调和对齐提高了它们的性能并为它们的能力增加了不同的维度,但仍然存在一些重要的限制,特别是如果它们被天真地使用。其中一些包括以下内容:
尽管以前的限制对于某些应用可能都很重要,但我们值得深入研究最后一个限制,即幻觉,因为它在过去几个月引起了很多关注,并且也激发了我们稍后将描述的许多提示方法和LLM增强方法。
幻觉:在大型语言模型(LLM)领域,"幻觉"现象引起了很大关注。在文献中定义,特别是在“自然语言生成中幻觉调查”论文[145]中,LLM中的幻觉被描述为“生成内容是荒谬的或与提供的源不忠实”。尽管这个术语根植于心理学术语,但已被人工智能领域所使用。
LLM中的幻觉可以广泛分类为两种类型:
LLM上下文中“源”的定义随任务而异。在基于对话的任务中,它指的是“世界知识”,而在文本摘要中,它涉及输入文本本身。这种区别在评估和解释幻觉中起着至关重要的作用。幻觉的影响也高度依赖于上下文。例如,在像写诗这样的创造性工作中,幻觉可能被认为是可以接受甚至有益的。
LLM在包括互联网、书籍和维基百科在内的多样数据集上进行训练,基于概率模型生成文本,而没有对真实性或虚假性的固有理解。最近的进展,如指导微调和来自人类反馈的强化学习(RLHF),试图引导LLM产生更真实的输出,但基本的概率性质及其固有限制仍然存在。最近的一项研究,“大型语言模型在推理任务中产生幻觉的来源”[146],强调了导致LLM产生幻觉的两个关键因素:真实性先验和相对频率启发式,突显了LLM训练和输出生成中的复杂性。
在LLM中有效地自动测量幻觉需要结合统计和基于模型的度量。
尽管自动度量方面取得了进展,但人类判断仍然是至关重要的。通常涉及两种方法:
图36:LLM如何被使用和增强。
FactScore [155]是一个最近的度量的例子,可用于人类和基于模型的评估。该度量将LLM生成分解为“原子事实”。最终得分计算为每个原子事实的准确性之和,每个原子事实都被赋予相同的权重。准确性是一个二进制数字,简单地说明原子事实是否由源支持。作者实施了不同的自动化策略,使用LLM来估计这个度量。
最后,在LLM中减少幻觉是一个多方面的挑战,需要量身定制的策略来适应各种应用。这些策略包括:
在生成式人工智能模型中,提示是用户提供的文本输入,用于引导模型的输出。这可以是从简单问题到详细描述或具体任务的范围。提示通常包括指令、问题、输入数据和示例。在实践中,为了从人工智能模型中引出期望的响应,提示必须包含指令或问题,其他元素则是可选的。高级提示涉及更复杂的结构,例如“思维链”提示,其中模型被引导遵循逻辑推理过程以得出答案。
提示工程是一个快速发展的学科,塑造了LLMs和其他生成式人工智能模型的交互和输出。提示工程的核心在于设计最佳提示以实现特定目标与生成模型。这个过程不仅仅是关于指导模型,还涉及对模型的能力和限制以及其运行环境的一些理解。
提示工程超越了简单的提示构建;它需要结合领域知识、对人工智能模型的理解以及一种系统的方法来为不同环境量身定制提示。这可能涉及创建可以根据给定数据集或环境进行程序化修改的模板。例如,基于用户数据生成个性化响应可能会使用一个动态填充相关用户信息的模板。
此外,提示工程是一个迭代和探索性过程,类似于传统的机器学习实践,如模型评估或超参数调整。这一领域的快速增长表明了它有可能革新机器学习的某些方面,超越传统方法,如特征或架构工程。另一方面,传统的工程实践,如版本控制和回归测试,需要适应这种新范式,就像它们适应其他机器学习方法一样。
在接下来的段落中,我们详细介绍一些最有趣和流行的提示工程方法。
C o T \mathrm{CoT} CoT 基于将LLMs的隐式推理过程变得显式。通过概述推理所需的步骤,模型被引导更接近逻辑和推理的输出,特别是在需要不仅仅是简单信息检索或模式识别的场景中。
CoT提示体现在两种主要形式中:
手动CoT比零-shot更有效。然而,这种基于示例的CoT的有效性取决于选择多样化的示例,并且手动构建具有逐步推理示例的提示是困难且容易出错的。这就是自动CoT [157] 发挥作用的地方。
ToT的一个关键方面是对这些推理路径的评估。随着LLM生成不同的思维分支,每个分支都会被评估其对查询的有效性和相关性。这个过程涉及对分支的实时分析和比较,导致选择最连贯和逻辑的结果。
ToT在复杂问题解决场景中特别有用,单一推理线路可能不足以解决问题。它允许LLMs模仿更类似于人类的问题解决方法,考虑多种可能性后再得出结论。这种技术增强了模型处理模糊性、复杂性和微妙任务的能力,使其成为高级人工智能应用中的有价值工具。
自一致性方法基于这样一个原则,即如果LLM对相同提示生成多个相似的响应,那么这些响应更有可能是准确的。这种方法涉及要求LLM多次处理一个查询,每次分析响应的一致性。这种技术在需要事实准确性和精度至关重要的场景中特别有用。
响应的一致性可以用各种方法来衡量。一个常见的方法是分析响应内容的重叠。其他方法可能包括比较响应的语义相似性或使用更复杂的技术,如BERT分数或n-gram重叠。这些措施有助于量化LLM生成的响应之间的一致性水平。
自一致性在信息准确性至关重要的领域有重要应用。它特别适用于事实核查等场景,其中确保由人工智能模型提供的信息准确性至关重要。通过采用这种技术,提示工程师可以增强LLMs的可信度,使其在需要高水平事实准确性的任务中更可靠。
反思的一个关键方面是LLM进行自我编辑的能力。通过评估其初始响应,模型可以确定潜在的错误或改进领域。这种生成、反思和修订的迭代过程使LLM能够完善其输出,提高其响应的整体质量和可靠性。
约束可以根据应用的具体需求设计为各种目的:
APE的方法可以分解为以下几个关键步骤:
预训练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]。
如上所述,从外部知识源检索信息只是增强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如何处理和执行当前任务。当任务需要内部推理和外部数据处理或检索的结合时,这种方法特别有效。
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代理的协作和互动性质使它们能够处理具有深度和细微差别的复杂查询,而单一代理系统可能会遇到困难。此外,这种方法与人类决策过程相吻合,使得人工智能推理更具可靠性和可信度。
大型语言模型展现出令人期待的成就,但主要问题是它们如何有效地运作以及如何评估它们在特定任务或应用中的表现。
对LLM的评估面临着特殊挑战,这是由于它们应用领域的不断发展。开发LLM的最初目的是提升自然语言处理任务的性能,比如翻译、摘要、问答等[178]。然而,如今明显可见,这些模型正在在包括代码生成和金融在内的各种领域发挥作用。此外,LLM的评估涵盖了几个关键考虑因素,如公平性和偏见、事实核查和推理。在本节中,我们概述了用于评估LLM的常用基准。这些基准根据训练或评估LLM能力进行分类。
本节概述了适用于评估LLM基本能力的基准和数据集。
图39:HuggingGPT:一种使用工具和规划的基于代理的方法[图像由[171]提供]
图40:用于对话信息检索的基于LLM的代理。由[36]提供。
(如果页面上存在一个或多个实体),或者如果没有长/短答案则标记为空。
图41:数据集应用。
图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 千个样本的测试集。
本节重点介绍用于评估LLM新兴能力的基准和数据集。
这一部分关注设计用于增强大型语言模型(LLMs)能力的数据集。
在本节中,我们首先概述了用于评估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(
精确匹配(EM)是另一个主要关注(预定义)答案的精确匹配的指标。如果预测与一个或多个期望的参考文本完全匹配,它将计为正确。在某些情况下,它可以与准确率相同,方程5显示了数学定义。这里M是正确答案的总数,N是问题的总数[202]。
E
M
=
M
N
人类等效分数(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 所示。从这张表中可以看出,被归类为非常大的模型也是不可用的。
常识推理是每个模型可以获得的重要能力之一。这种能力表示模型利用先前知识结合推理能力的能力。例如,在 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 显示了基于这些数据集的不同模型的评估。
正如我们在前面的部分中所看到的,大型语言模型在过去的 1-2 年中取得了令人印象深刻的成果。
表 X:幻觉评估
与此同时,这仍然是一个新颖且极其活跃的研究领域,创新的步伐正在加快而不是减缓。然而,与任何其他不断发展的领域一样,仍然面临着许多挑战。在这里,我们简要提及一些已知的挑战和主要活跃领域。值得注意的是,关于 LLM 挑战的详细讨论可以在 Kaddour 等人的作品中找到 [207]。
这是关于大型语言模型的一项调查,最初有一个“越大越好”的初步推动,显然已经得到了诸如 GPT4 等越来越大的模型在基准测试中获得更好准确性和性能的回报。然而,这些大型模型在多个维度(例如高延迟)上都是昂贵且低效的。作为对所有这些的回应,当前的研究趋势是提出小型语言模型(SLMs)作为对LLMs的一种经济有效的替代方案,特别是在用于可能不需要较大模型完整通用性的特定任务时。在这个方向上的重要工作包括 Microsoft 的 Phi-1 [208]、Phi-1.5 [209] 和 Phi-2。
更一般地说,我们应该期待在这个领域有许多研究工作,探讨如何训练更小更高效的模型。诸如参数高效微调(PEFT)、师生学习和其他形式的蒸馏 - 见第 III-I 节 - 将继续被用于从较大模型构建较小模型。
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驱动的改进。
正如我们在第四部分中所描述的,LLM的许多缺点和限制,如幻觉,可以通过先进的提示工程、工具的使用或其他增强技术来解决。我们应该期待在这个领域不仅会有持续的研究,而且会加速进行。值得一提的是,在软件工程的具体案例中,一些研究 ( [ 218 ] ) ([218]) ([218]) 尝试自动消除整体软件工程工作流程中的这一问题。
基于LLM的系统已经开始取代直到最近使用其他方法的机器学习系统。作为一个明显的例子,LLM现在被部署用于更好地理解人们的偏好和兴趣,并提供更个性化的互动,无论是在客户服务、内容推荐还是其他应用中。这涉及更好地理解用户的偏好,分析他们过去的互动并将其用作上下文。我们将继续看到关于LLM的应用和使用的研究,不仅仅是个性化和推荐,还有许多其他应用领域使用其他机器学习技术。
最后,我们预计LLM代理和多代理系统 [172], [173], [174] 这一重要研究领域将受到更多关注。开发具有外部工具和决策能力的LLM系统既令人兴奋又具有挑战性。我们将看到在这一重要领域的持续研究和进展,一些人认为这可能导致人工通用智能(AGI)。
确保LLM对抗对抗性攻击和其他漏洞的健壮性和安全性是一个重要的研究领域 [219]。随着LLM越来越多地部署在现实应用中,需要保护它们免受潜在威胁,以防止它们被用来操纵人们或传播错误信息。
解决LLM中的道德关切和偏见是另一个活跃的研究领域。正在努力确保LLM公平、无偏见,并能够负责任地处理敏感信息。随着越来越多的人每天使用LLM,确保它们无偏见且行为负责任至关重要。
本文对过去几年开发的LLM进行了调查。我们首先概述了早期预训练语言模型(如BERT),然后回顾了三个流行的LLM系列(GPT、LLaMA、PaLM)以及其他代表性的LLM。然后我们调查了构建、增强和使用LLM的方法和技术。我们审查了流行的LLM数据集和基准,并比较了一组知名模型在公共基准上的性能。最后,我们提出了未来的挑战和研究方向。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。