2.5_基于Decoder-only架构的大语言模型

2.5 基于 Decoder-only 架构的大语言模型

在开放式(Open-Ended)生成任务中,通常输入序列较为简单,甚至没有具体明确的输入,因此维持一个完整的编码器来处理这些输入并不是必要的。对于这种任务,Encoder-Decoder 架构可能显得过于复杂且缺乏灵活性。在这种背景下,Decoder-only 架构表现得更为优异。本节将对 Decoder-only 架构及其代表性模型进行介绍。

2.5.1 Decoder-only 架构

它通过自回归方法逐字生成文本,不仅保持了长文本的连贯性和内在一致性,而且在缺乏明确输入或者复杂输入的情况下,能够更自然、流畅地生成文本。此外,Decoder-only架构由于去除了编码器部分,使得模型更加轻量化,从而加快了训练和推理的速度。因此,在同样的模型规模下,Decoder-only架构可能表现得更为出色。

值得一提的是,Decoder-only 架构模型的概念最早可以追溯到 2018 年发布的 GPT-1[27] 模型。但在当时,由于以 BERT 为代表的 Encoder-only 架构模型在各项任务中展现出的卓越性能,Decoder-only 架构并没有受到足够的关注。直到 2020 年,GPT-3[5] 的突破性成功,使得 Decoder-only 架构开始被广泛应用于各种大语言模型中,其中最为流行的有 OpenAI 提出的 GPT 系列、Meta 提出的 LLaMA 系列等。其中,GPT 系列是起步最早的 Decoder-only 架构,在性能上也成为了时代的标杆。但从第三代开始,GPT 系列逐渐走向了闭源。而 LLaMA 系列虽然起步较晚,但凭借着同样出色的性能以及始终坚持的开源道路,也在 Decoder-only 架构领域占据了一席之地。接下来将对这两种系列的模型进行介绍。

2.5.2 GPT系列语言模型

GPT(Generative Pre-trained Transformer)系列模型是由OpenAI开发的一系列基于Decoder-only架构的大语言模型。自从2018年问世以来,GPT系列模型经历了快速的发展,其在模型规模、预训练范式上不断演进,取得了万众瞩目的效果,引领了本轮大语言模型发展的浪潮。其演进历程可以划分为五个阶段,表2.3对这五个阶段的模型参数规模和预料规模进行了总结。从表中可以明显看出,GPT系列模型参数规模与预训练语料规模呈现出激增的趋势。然而,自ChatGPT版本起,

GPT系列模型转向了闭源模式,其具体的参数量和预训练数据集的详细信息已不再公开。尽管如此,根据扩展法则,有理由猜测ChatGPT及其后续版本在参数规模与预训练语料规模上都有所增长。下面将对这五个发展阶段的模型分别进行介绍。

表 2.3: GPT 系列模型参数和语料大小表。

1. 初出茅庐:GPT-1模型

OpenAI的前首席科学家IlyaSutskever在采访中18透露,OpenAI自成立初期就开始探索如何通过下一句预测解决无监督学习的问题。但当时所用的RNN模型无法很好解决长距离依赖问题,上述问题没有得到很好的解决。直到2017年,Transformer的出现为这一问题提供了新的解决方案了,为OpenAI的发展指明了方向。随后,OpenAI开始步入正轨。2018年6月,OpenAI发布了第一个版本的GPT(GenerativePre-Training)模型,被称为GPT-1[27]。GPT-1开创了Decoder-only架构下,通过下一句预测解决无监督文本生成的先河,为自然语言处理领域带来了革命性的影响。下面将分别对GPT-1的模型结构、预训练、下游任务等方面展开介绍。

(1) GPT-1 模型结构

在模型架构方面,GPT-1 使用了Transformer架构中的Decoder部分,省略了Encoder部分以及交叉注意力模块。其模型由12个解码块堆叠而成,每个解码块

包含一个带掩码的自注意力模块和一个全连接前馈模块。其中隐藏层维度为 768,自注意力头的数量为 12,模型的最终参数数量约为 1.17 亿。

