LLM预训练和后训练新范式

大型语言模型(LLM)的发展已经取得了长足的进步,从早期的GPT模型到我们今天拥有的复杂的开放权重LLM。最初,LLM的训练过程仅集中于预训练,但后来扩展到包括预训练和后训练。后训练通常包括监督指令微调和对齐,这些是由ChatGPT普及的。

自ChatGPT首次发布以来,训练方法已经发生了变化。在本文中,我回顾了最近几个月在预训练和后训练方法论方面的最新进展。

本文讨论的新预训练和后训练方法论,概述了LLM开发和训练流程

每个月都有数百篇LLM论文提出新技术和方法。然而,实际上验证什么方法有效的最佳途径之一是查看最新最先进模型的预训练和后训练流程。幸运的是,在过去的几个月里,有四个主要的新LLM发布,并附有相对详细的技术报告。

在本文中,我将重点介绍以下模型的预训练和后训练流程:

  1. 阿里巴巴的 Qwen 2

  2. 苹果智能基础语言模型

  3. 谷歌的 Gemma 2

  4. Meta AI 的 Llama 3.1

这些模型是根据各自技术论文在 http://arxiv.org/ 上的发表日期顺序排列的,恰好也与它们的字母顺序一致。

1. 阿里巴巴的 Qwen 2

首先介绍一下 https://arxiv.org/abs/2407.10671,这是一个非常强大的LLM模型系列,与其他主要的LLM竞争。然而,由于某些原因,它比Meta AI、微软和谷歌的开放权重模型少受欢迎。

1.1 Qwen 2 概述

在查看 https://arxiv.org/abs/2407.10671中讨论的预训练和后训练方法之前,我们先简要总结一些核心规格。

Qwen 2 模型有5种类型。有4个常规(密集)LLM,参数量分别为5亿、15亿、70亿和720亿。此外,还有一个57亿参数的专家混合模型,其中有14亿参数同时被激活。(由于架构细节不是这次的重点,我不会深入讨论专家混合模型;简而言之,这类似于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 个周期。此阶段旨在提高模型在预定场景中的响应准确性。

一个典型的 LLM 开发流程。

在SFT之后,他们使用直接偏好优化(DPO)来使LLM与人类偏好对齐。(有趣的是,在他们的术语中,这被称为来自人类反馈的强化学习,RLHF。)正如我几周前在《LLM预训练技巧和奖励模型评估》中讨论的那样,由于与其他方法(如使用PPO的RLHF)相比易于使用,SFT+DPO方法似乎是目前最受欢迎的偏好调优策略。(如果你想了解DPO的工作原理,我最近从头开始实现了它。)

对齐阶段本身也分为两个阶段。首先在现有数据集上使用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个阶段完成的!

  1. 核心(常规)预训练

  2. 持续预训练,其中网络抓取(质量较低)数据的权重被降低;数学和代码的权重被提高

  3. 使用较长序列数据和合成数据进行上下文扩展

AFM 模型经历的三步预训练过程概述。

让我们更详细地看看这三个步骤。

2.2.1预训练 I:核心预训练

核心预训练描述了苹果预训练流水线中的第一个预训练阶段。这类似于常规预训练,其中AFM服务器模型在6.3万亿个标记、4096个批次大小和4096个标记序列长度上进行训练。这与Qwen 2模型非常相似,后者在7万亿个标记上进行训练。

然而,AFM设备上的模型更有趣,它是从一个更大的64亿参数模型中蒸馏和修剪而来的(从头开始训练,就像前面描述的AFM服务器模型一样。请注意,AFM服务器和AFM设备都是30亿参数模型。)

关于蒸馏过程的细节不多,除了"通过将目标标签替换为真实标签和教师模型的top-1预测的凸组合(以0.9的权重分配给教师标签)来使用蒸馏损失。"

我觉得知识蒸馏在LLM预训练中越来越普遍和有用(Gemma-2也使用它)。我计划有一天更详细地介绍它。目前,这里是对该过程在高级别上如何工作的简要概述。

知识蒸馏概述,其中一个小模型(这里是AFM设备3B模型)在原始训练标记加上来自更大教师模型(这里是64亿模型)的输出上进行训练。请注意,a)中的交叉熵损失是用于预训练LLM的常规训练损失

