原文:
https://zhuanlan.zhihu.com/p/715138042
大型语言模型(LLM)的发展已经取得了长足的进步,从早期的GPT模型到我们今天拥有的复杂的
公开
权重的LLM。最初,LLM的训练过程仅集中于预训练,但后来扩展到包括预训练和后训练。后训练通常包括监督指令微调和对齐,这些是由ChatGPT普及的。
自ChatGPT首次发布以来,训练方法已经发生了变化。在本文中,我回顾了最近几个月在预训练和后训练方法论方面的最新进展。
本文讨论的新预训练和后训练方法论,概述了LLM开发和训练流程
每个月都有数百篇LLM论文提出新技术和方法。然而,实际上验证什么方法有效的最佳途径之一是查看最新最先进模型的预训练和后训练流程。幸运的是,在过去的几个月里,有四个主要的新LLM发布,并附有相对详细的技术报告。
在本文中,我将重点介绍以下模型的预训练和后训练流程:
-
-
-
-
这些模型是根据各自技术论文在 http://arxiv.org/ 上的发表日期顺序排列的,恰好也与它们的字母顺序一致。
1. 阿里巴巴的 Qwen 2
首先介绍一下 https://arxiv.org/abs/2407.10671,这是一个非常强大的LLM模型系列。然而,由于某些原因,它比Meta AI、微软和谷歌的公开的权重模型受欢迎较少。
1.1 Qwen 2 概述
在查看 https://arxiv.org/abs/2407.10671中讨论的预训练和后训练方法之前,我们先简要总结一些核心规格。
Qwen 2 模型有5种类型。有4个常规(密集)LLM,参数量分别为5亿、15亿、70亿和720亿。此外,还有一个570亿参数的专家混合模型,其中有140亿参数同时被激活。(由于架构细节不是这次的重点,我不会深入讨论专家混合模型;简而言之,这类似于Mistral AI的Mixtral,只是它有更多的活跃专家。高级概述请参见我的 https://magazine.sebastianraschka.com/p/research-papers-in-january-2024 中的 https://magazine.sebastianraschka.com/i/141130005/mixtral-architecture 部分。)
Qwen 2 LLM的一个突出特点是其在30种语言中的良好多语言能力。它们还拥有惊人的151,642个词汇量(作为参考,Llama 2使用32k词汇量,Llama 3.1使用128k词汇量);根据经验,词汇量增加2倍会减少输入词数2倍,因此LLM可以在同一输入中容纳更多词。它特别有助于多语言数据和编码,以覆盖标准英语词汇之外的词语。
下面是与其他LLM的简要MMLU基准测试比较。(请注意,MMLU是一个多项选择的基准测试,因此有其局限性;然而,它仍然是报告LLM性能的最流行方法之一。)
最新开放权重模型的MMLU基准测试得分(值越高越好)。我从每个模型的官方研究论文中收集了这些得分用于此图表。
1.2 Qwen 2 预训练
Qwen 2团队在7万亿训练数据上训练了15亿、70亿和720亿参数模型,这是一个合理的规模。作为比较,Llama 2模型在2万亿数据上训练,而Llama 3.1模型在15万亿数据上训练。
有趣的是,5亿参数模型是在12万亿数据上训练的。然而,研究人员并没有在更大的12万亿数据集上训练其他模型,因为他们在训练过程中没有观察到任何改进,并且额外的计算成本也不合理。
重点之一是改进数据过滤流程,以去除低质量数据,并增强数据混合以增加数据多样性——这是我们在稍后检查其他模型时将重新讨论的主题。
有趣的是,他们还使用了Qwen模型(尽管他们没有具体说明,但我认为他们指的是上一代的Qwen模型)来合成额外的预训练数据。预训练还涉及“多任务指令数据……以增强上下文学习和指令遵循能力”。
此外,他们进行了两个阶段的训练:常规预训练和长上下文训练。
后者在预训练结束阶段将上下文长度从4,096个数据增加到32,768个数据,使用的是“高质量、长篇数据”。
Qwen 2预训练技术总结。“持续预训练”是指两阶段预训练,即研究人员从常规预训练开始,然后进行长上下文持续预训练。
(不幸的是,技术报告的另一个主题是关于数据集的详细信息很少,因此如果我的报告看起来不太详细,这是由于缺乏公开可用的信息。)
1.3 Qwen 2 后训练
Qwen 2 团队采用了流行的两阶段后训练方法,首先是监督指令微调(SFT),在 500,000 个示例上进行了 2 个epoch。此阶段旨在提高模型在预定场景中的响应准确性。
一个典型的 LLM 开发流程。
在SFT之后,他们使用直接偏好优化(DPO)来使LLM与人类偏好对齐。(有趣的是,在他们的术语中,这被称为来自人类反馈的强化学习,RLHF。)正如我几周前在《LLM预训练技巧和奖励模型评估》中讨论的那样,由于与其他方法(如使用PPO的RLHF)相比易于使用,SFT+DPO方法似乎是目前最受欢迎的偏好调优策略。(如果你想了解DPO的工作原理,我最近从头开始实现了它。链接:https://github.com/rasbt/LLMs-from-scratch/blob/main/ch07/04_preference-tuning-with-dpo/dpo-from-scratch.ipynb)
对齐阶段本身也分为两个阶段。首先在现有数据集上使用DPO(离线阶段)。其次,使用奖励模型形成偏好对(在线)。在这里,模型在训练期间生成多个响应,奖励模型在“实时”优化步骤中选择首选响应(也就是说,在训练期间)。这也常被称为“拒绝采样”。
在数据集构建方面,他们使用了现有语料库并辅以人为标注,以确定SFT的目标响应并识别对DPO至关重要的首选和被拒绝的响应。研究人员还合成了人工注释的数据。
此外,团队使用LLM生成专门为“高质量文学数据”量身定制的指令-响应对,以创建高质量的问答对进行训练。
Qwen 2 训练后技术总结。
1.4 结论
Qwen 2 是一个相对有能力的模型,类似于早期的 Qwen 代。在 2023 年 12 月参加 NeurIPS LLM 效率挑战时,我记得大多数获胜的方法都涉及到 Qwen 模型。
关于 Qwen 2 的训练流程,突出的特点是合成数据被用于预训练和后训练
。另外,专注于数据集的过滤(而不是尽可能多地收集数据)是 LLM 训练中的一个显著趋势。在这里,我会说,更多是更好,但前提是它符合某些质量标准。
2. 苹果的苹果智能基础语言模型 (AFM)
我非常高兴在 http://arxiv.org/ 上看到苹果发布的另一篇技术论文,概述了他们的模型训练。这是一个意想不到但绝对积极的惊喜!
2.1 AFM 概述
在https://arxiv.org/abs/2407.21075一文中,研究团队概述了旨在“苹果智能”环境中在苹果设备上使用的两个主要模型的开发。为了简洁起见,在本节中这些模型将被简称为 AFM,即“Apple Foundation Models”。
具体来说,论文描述了 AFM 的两个版本:一个用于在手机、平板电脑或笔记本电脑上部署的30亿参数的设备模型,以及一个更强大的30亿参数的服务器模型。
这些模型是为聊天、数学和编码任务开发的,尽管论文没有讨论任何与编码相关的特定训练和能力。
与 Qwen 2 类似,AFM 是稠密的 LLMs,并没有使用专家混合方法。
2.2 AFM 预训练
我要向研究人员表示两点大的赞赏。首先,除了使用公开可用的数据和出版商授权的数据,他们还尊重网站上的 robots.txt 文件,并且没有爬取这些网站。其次,他们还提到使用基准数据进行了去污染。
为了强调 Qwen 2 论文中的一个要点,研究人员提到质量比数量更重要。(设备模型的词汇量为49k个词元,服务器模型的词汇量为100k个词元,明显小于 Qwen 2 模型使用的150k个词元词汇量。)
有趣的是,预训练不是在2个阶段而是在3个阶段完成的!
-
-
持续预训练,其中网络抓取(质量较低)数据的权重被降低;数学和代码的权重被提高
-
AFM 模型经历的三步预训练过程概述。
让我们更详细地看看这三个步骤。
2.2.1预训练 I:核心预训练
核心预训练描述了苹果预训练流水线中的第一个预训练阶段。这类似于常规预训练,其中AFM服务器模型在6.3万亿个Token、4096个批次大小和4096个Token序列长度上进行训练。这与Qwen 2模型非常相似,后者在7万亿个
Token
上进行训练。
然而,AFM设备上的模型更有趣,它是从一个更大的64亿参数模型中蒸馏和剪枝而来的(从头开始训练,就像前面描述的AFM服务器模型一样。请注意,
服务器
AFM和
设
备
AFM都是30亿参数模型。)
关于蒸馏过程的细节不多,除了"通过将目标标签替换为真实标签和教师模型的top-1预测的凸组合(以0.9的权重分配给教师标签)来使用蒸馏损失。"
我觉得知识蒸馏在LLM预训练中越来越普遍和有用(Gemma-2也使用它)。我计划有一天更详细地介绍它。目前,这里是对该过程在高级别上如何工作的简要概述。
知识蒸馏概述,其中一个小模型(这里是
设备
AFM 3B模型)在原始训练Token加上来自更大教师模型(这里是64亿模型)的输出上进行训练。
请注意,a)中的交叉熵损失是用于预训练LLM的常规训练损失
知识蒸馏,如上所述,仍然涉及在原始数据集上进行训练。然而,除了数据集中的训练Token外,被训练的模型(称为学生)还从较大的(教师)模型接收信息,与没有知识蒸馏的训练相比,提供了更丰富的信号。不利的一面是,你必须:1)首先训练较大的教师模型,2)使用较大的教师模型计算所有训练
Token
的预测。这些预测可以提前计算(这需要大量的存储空间)或在训练过程中计算(这可能会减慢训练过程)。
2.2.2预训练 II:持续预训练
持续预训练阶段包括一个小的上下文扩展步骤,从4,096个
Token
延长到8,192个
Token
,数据集由1万亿个
Token
组成(核心预训练集大五倍)。然而,主要重点是使用高质量的数据混合进行训练,重点是数学和代码。
有趣的是,研究人员发现蒸馏损失在这种情况下并没有带来好处。
2.2.3 预训练 III:上下文扩展
第三个预训练阶段仅涉及1000亿个
Token
(第二阶段
Token
的10%),但代表更显著的上下文扩展到32,768个
Token
。为了实现这一目标,研究人员用合成的长上下文问答数据扩充了数据集。
AFM预训练技术总结。
2.3 AFM 训练后阶段
苹果似乎在训练后阶段采取了与训练前同样全面的方法。他们利用了
人工标注和合成数据,强调数据质量优先于数量
。有趣的是,他们没有依赖预定的数据比例,而是通过多次实验微调数据混合以达到最佳平衡。
训练后阶段涉及两个步骤:监督指令微调,随后是多轮有真人反馈的强化学习(RLHF)。
这个过程中一个特别值得注意的方面是苹果在RLHF阶段引入了两个新算法:
-
使用教师Committee (iTeC)进行拒绝抽样微调
-
基于Mirror Descent的RLHF策略优化
鉴于本文篇幅所限,我不会详细讨论这些方法的技术细节,但这里有一个简要概述:
iTeC算法结合了拒绝采样和多种偏好微调技术——具体来说是SFT、DPO、IPO和在线RL。苹果没有依赖单一算法,而是独立地使用每种方法训练模型。这些模型随后生成响应,由人类评估并提供偏好标签。这些偏好数据用于在RLHF框架中迭代训练奖励模型。在拒绝采样阶段,一个模型委员会生成多个响应,由奖励模型选择最佳响应。
这种基于委员会的方法相当复杂,但应该是相对可行的,尤其是考虑到所涉及的模型相对较小(约30亿参数)。如果用更大的模型,如Llama 3.1中的70B或405B参数模型,实施这样的委员会肯定会更具挑战性。
至于第二个算法,基于
Mirror Descent
的RLHF,它被选择是因为它比常用的PPO(近端策略优化)更有效。
AFM训练后阶段技术总结。
2.4 结论
苹果在预训练和后训练方面的方法相对全面,这可能是因为风险非常高(模型部署在数百万甚至数十亿台设备上)
。然而,鉴于这些模型的规模较小,各种技术也变得可行,因为一个3B模型的大小不到最小的Llama 3.1模型的一半。
其中一个亮点是,
它不是在RLHF和DPO之间的简单选择;相反,他们以委员会的形式使用了多种偏好调优算法。
有趣的是,他们明确使用了问答数据作为预训练的一部分——这是我在上一篇文章https://magazine.sebastianraschka.com/p/instruction-pretraining-llms中讨论过的。
总的来说,这是一个令人耳目一新且令人愉快的技术报告。
3. Google 的 Gemma 2
Google 的 Gemma 模型最近在 https://arxiv.org/abs/2408.00118 中进行了描述。
在讨论预训练和后训练过程之前,我将概述一些关键事实。
3.1 Gemma 2 概述
Gemma 2 模型有三种规模:20 亿、90 亿和 270 亿参数。主要关注点是
探索不必增加训练数据集规模的技术,而是开发相对较小且高效的 LLMs。
值得注意的是,Gemma 2 具有 256k 词汇表大小。相比之下,Llama 2 使用的是 32k 词汇表,而 Llama 3 使用的是 128k 词汇表。
此外,
Gemma 2 采用滑动窗口注意力机制,类似于 Mistral 的早期模型,可能是为了减少内存成本
。有关 Gemma 2 架构的更多详细信息,请参阅我之前文章中的 https://magazine.sebastianraschka.com/i/146761957/gemma。
3.2 Gemma 2 预训练
Gemma 研究人员认为,即使是小模型也常常训练不足。然而,他们并不只是简单地增加训练数据集的规模,而是通过其他方法保持质量并取得改进,例如知识蒸馏,类似于苹果的做法。
尽管 27B Gemma 2 模型是从头开始训练的,但较小的模型是通过类似于苹果之前解释的方法进行知识蒸馏训练的。
27B 模型在 13 万亿个标记上进行了训练,9B 模型在 8 万亿个标记上进行了训练,2B 模型在 2 万亿个标记上进行了训练。
此外,类似于苹果的做法,Gemma 团队优化了数据混合以提高性能。
Gemma 2 预训练技术总结。
3.3 Gemma 2 后训练
Gemma 模型的后训练过程包括
典型的监督微调 (SFT) 和带有人类反馈的强化学习 (RLHF) 步骤。
指令数据使用了仅英文的提示对,这些提示对混合了人工生成和合成生成的内容。具体来说,值得注意的是,响应主要由教师模型生成,并且在 SFT 阶段也应用了知识蒸馏。
在 SFT 之后,他们的 RLHF 方法的一个有趣方面是用于 RLHF 的奖励模型比策略(目标)模型大十倍。
Gemma 使用的 RLHF 算法相当标准,但有一个独特之处:他们通过一种称为 WARP 的方法对策略模型进行平均,这是一种 WARM(权重平均奖励模型)的后继方法。我之前在我的文章 https://magazine.sebastianraschka.com/i/141130005/warm-on-the-benefits-of-weight-averaged-reward-models 中详细讨论了这种方法。
Gemma 2 后训练技术总结。
3.4 结论
Gemma 团队似乎非常重视知识蒸馏,他们在与 Apple 类似的预训练和后训练中都使用了这一技术。有趣的是,他们并没有采用多阶段预训练方法,或者至少他们在论文中没有详细说明这一点。
4. Meta AI的Llama 3.1
Meta的新款Llama LLMs发布总是备受关注。这次发布还附带了一份92页的技术报告:https://arxiv.org/abs/2407.21783。最后但同样重要的是,在本节中,我们将看看上个月发布的第四篇重要模型论文。
4.1 Llama 3.1 概述
除了发布一个巨大的4050亿参数模型外,Meta还更新了之前的80亿和700亿参数模型,使它们的MMLU性能稍有提升。
不同模型的MMLU基准性能。
尽管Llama 3使用了与其他最近的LLM类似的分组查询注意力,令人惊讶的是,Meta AI对滑动窗口注意力和专家混合方法说不。换句话说,Llama 3.1 看起来非常传统,重点显然是放在预训练和后训练上,而不是架构创新。
与之前的Llama版本类似,权重是公开可用的。此外,Meta表示他们更新了Llama 3的许可证,现在终于可以(允许)使用Llama 3进行合成数据生成或知识蒸馏以改进其他模型。
4.2 Llama 3.1 预训练
Llama 3在一个巨大的15.6万亿Token数据集上进行了训练,这比Llama 2的1.8万亿
Token
有了大幅增加。研究人员表示,它支持至少八种语言(而Qwen 2能够处理20种语言)。
Llama 3一个有趣的方面是其128,000的词汇量,这是使用OpenAI的tiktoken分词器开发的。(对于那些对分词器性能感兴趣的人,我在https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/02onusytepair-encoder/compare-bpe-tiktoken.ipynb做了一个简单的基准比较。)