图2.13对比了BERT-Base以及GPT-1的模型结构。从图中可以看出,GPT-1在结构上与BERT-Base高度类似,两者都包含12个编码或解码模块,每个模块也同样由一个自注意力模块和一个全连接前馈模块组成。两者之间的本质区别在于BERT-Base中的自注意力模块是双向的自注意力机制,而GPT-1中的自注意力模块则是带有掩码的单向自注意力机制。


图2.13:BERT-Base和GPT-1模型。

(2) GPT-1 预训练方法

GPT-1 使用小说数据集 BookCorpus[46] 来进行预训练,该数据集包含约 8 亿个 Token,总数据量接近 5GB。在预训练方法上,GPT-1 采用下一词预测任务,即基于给定的上文预测下一个可能出现的 Token。以自回归的方法不断完成下一词预测任务,模型可以有效地完成文本生成任务,如图2.14所示。通过这种预训练策略,模型可以在不需要人为构造大量带标签数据的前提下,学习到大量语言的“常识”,学会生成连贯且上下文相关的文本。这不仅提高了模型的泛化能力,而且减少了对标注数据的依赖,为自然语言处理领域带来了新的研究方向和应用前景。


图2.14:GPT-1语言建模预训练任务。

(3) GPT-1下游任务

尽管GPT-1模型在预训练后展现出了一定的潜力,但其任务泛化能力仍受限于当时的训练数据量和模型参数数量。为了提升模型在特定下游任务上的表现,通常需要进一步的有监督微调。微调过程涉及使用针对特定任务的标注数据来优化模型的参数,其中模型的输入和输出均以文本序列的形式呈现。例如,在以下任务中,我们需要构建针对特定应用场景的微调策略:

  • 文本分类:GPT-1 能够接收一段文本作为输入,并根据预定义的类别标签,如情感倾向(积极、消极或其他),对文本进行分类。这在情感分析、主题分类等场景中非常有用。

  • 文本相似度评估:当需要衡量两段文本之间的相似性时,GPT-1 能够分析并量化它们的内容和语义相似度。这项功能在比较文档、搜索结果优化和推荐系统中尤为重要。

  • 多项选择题解答:GPT-1 还可以处理多项选择问题。模型能够理解问题文本和选项内容,从给定的选项中识别并输出最合适的答案。

GPT-1具备原生的文本生成能力。但受限于训练数据量和模型参数数量,其生成能力还不足以用于解决实际问题。此外,由于其单向注意力机制的限制,其全面

理解上下文的能力也有所欠缺。四个月后,具有双向上下文理解能力的BERT被提出,并以其强大的上下文嵌入能力迅速吸引了业界的广泛关注,遮盖了GPT-1的锋芒。尽管GPT-1当时在实用性上可能不及BERT,但它作为Decoder-only架构的开端,为后续大语言模型的惊艳表现拉开了序幕。

2. 小有所成:GPT-2模型

虽然GPT-1锋芒未露,OpenAI并没有改变其Decoder-only的技术路线,而是选择在这一路线上继续深耕。在2019年2月,OpenAI发布了GPT系列的第二代产品GPT-2 19^{19} 。相较于GPT-1,GPT-2在模型规模和预训练样本的质量上都进行了显著的提升,显著增强了模型的任务泛化能力。以下将对GPT-2的模型结构、预训练语料和下游任务适配情况进行介绍。

(1) GPT-2 模型结构

GPT-2模型延续了GPT-1的Decoder-only架构,并在此基础上进一步加大了参数数量。GPT-2一共发布了四个版本,分别是GPT-2Small、GPT-2Medium、GPT-2Large以及GPT-2XL。其中GPT-2Small在模型规模上接近GPT-1以及BERT-Base,由12个编码块堆叠而成,隐藏层维度为768,自注意力头的数量为12,总参数数量约为1.24亿;GPT-2Medium在模型规模上接近BERT-Large,由24个解码块堆叠而成,隐藏层维度为1024,自注意力头的数量为16,总参数数量约为3.55亿;GPT-2Large由36个解码块堆叠而成,隐藏层维度为1280,自注意力头的数量为20,总参数数量约为7.74亿;GPT-2XL是最大规模版本,由48个解码块堆叠而成,其中隐藏层维度为1600,自注意力头的数量为25,总参数数量约为15亿。

(2) GPT-2 预训练方法

在预训练中,GPT-2继续采用下一词预测任务,但进一步提升了预训练数据的数量和质量。其采用了全新的WebText数据集,该数据集由40GB经过精心筛选和