在这里插入图片描述

知识蒸馏,如上所述,仍然涉及在原始数据集上进行训练。然而,除了数据集中的训练标记外,被训练的模型(称为学生)还从较大的(教师)模型接收信息,与没有知识蒸馏的训练相比,提供了更丰富的信号。不利的一面是,你必须:1)首先训练较大的教师模型,2)使用较大的教师模型计算所有训练标记的预测。这些预测可以提前计算(这需要大量的存储空间)或在训练过程中计算(这可能会减慢训练过程)。

2.2.2预训练 II:持续预训练

持续预训练阶段包括一个小的上下文扩展步骤,从4,096个标记延长到8,192个标记,数据集由1万亿个标记组成(核心预训练集大五倍)。然而,主要重点是使用高质量的数据混合进行训练,重点是数学和代码。

有趣的是,研究人员发现蒸馏损失在这种情况下并没有带来好处。

2.2.3 预训练 III:上下文扩展

第三个预训练阶段仅涉及1000亿个标记(第二阶段标记的10%),但代表更显著的上下文扩展到32,768个标记。为了实现这一目标,研究人员用合成的长上下文问答数据扩充了数据集。

AFM预训练技术总结。

2.3 AFM 训练后阶段

苹果似乎在训练后阶段采取了与训练前同样全面的方法。他们利用了人工标注和合成数据,强调数据质量优先于数量。有趣的是,他们没有依赖预定的数据比例,而是通过多次实验微调数据混合以达到最佳平衡。

训练后阶段涉及两个步骤:监督指令微调,随后是多轮有真人反馈的强化学习(RLHF)。

这个过程中一个特别值得注意的方面是苹果在RLHF阶段引入了两个新算法:

  1. 拒绝采样教师委员会微调 (iTeC)

  2. 基于镜像下降的RLHF策略优化

鉴于本文篇幅所限,我不会详细讨论这些方法的技术细节,但这里有一个简要概述:

iTeC算法结合了拒绝采样和多种偏好微调技术——具体来说是SFT、DPO、IPO和在线RL。苹果没有依赖单一算法,而是独立地使用每种方法训练模型。这些模型随后生成响应,由人类评估并提供偏好标签。这些偏好数据用于在RLHF框架中迭代训练奖励模型。在拒绝采样阶段,一个模型委员会生成多个响应,由奖励模型选择最佳响应。

这种基于委员会的方法相当复杂,但应该是相对可行的,尤其是考虑到所涉及的模型相对较小(约30亿参数)。如果用更大的模型,如Llama 3.1中的70B或405B参数模型,实施这样的委员会肯定会更具挑战性。

至于第二个算法,基于镜像下降的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万亿标记数据集上进行了训练,这比Llama 2的1.8万亿标记有了大幅增加。研究人员表示,它支持至少八种语言(而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做了一个简单的基准比较。)

在预训练数据质量控制方面,Llama 3采用基于启发式的过滤和基于模型的质量过滤,利用像Meta AI的fastText和基于RoBERTa的分类器等快速分类器。这些分类器还帮助确定训练过程中使用的数据混合的上下文类别。

Llama 3的预训练分为三个阶段。第一阶段涉及使用15.6万亿标记和8k上下文窗口的标准初始预训练。第二阶段继续预训练,但将上下文长度扩展到128k。最后阶段涉及退火,进一步提高模型的性能。让我们在下面详细了解这些阶段。

4.2.1预训练 I:标准(初始)预训练

在他们的训练设置中,他们开始使用包含400万标记的批次,每个批次的序列长度为4096。这意味着假设400万的数字四舍五入,批次大小约为1024标记。在处理了前252百万标记后,他们将序列长度加倍到8192。在训练过程中,处理了2.87万亿标记后,他们再次将批次大小加倍。

此外,研究人员在整个训练过程中没有保持数据混合不变。相反,他们在训练过程中调整了数据混合,以优化模型的学习和性能。这种动态的数据处理方法可能有助于提高模型在不同类型数据上的泛化能力。

4.2.2预训练 II:继续预训练以延长上下文

与其他一次性增加上下文窗口的模型相比,Llama 3.1的上下文延长采取了更渐进的方法:在这里,研究人员通过六个不同阶段将上下文长度从8,000增加到128,000标记。这种逐步增加可能使模型更顺利地适应较大的上下文。

