TL;DR
本文基于开源的预训练语料库,从零训练了 100 多个 1B 和 4B 的 LLM,包括了“预训练、持续预训练、SFT、RL” 4 个阶段,分别评估其上游(语言建模)与下游(任务求解)的能力,系统分析了各训练阶段的设计权衡与 Scaling 行为,解决了以往训练阶段割裂、实验不透明的问题。
为促进开放研究和可复现性,本文发布了所有预训练和后训练模型、各阶段的训练数据,以及完整的训练与评估流水线。
本文并未提出新的模型架构,而是通过大量的一系列实验来进行系统性分析,并给出了具有较高参考价值的 takeways。
一、实验场景
1.1 训练设置
使用 1B 和 4B 参数的 LLaMA-2 架构来初始化所有模型,训练流水线包括 4 个训练阶段:
- 预训练:在 FineWeb-Edu 上进行,在 Chinchilla 缩放法则的指导下研究“轻度过训练”和“重度过训练”对任务性能的影响。
- 持续预训练(CPT):在 FineMath 上进行,token 预算从 20 亿到 420 亿。为缓解通用领域知识的灾难性遗忘问题,我们还引入了预训练数据重放策略。
- 监督微调(SFT):应用于从 GSM8K 和 MATH 扩展得到的问答对数据集,该数据集来源于 MetaMathQA、OpenMathInstruct2 和 NuminaMath 的混合。我们使用模型正确性一致性过滤低质量提示,丢弃模型间共识为零的样本。
- 强化学习(RL):采用 PPO 进行,使用二值可验证奖励。强化学习阶段使用与 SFT 相同的数据源,但确保与 SFT 数据集无重叠。
1.2 评估任务
上游评估任务:填空任务
评估 Language Modeling 能力。这些任务通过下一个 token 预测来评估模型的语言模型化能力,无需具备对话能力。所选数据集被广泛用于评估通用推理能力与语言理解能力:
- HellaSwag:常识性完形填空
- Winogrande:共指消解推理
- PIQA:物理常识推理
- OBQA:开放式知识问答
- ARC-Easy/Challenge:科学与多步推理
下游评估任务:开放式、生成式任务
这些任务旨在评估模型在生成式对话情景下的问题求解能力。包括 ID 任务和 OOD 任务:
- ID Tasks:数学推理。包括:
- GSM8K-Platinum:高质量的小学数学应用题;
- MATH:竞赛级别的数学问题求解。
- OOD Tasks:
- CRUXEval:代码推理与程序输出预测;
- BGQA:含矛盾的逻辑推理;
- TabMWP:基于表格的数学推理;
- StrategyQA:多跳常识推理与策略推理。
1.3 评估指标
- Pass@1:确定性输出,仅生成一个结果(温度值 = 0)
- Maj@16:在 16 个随机采样结果中进行多数投票(温度值 = 1)
- RM@16:从 16 个采样结果中选取 Outcome Reward Model(ORM)评分最高的一个作为最终结果
- Pass@16:若 16 个采样结果中任意一个正确,则视为该问题已解决
- ORM 得分:使用一个结果奖励模型(Skywork-Reward-Llama-3.1-8B-v0.2),根据输入的问题和生成的回复,为生成的解决方案分配标量得分。该指标作为解决方案质量的代理。
二、三个阶段的 Scaling 研究
2.1 预训练阶段
1)收益递减点在哪?
下图中,横轴是预训练的 tokens 规模,纵轴是平均准确率:
可以看到,对于 0.5B 和 1B 的模型,在预训练 tokens 在 80 倍提升到 320 倍的过程中,性能几乎不怎么再增长了。对于 4B 的模型,尽管还在增长,但边际效益已经明显下降了。
Takeway 1.过度的通用领域预训练虽可提升上游任务性能,但存在明显的收益递减现象(本研究中饱和点出现在约 80 倍至 160 倍模型参数量之间)。
2)“越多并不越好”:下游任务中的意外发现
无休止地扩大预训练规模是否总能提升下游任务表现?在下图中,我们评估了不同预训练策略对真实世界下游任务性能的影响,涵盖两类任务:一类与中期训练和后期训练数据相似的任务,另一类则是全新的(分布外,OOD)任务。值得注意的是,过度预训练不仅未必提升、甚至可能损害下游推理能力。
在 OOD 任务上的准确率在超过 160BT 预训练预算后开始下降,且这一退化现象还伴随着 ORM 得分的降低,表明整体生成质量已出现一定程度的下降。
Takeway 2.过度的通用领域预训练并不总能提升领域特定的后期训练效果,反而可能导致某些下游任务性能下降(本研究中性能饱和点出现在模型规模扩大约 80 倍至 160 倍时)。
3)小模型 vs. 大模型:预算与算力的权衡
一种常见假设是,更大的模型总是会优于更小的模型。但在“预训练资源受限”的设置下,实验结果发现:在资源有限的情况下,经过良好调优的小型模型可能反而更为有效;而大型模型仅在数据量达到某一阈值后,性能才开始显现优势。
Takeway 3.在预训练预算受限时,经过后训练(post-training)的较小模型甚至可能超越更大的对应模型;反之,一旦预训练所用的 token 数量进入饱和区间,增大模型规模便能显著提升模型在领域内任务上的性能以及在分布外(OOD)场景下的泛化能力。
2.2 持续预训练
本文中持续预训练使用的数据是 FineMath,即领域特定知识,而非通用领域知识,这是与“预训练”的关键区别。
1)持续预训练中的灾难性遗忘
模型如何在适应新领域的同时避免遗忘旧知识?我们研究了是否使用通用领域数据进行“重放”的持续预训练(CPT)。
「预训练数据重放策略」指的是将预训练期间的一部分数据重放在持续预训练期间。
结果表明,仅需少量通用数据重放(仅 5%)即可在习得新技能与保留广泛知识之间实现关键平衡——这是一种简单却极为有效的实用领域自适应技巧。
Takeway 4.在领域特定数据上开展持续预训练,会导致预训练知识的灾难性遗忘,从而损害上游和下游性能;而引入少量重放预算(例如 5%)则可有效缓解这一性能退化。
2)持续预训练对后训练阶段的重要性
我们测试了不同规模 CPT 数据量对下游任务结果的影响,并在下图中展示了相应结果。
结果发现:领域数据不足可能导致模型即使经过 SFT 或 RL 后,仍难以良好适配该领域。相反,投入资源构建丰富、高质量的领域数据集,对实现优异的训后效果至关重要。
Takeway 5.领域专用的 post-training 应以充足且高质量的领域专用持续预训练(CPT)数据为支撑;若缺乏此类数据,SFT 性能将始终不理想,而 RL 甚至可能进一步削弱该性能。
我们的研究揭示:随着所用领域专用 CPT 词元数量增加,模型在该领域内的准确率呈现持续上升趋势。这一稳定提升趋势,有力支持了构建更大规模领域专用数据集的必要性——尤其当目标是提升下游推理能力或借助强化学习进一步优化性能时。
Takeway 6.随着领域专用 CPT 数据量增加,模型在该领域的下游任务性能稳步提升,且 SFT 模型也能从后续强化学习微调中获得更显著的收益。
我们分析了大规模持续预训练(CPT)对 ID 任务和 OOD 任务的影响。精心设计的领域自适应方法可通过增强模型在 OOD 任务上的可迁移推理能力,构建更具灵活性的模型——而不仅限于领域专家型模型。
Takeway 7.当拥有足够多的领域特异性 CPT 数据时,在 ID 任务上进行后训练不仅能提升模型在该领域的性能,还能有效泛化至 OOD 任务。
2.3 Post-Training
1)SFT:收益递减与过拟合风险
我们同时调整监督微调(SFT)的训练轮数和数据集规模,并绘制如下表:
结果表明:更多的 SFT 并不总是更优。过拟合确实存在,且会损害模型泛化能力——微调过程需谨慎进行,并辅以严格的验证。
Takeway 8.过度的 SFT 虽能提升分布内(ID)性能,但边际效益递减;而它未必能提升、甚至可能损害分布外(OOD)性能。
通过系统性地在 RL 之前增加 SFT 的强度,我们可衡量强化学习进一步提升的剩余空间。当模型已因监督微调而过度专业化时,强化学习几乎无法再带来显著改进。将监督微调保持在适度水平,可为强化学习发挥更大作用留出更多空间。
Takeway 9.过度的 SFT,尤其是训练轮数过多,可能限制后续 RL 的进一步提升。
2)RL:收益递减现象与实用解决方案
我们扩大了强化学习(RL)的训练轮数和数据规模(参见下图),记录性能在不同设定下的变化情况。对于 ID 任务和 OOD 任务,RL 带来的大部分收益均出现在早期阶段。在针对 10 亿参数模型开展的研究中,将训练轮数设定为 4–8 轮或样本量设定为约 10 万条,可在效果与成本之间取得实际可行的平衡。
Takeway 10.使用过多的训练轮次或样本进行 RL,虽可提升模型在分布内(ID)和分布外(OOD)下游任务上的性能,但收益递减(在本研究中,饱和现象通常出现在 4–8 轮或 50K–100K 样本时)。
强化学习究竟提升了模型的推理能力,还是仅使其采样更自信?我们深入探究了强化学习对解的多样性与质量的影响。结果表明:达到饱和后,强化学习主要起“锐化”输出分布的作用——即提高正确答案被采样到的概率,但并未从根本上提升推理能力,即无法使模型解决原本无法解决的问题。
Takeway 11.在饱和区间之外,强化学习主要提升高质量推理路径(rollouts)的采样概率,但未必能增强模型的根本推理能力。
3)数据约束下的 SFT/RL 分配
在下游预算有限的情况下,您应该将预算用于 SFT 还是 RL?我们在 1B 和 4B 模型上实验了不同的 SFT/RL 数据分配比例(如下图),以量化领域内性能与分布外(OOD)性能之间的权衡。
请根据具体目标选择分配方案:**若需构建专业型模型,则倾向 SFT;若需构建通用型模型,则倾向 RL。**这有助于针对最关键的任务定制语言模型。
Takeway 12.在下游数据预算受限的情况下,将更多样本分配给 SFT 可在提升领域内性能的同时削弱分布外(OOD)泛化能力;而将更多样本分配给 RL 则有助于提升 OOD 性能。
2.4 ORM 分数作为验证指标
我们评估 ORM(结果奖励模型)分数在预测下游任务成功率方面的能力。**ORM 评分能够真实反映模型后训练阶段的推理质量。**这有助于研究人员和工程师在后训练过程中更可靠地监控和优化模型,尤其当缺乏验证集(即无真实标签数据)或收集验证集成本过高时。
Takeway 13.相较于验证损失,ORM 分数可能是一种更可靠的无监督验证指标,有助于在后训练阶段预测模型在下游任务上的表现。值得注意的是,一个 8B 参数规模的奖励模型所输出的 ORM 分数,与多个下游推理任务中 1B 参数规模模型的问题解决准确率高度相关。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。