清洗的网络文本组成。通过使用WebText数据集进行预训练,GPT-2的语言理解能力得到了显著增强,接触到了更多样化的语言使用场景,还学习到了更复杂的语言表达方式。这使得GPT-2在捕捉语言细微差别和构建语言模型方面更为精准,从而在执行各种自然语言处理任务时能够生成更准确、更连贯的文本。

(3) GPT-2下游任务

GPT-2的任务泛化能力得到了改善,在某些任务上可以不进行微调,直接进行零样本学习。这种能力大大增加了GPT-2在处理下游任务时的灵活性,降低了下游任务适配所需的成本。这为Decoder-only架构博得了更多关注。

3. 崭露头角:GPT-3模型

为了进一步提升任务泛化能力,OpenAI于2020年6月推出了第三代模型GPT-3[5]。与前两代模型相比,GPT-3在模型规模和预训练语料上进一步提升,并涌现出了优良的上下文学习(In-Context Learning, ICL)能力。在上下文学习能力的加持下,GPT-3可以在不进行微调的情况下,仅通过任务描述或少量示例即可完成多样化的下游任务。关于上下文学习详细介绍参见本书3.2章节。以下将对GPT-3的模型结构、预训练语料和下游任务适配情况进行介绍。

(1)GPT-3模型架构

在模型架构上,GPT-3 继承并扩展了前两代的架构,显著增加了解码块的数量、隐藏层的维度和自注意力头的数量,参数量最高达到 1750 亿。庞大的参数量使得 GPT-3 能够捕获更加细微和复杂的语言模式,显著提升了模型的文本生成能力。GPT-3 设计了多个不同参数规模的版本,以满足不同应用场景的需求,详细参数细节见表2.4。

(2) GPT-3 预训练方法

延续了前两代的预训练方法,GPT-3 继续采用下一词预测作为预训练任务。其使用了更大规模和更多样化的互联网文本数据集,数据量接近 1TB,涵盖了 Com-

表 2.4: GPT-1 至 GPT-3 模型具体参数表。

monCrawl20、WebText、BookCorpus[46]、Wikipedia21等多个来源,包括书籍、网站、论坛帖子等各类文本形式。所有数据都经过了严格的筛选和清洗流程,以确保数据的质量和多样性。基于这些数据,GPT-3学习到了更加丰富和多元的语言知识和世界知识。

(3) GPT-3 下游任务

GPT-3模型涌现出了良好的上下文学习能力,使其可以在无需微调的情况下,仅通过在输入文本中明确任务描述和提供少量示例,便能够执行多种下游任务。上下文学习能力极大地增强了GPT-3的任务泛化能力,使其能够快速适应不同的应用场景。GPT-3开始在文本生成、问答系统、语言翻译等众多自然语言处理任务中崭露头角。

4.蓄势待发:InstructGPT等模型

在GPT-3的基础上,OpenAI进一步推出了一系列衍生模型。这些模型在GPT-3网络结构之上通过特定的训练方法,各个“身怀绝技”。例如,采用十亿行代码继续

预训练(Continual Pre-Training)的Codex[6]模型,可以有效地处理代码生成任务;采用用户偏好对齐(User Intent Alignment)的InstructGPT[25]模型,具备良好的指令跟随能力。其中,最具启发意义的是InstructGPT,其也是ChatGPT的前身。它通过引入了人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF),显著提升了模型对用户指令的响应能力。

人类反馈强化学习旨在缓解模型在遵循用户指令时可能出现的不准确性和不可靠性,以使模型生成的内容更符合人类的要求。在人类反馈强化学习中,人类评估者首先提供关于模型输出质量的反馈,然后使用这些反馈来微调模型。具体过程如图2.15所示,整体可以分为以下三个步骤:1)有监督微调:收集大量“问题-人类回答”对作为训练样本,对大语言模型进行微调。2)训练奖励模型:针对每个输入,让模型生成多个候选输出,并由人工对其进行质量评估和排名,构成偏好数据集。用此偏好数据集训练一个奖励模型,使其可以对输出是否符合人类偏好进行打分。3)强化学习微调:基于上一步中得到的奖励模型,使用强化学习方法优化第一步中的语言模型,即在语言模型生成输出后,奖励模型对其进行评分,强化学习算法根据这些评分调整模型参数,以提升高质量输出的概率。