用于此过程的训练集涉及8000亿标记,大约占整个数据集大小的5%。

4.2.3预训练 III:在高质量数据上退火

在第三阶段的预训练中,研究人员使用了一个小但高质量的混合数据集进行训练,他们发现这有助于提高在基准数据集上的性能。例如,在GSM8K和MATH训练集上退火显著提高了各自的GSM8K和MATH验证集的性能。

在论文的第3.1.3节中,研究人员表示退火数据集的大小为400亿标记(占整个数据集大小的0.02%)。然而,在第3.4.3节中,他们表示退火仅在4000万标记(0.1%的退火数据)上进行。

Llama 3.1预训练技术的总结。

4.3 Llama 3.1 后训练

在后训练过程中,Meta AI 团队采用了一种相对简单的方法,包括监督微调 (SFT)、拒绝采样和直接偏好优化 (DPO)。

他们观察到,与这些技术相比,像 RLHF 与 PPO 这样的强化学习算法稳定性较差,且更难扩展。值得注意的是,SFT 和 DPO 步骤在多个回合中反复进行,结合了人类生成的数据和合成数据。

在描述进一步的细节之前,他们的工作流程在下图中有所说明。

Llama 3.1 论文中的注释图,描述了后训练过程

请注意,尽管他们使用了DPO,他们还开发了一个奖励模型,就像在RLHF中那样。最初,他们使用预训练阶段的检查点并利用人工注释数据来训练奖励模型。然后,这个奖励模型被用于拒绝采样过程,以帮助选择适当的提示进行进一步训练。

在每一轮训练中,他们不仅对奖励模型应用了模型平均技术,还对SFT和DPO模型应用了这种技术。这种平均包括将最近和以前模型的参数合并,以稳定(并改善)性能。

对于那些对模型平均的技术细节感兴趣的人,我在之前的文章 https://magazine.sebastianraschka.com/i/141130005/understanding-model-merging-and-weight-averaging 的 “Understanding Model Merging and Weight Averaging” 部分中讨论了这个话题。

总而言之,核心是一种相对标准的SFT + DPO阶段。然而,这个阶段会重复多轮。然后,他们加入了一个用于拒绝采样的奖励模型(像Qwen 2和AFM)。他们还使用了像Gemma那样的模型平均技术;不过,这不仅仅是针对奖励模型,而是所有相关模型。

Llama 3.1后训练的技术总结。

4.4 结论

Llama 3 模型仍然相当标准,并且与早期的 Llama 2 模型相似,但有一些有趣的方法。特别是,庞大的 15 万亿标记训练集使 Llama 3 与其他模型区分开来。有趣的是,像苹果的 AFM 模型一样,Llama 3 也实施了三阶段的预训练过程。

与其他最近的大型语言模型相比,Llama 3 没有采用知识蒸馏技术,而是选择了更为直接的模型开发路径。在后训练阶段,该模型使用了直接偏好优化(DPO)而不是在其他模型中流行的更复杂的强化学习策略。总体而言,这一选择很有趣,因为它表明了通过更简单(但经过验证)的方法来改进 LLM 性能的关注点。

5. 主要收获

我们可以从本文讨论的这四个模型中学到什么:阿里巴巴的 Qwen 2、苹果的基础模型(AFM)、谷歌的 Gemma 2 和 Meta 的 Llama 3?

这四个模型在预训练和后训练方面采取了不同的方法。当然,方法论有所重叠,但没有一个训练管道完全相同。在预训练方面,一个共同的特征似乎是所有方法都使用多阶段的预训练管道,其中一般的核心预训练之后是上下文延长,有时还有高质量的退火步骤。下图再次展示了预训练中采用的不同方法的一览。

预训练中使用的技术概述

当谈到后训练时,没有一个流程是完全相同的。似乎拒绝采样现在是后训练过程中常见的做法。然而,当谈到DPO或RLHF时,目前还没有一致的意见或偏好。

后训练技术概述

总之,没有单一的配方来开发高性能的LLM,而是有许多途径。

最后,这四个模型的表现大致相当。不幸的是,其中一些模型尚未进入LMSYS和AlpacaEval排行榜,因此我们还没有直接的比较,除了在多项选择基准测试如MMLU等上的得分外。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值