经过 RLHF 训练得到的 InstructGPT 的性能通常优于 GPT-3,尤其是在需要精确遵循用户指令的场景中。它生成的回答更加贴合用户的查询意图,有效减少了不相关或误导性内容的生成。InstructGPT 的研究为构建更智能、更可靠的 AI 系统提供了新的思路,展示了人类智慧和机器学习算法结合的巨大潜力。但是,RLHF 的计算成本十分高昂,主要是由于:1)奖励模型的训练过程复杂且耗时。2)除了需要单独训练语言模型和奖励模型外,还需要协调这两个模型进行多模型联合训练,这一过程同样复杂且消耗大量资源。

为了克服 RLHF 在计算效率上的缺陷,斯坦福大学在 2023 年在其基础上,提出了一种新的算法直接偏好优化(Direct Preference Optimization, DPO)[28]。DPO


图2.15: 人类反馈强化学习(RLHF)过程。

算法直接利用人类偏好数据来训练模型,省略了单独构建奖励模型以及应用强化学习算法的步骤。该方法首先收集包含多个响应的人类偏好数据,并从中标记出最优和次优响应。然后微调模型以提高模型选择最优响应的概率,同时降低选择次优响应的概率。这种方法显著简化了人类反馈对齐的流程,提高了训练效率和模型稳定性。尽管在处理复杂的人类偏好时可能略逊于 RLHF,但 DPO 在计算效率上的优势使其在多个领域得到了广泛应用。

5. 一鸣惊人:ChatGPT以及GPT-4等模型

OpenAI于2022年11月推出了聊天机器人(ChatGPTChat Generative Pre-trained Transformer) 22^{22} 。ChatGPT“一鸣惊人”,以强大的对话能力展示出令人惊讶的智能,一度燃起了ChatGPT是否可以通过“图灵测试”的讨论[3]。此外,用户可以通过OpenAI提供的网页端或API轻松使用预训练后的ChatGPT模型,而无需在本地部署,标志着一种新的服务模式LLMaaS(LLM as a Service)的出现。但

是,从ChatGPT起,GPT系列模型走向闭源,我们无从窥探ChatGPT及后续模型的技术细节。

四个月后,OpenAI于2023年3月继续发布了GPT-4 23^{23} 模型。相较于ChatGPT,GPT-4在理解复杂语境、捕捉语言细微差别、生成连贯文本等任务上进一步提升,并且能够更有效地处理数学问题、编程挑战等高级认知任务。此外,GPT-4还引入了对图文双模态的支持,扩展了其在图像描述和视觉问题解答等应用领域的可能性。

一年后,为了进一步提升模型性能以及用户体验,OpenAI于2024年5月提出了GPT-4o 24^{24} 。GPT-4o模型在前代GPT-4的基础上,大幅提升了响应速度,显著降低了延迟,并且还增强了多模态处理能力以及多语言支持能力。其在客户支持、内容创作和数据分析等领域表现亮眼。GPT-4o的推出标志着AIGC的应用日趋成熟。

GPT系列模型的演进过程是人工智能发展史中一个激动人心的篇章。从GPT-1的“初出茅庐”到GPT-4o的“一鸣惊人”,短短6年时间,GPT系列模型便带来了革命性的突破。诸多“科幻”变成现实,众多产业将被重塑。但是,随着GPT系列模型走向闭源,用户仅可以使用其功能,却无法参与到模型的共同创造和改进过程中。

2.5.3 LLAMA 系列语言模型

LLaMA(Large Language Model Meta AI)是由Meta AI开发的一系列大语言模型,其模型权重在非商业许可证下向学术界开放,推动了大语言模型的“共创”和知识共享。在模型架构上,LLaMA借鉴了GPT系列的设计理念,同时在技术细节上进行了创新和优化。LLaMA与GPT系列的主要区别在于:GPT系列的升级主

线聚焦于模型规模与预训练语料的同步提升,而LLaMA则在模型规模上保持相对稳定,更专注于提升预训练数据的规模。表2.5展示了不同版本LLaMA模型对应的发布时间、参数量以及语料规模。当前,Meta AI共推出三个版本的LLaMA模型。在这些模型的基础上,大量衍生模型陆续被推出。原始的LLaMA模型和其衍生模型一起构成了LLaMA生态系统。接下来将对LLaMA的三个版本及其部分衍生模型进行介绍。

表 2.5: LLaMA 系列模型参数和语料大小表。

1. LLaMA1 模型

LLaMA1[40]是Meta AI于2023年2月推出的首个大语言模型。其在Chinchilla[15]扩展法则的指引下,实践“小模型 ++ 大数据”的理念,旨在以大规模的优质数据训练相对较小的模型。相对较小的参数规模可以赋能更快的推理速度,使其可以更好的应对计算资源有限的场景。

在预训练语料方面,LLaMA1的预训练数据涵盖了大规模网页数据集CommonCrawl25、T5[29]提出的C4数据集,以及来自Github、Wikipedia、Gutenberg、Books3、Arxiv以及StackExchange等多种来源的数据,总数据量高达5TB。

在模型架构方面,LLaMA1采用了与GPT系列同样的网络架构。但是,其在Transformer原始词嵌入模块、注意力模块和全连接前馈模块上进行了优化。在词嵌入模块上,为了提高词嵌入质量,LLaMA1参考了GPTNeo[4]的做法,使用旋转位置编码(Rotary Positional Embeddings, RoPE)[36]替代了原有的绝对位置编码,从而增强位置编码的表达能力,增强了模型对序列顺序的理解。在注意力模


图2.16:LLaMA解码块架构与标准Transformer解码器架构对比。

块上,LLaMA1 参考了 PaLM[7] 的做法,将 Transformer 中的 RELU 激活函数改为 SwiGLU 激活函数 [34]。并且,LLaMA1 在进行自注意力操作之前对查询(query)以及键(key)添加旋转位置编码。在全连接前馈模块上,LLaMA1 借鉴了 GPT-3[5] 中的 Pre-Norm 层正则化策略,将正则化应用于自注意力和前馈网络的输入。在注意力模块和全连接前馈模块上的改进如图2.16所示。

基于该框架,LLaMA1共推出了4个版本的模型。不同版本对应的具体参数如表2.6所示。

表 2.6: LLaMA1 模型具体参数表。

2. LLaMA2模型

2023年7月,MetaAI发布了LLaMA系列的第二代模型LLaMA2[39]。秉承“小模型 + 大数据”的设计理念,LLaMA2在LLaMA1的基础上进一步优化和扩充了训练数据,将语料库的规模扩展至约7TB,实现了对更丰富语言和领域资源的覆盖。此外,在预训练阶段之后,LLaMA2采纳了人类反馈强化学习的方法,进一步提升了模型的性能。首先,其使用了大规模且公开的指令微调数据集[8]对模型进行有监督的微调。然后,LLaMA2还训练了RLHF奖励模型,并基于近似策略优化(Proximal Policy Optimization, PPO)[33]以及拒绝采样(Rejection Sampling)进行强化学习对模型进行更新。

在模型架构上,LLaMA2继承了LLaMA1的架构。LLaMA2共推出了四个版本的模型,不同版本对应的具体参数如表2.7所示。其中,LLaMA2-34B和LLaMA2-70B还额外增加了分组查询注意力(Grouped Query Attention, GQA)[1],以提升计算效率。在分组查询注意力机制下,键(key)以及值(value)不再与查询(query)一一对应,而是一组查询共享相同的键和值,从而有效降低内存占用并减少模型总参数量。

表 2.7: LLaMA2 模型具体参数表。

3. LLaMA3 模型

2024年4月,MetaAI于2024年4月进一步推出了第三代模型LLaMA3 26^{26} 。LLaMA3挑选了规模高达50TB的预训练语料,是LLaMA2的7倍之多。这一语料

库不仅包含丰富的代码数据以增强模型的逻辑推理能力,还涵盖了超过 5%5\% 的非英文数据,覆盖30多种语言,显著扩展了模型的跨语言处理能力。此外,LLaMA3还进行了与LLaMA2一样的人类反馈强化学习,这一策略已被证明能显著提升模型性能。最终LLaMA3的性能在多个评测指标上全面超越了前代模型。即便是参数量相对较少的80亿参数版本,也展现出了超越LLaMA2700亿参数版本的卓越性能。而700亿参数版本的LLaMA3,在多项任务上的性能更是超越了业界标杆GPT-4模型。

在模型架构上,LLaMA3与前一代LLaMA2几乎完全相同,只是在分词(tokenizer)阶段,将字典长度扩大了三倍,极大提升了推理效率。这一改进减少了中文字符等语言元素被拆分为多个Token的情况,有效降低了总体Token数量,从而提高了模型处理语言的连贯性和准确性。另一方面,扩大的字典有助于减少对具有完整意义的语义单元进行分割,使模型在处理文本时可以更准确的捕捉词义和上下文,提高生成文本的流畅性和连贯性。LLaMA3在其推出的80亿参数以及700亿参数版本上,均采用了分组查询注意力机制。这两个版本的模型参数与LLaMA2的对应版本保持高度一致,但在性能上实现了质的飞跃,充分证明了数据的力量。

4. LLaMA 衍生模型

LLaMA模型的开源共享吸引了众多研究者在其基础上继续创作。研究者们或继续改进LLaMA模型的性能,或将LLaMA模型适配到垂直领域,或将LLaMA模型支持的数据模态进行扩充。众智众创为LLaMA营造出了一个多样的、充满活力的研究生态。下面对三类主流的LLaMA衍生模型进行简要介绍。

  • 性能改进类模型:一些研究者专注于通过微调继续提升LLaMA模型性能。例如,Alpaca 27^{27} 基于GPT-3.5生成的指令遵循样例数据对LLaMA1进行微调,以较小的模型规模实现了与GPT-3.5相媲美的性能。Vicuna 28^{28} 模型则另辟蹊

径,利用 ShareGPT 平台上累积的日常对话数据微调 LLaMA1 模型,进一步提升了它的对话能力。Guanaco[10] 模型则通过在微调 LLaMA1 的过程中引入 QLoRA 技术,显著降低了微调的时间成本,提高了微调效率。

  • 垂域任务类模型:尽管LLaMA在通用任务上表现出色,但在特定领域的应用潜力仍待挖掘。因此,大量研究者们针对垂直领域对LLaMA进行微调,以改善其在垂直领域上的表现。例如,CodeLLaMA[30]模型在LLaMA2的基础上,利用大量公开代码数据进行微调,使其能更好地适应自动化代码生成、错误检测、以及代码优化等任务。LawGPT[24]模型通过30万条法律问答对LLaMA1模型进行指令微调,显著增强了其对法律内容的处理能力。GOAT[21]模型通过Python脚本生成的数学题库对LLaMA1模型进行微调,提高其解决各类数学题的准确率。Cornucopia 29^{29} 模型则利用金融问答数据进行微调,增强了金融问答的效果。

  • 多模态任务类模型:通过整合视觉模态编码器和跨模态对齐组件,研究者们将LLaMA模型扩展到多模态任务上。例如,LLaVA[19]在Vicuna的基础上利用CLIP提取图像特征并利用一个线性投影层实现图片和文本之间的对齐。MiniGPT4[45]在Vicuna的基础上使用VIT-G/14以及Q-Former作为图像编码器,并同样使用线性投影层来实现图片和文本之间的对齐,展现了多模态任务处理能力。

这些衍生模型不仅丰富了LLaMA模型的应用场景,也为自然语言处理领域的研究提供了新的方向和可能性。LLaMA系列以其开源开放的姿态,吸引全球研究者参与共创。我们有理由相信LLaMA系列模型携其衍生模型将绽放出满天繁星,照亮大语言模型前行之路。

表 2.8: GPT 系列和 LLaMA 系列模型参数和语料大小表。

基于Decoder-only架构的大语言模型,凭借其卓越的生成能力,引领了新一轮生成式人工智能的浪潮。表2.8展示了GPT系列和LLaMA系列不同版本的具体参数,从中可以发现基于Decoder-only架构的模型在参数数量和预训练语料规模上急速增长。随着算力资源和数据资源的进一步丰富,基于Decoder-only架构的大语言模型必将释放出更为璀璨的光芒。

2.5_基于Decoder-only架构的大语言模型 - 大模型基础 | OpenTech