在上一篇文章中我们介绍了 Scaling Law也就是大语言模型中的规模化规律。Scaling Law 关注的问题是模型能力如何随着参数量、训练数据量和计算量的增加而变化在 GPT-3 之后很多人形成了一个直觉模型越大能力越强。这个判断有一定道理。GPT-3 从 GPT-2 的 1.5B 参数扩大到 175B 参数后zero-shot、one-shot 和 few-shot 能力都有明显增强。模型规模扩大确实会带来能力提升。但是到了 Chinchilla 论文这个理解被进一步修正了。Chinchilla 对应的论文是Training Compute-Optimal Large Language Models这篇论文由 DeepMind 在 2022 年提出。它的核心观点可以概括为一句话在固定训练计算预算下大语言模型不能只堆参数还必须同时增加训练 token 数。换句话说模型参数量很大但训练数据不够模型仍然可能没有被充分训练。这类模型可以称为undertrained models也就是训练不足的模型。Chinchilla 的重要意义在于它把大家对大模型训练的关注点从模型参数越大越好推进到模型参数量、训练 token 数和计算预算必须平衡这一章我们就来详细精读 Chinchilla重点讲清楚1. Chinchilla 想解决什么问题 2. 什么是 compute-optimal training 3. 为什么很多大模型是 undertrained 4. Chinchilla 如何重新分配参数量和训练 token 数 5. 为什么 70B 的 Chinchilla 能超过 280B 的 Gopher 6. Chinchilla 对后续 LLaMA、Qwen、DeepSeek 等模型有什么影响一、Chinchilla 想解决什么问题Chinchilla 论文关注的问题非常现实给定一笔固定训练计算预算我们应该训练多大的模型又应该用多少 token 来训练它这里有三个核心变量N模型参数量 D训练 token 数 C训练计算量其中(N) 表示模型有多少参数(D) 表示模型训练时看了多少 token(C) 表示训练消耗了多少计算量。在 Transformer 语言模型中一个常用的粗略估计是这个公式的意思是训练计算量大致与模型参数量和训练 token 数都成正比。也就是说如果模型参数量翻倍在训练 token 数不变的情况下训练计算量大约也会翻倍。如果训练 token 数翻倍在模型参数量不变的情况下训练计算量也会大约翻倍。所以当计算预算固定时参数量和训练 token 数之间必须做取舍。例如有同样一笔训练预算可以选择方案 A训练一个很大的模型但训练 token 数较少 方案 B训练一个较小的模型但训练 token 数更多 方案 C训练一个中等大小模型同时使用中等规模 token 数哪一种更好这就是 Chinchilla 要回答的问题。二、为什么“大模型只堆参数”可能不是最优在 GPT-3 之后很多人关注模型参数量。例如GPT-3175B Gopher280B Megatron-Turing NLG530B参数量越来越大模型看起来也越来越强。但是 Chinchilla 论文指出当时许多大模型虽然参数很多但训练 token 数相对不足。也就是说它们可能没有被充分训练。这可以用一个简单类比理解。模型参数量像学生的大脑容量训练 token 数像学生读过的书。如果一个学生脑容量很大但是只读了很少的书他的潜力很大但知识和能力不一定充分发挥出来。反过来如果学生脑容量较小但是读了很多书也可能因为容量有限无法充分吸收复杂知识。所以最优情况不是只追求更大的模型而是要追求合适的模型规模 足够的训练 token 数这就是 Chinchilla 的核心思想。它不是否定模型规模的重要性而是强调模型规模和数据规模必须匹配。三、什么是 Compute-Optimal TrainingChinchilla 论文中的关键词是compute-optimal可以翻译为计算最优所谓 compute-optimal training就是在固定计算预算 (C) 下选择最合适的参数量 (N) 和训练 token 数 (D)让模型最终 loss 最低、效果最好。也就是说它不是问如果无限增加计算量模型能做到多强而是问如果计算预算固定应该怎么分配给模型参数和训练数据这个问题非常重要。因为现实中没有无限计算资源。训练大语言模型时团队通常会面对固定资源约束多少张 GPU 训练多久 总 FLOPs 预算是多少 数据规模有多少 推理成本能接受多少在这种情况下如果把太多预算用于扩大模型参数模型就可能看不够多的数据。如果把太多预算用于增加训练 token 数模型参数又可能太小容量不足。Compute-optimal training 要找的是一个平衡点在给定计算预算下模型不太大也不太小 训练数据不太少也不浪费 最终效果最好。四、Chinchilla 如何研究这个问题Chinchilla 论文不是直接训练一个大模型然后给结论。它首先做了大量小规模实验研究模型大小、训练 token 数和 loss 之间的关系。论文训练了超过 400 个语言模型参数规模从 70M 到 16B训练 token 数从 5B 到 500B 不等。这些实验的目标是拟合一个规律在不同计算预算下什么样的 N 和 D 配比最优也就是说作者不是只比较一个模型而是系统研究模型参数量增加时loss 怎么变化 训练 token 数增加时loss 怎么变化 固定计算量时N 和 D 如何分配最好最终论文得出一个重要结论对于 compute-optimal training模型参数量和训练 token 数应该大致等比例增加。通俗地说模型参数量翻倍训练 token 数也应该大致翻倍。这和当时很多大模型的做法不同。当时很多模型更偏向于参数量变得很大 但训练 token 数没有同步增加Chinchilla 认为这会导致模型训练不足。五、Chinchilla 的核心结论参数量和 token 数要一起增长Chinchilla 最重要的结论可以写成在计算最优条件下模型大小和训练 token 数应该同时增长。也就是说如果我们把模型从 10B 扩大到 20B那么训练 token 数也应该相应增加。这和一种错误直觉不同。错误直觉是我有更多计算资源就应该优先把模型做得更大。Chinchilla 的结论是更多计算资源不应该只用来增加参数也应该用来增加训练 token。为什么因为大模型如果数据不够就没有被充分训练。从 loss 的角度看模型最终误差主要受到几方面影响模型容量不足带来的误差 数据不足带来的误差 不可避免的数据噪声或建模误差如果模型很大但数据不足那么限制模型表现的主要因素可能不是参数量而是数据量。这时继续扩大模型参数收益会变小。更好的做法可能是减少模型参数 增加训练 token 数 让模型训练得更充分Chinchilla 正是这样做的。六、Gopher 和 Chinchilla 的对比Chinchilla 最经典的对比对象是 DeepMind 自己之前提出的 Gopher。Gopher 是一个 280B 参数模型。Chinchilla 只有 70B 参数。从参数量看Gopher280B Chinchilla70BChinchilla 只有 Gopher 的四分之一。如果只看参数量很多人会以为 Gopher 更强。但 Chinchilla 使用了更多训练数据。可以简单理解为Gopher更大模型训练 token 相对较少 Chinchilla更小模型训练 token 更多Chinchilla 使用和 Gopher 大致相同的训练计算预算但重新分配了参数量和训练 token 数参数量减少 训练 token 数增加 计算预算基本保持相近结果是Chinchilla 在许多下游任务上显著超过 Gopher。这说明在相同训练计算预算下更合理的参数量和数据量配比比单纯扩大参数量更重要。这也是 Chinchilla 论文最有影响力的地方。它让大家意识到不是模型越大就一定越好 而是要看模型有没有被充分训练。七、为什么 70B 的 Chinchilla 能超过 280B 的 Gopher这个现象看起来反直觉但其实很好理解。Gopher 的参数量很大但训练 token 数相对不足。这意味着它有很大容量 但没有看够足够多的数据。Chinchilla 参数更小但训练 token 更多。这意味着它容量较小 但训练更充分 参数利用率更高。可以用一个表格理解对比维度GopherChinchilla参数量更大280B更小70B训练 token 数相对较少更多约 1.4T计算预算与 Chinchilla 接近与 Gopher 接近训练状态可能 undertrained更接近 compute-optimal下游表现强更强这里的关键不是说70B 一定比 280B 强而是说在相同训练计算预算下 一个训练更充分的 70B 模型 可能超过一个训练不足的 280B 模型。这对后续大模型训练影响非常大。因为它说明参数量不是唯一指标训练 token 数和计算分配同样重要。八、Chinchilla 对 Scaling Law 的修正在早期 Scaling Law 研究中一个重要结论是模型越大、数据越多、计算越多loss 会以可预测方式下降。这给 GPT-3 这类大模型提供了理论支持。但是早期实践中很多人更关注模型参数量扩展。Chinchilla 则进一步强调对于固定计算预算参数量和训练 token 数应该平衡增长。这相当于把 Scaling Law 从“模型越大越好”的粗略理解推进到“计算预算如何最优分配”的更精细理解。可以这样概括早期 Scaling Law 扩大模型、数据和计算loss 会下降。 GPT-3 路线 大幅扩大参数量观察 few-shot 能力。 Chinchilla 路线 在固定计算预算下重新平衡参数量和训练 token 数。因此Chinchilla 不是否定 GPT-3而是进一步补充了 GPT-3 之后的问题如果模型继续扩大数据是否也要同步增加Chinchilla 的答案是是的而且非常重要。九、Chinchilla 对后续大模型有什么影响Chinchilla 之后大模型训练思想发生了明显变化。1. 训练 token 数变得更重要过去大家经常首先问这个模型多少参数Chinchilla 之后一个更合理的问题是这个模型多少参数 训练了多少 token 数据质量如何 训练是否充分很多后续模型开始使用更多 token 训练。例如一些 7B、13B、70B 模型虽然参数量不算最大但因为训练 token 数充足、数据质量较高表现非常强。2. 小模型也可以很强Chinchilla 说明较小模型如果训练充分也可以超过更大的训练不足模型。这对开源社区非常重要。因为并不是所有团队都能训练 175B、280B 或 530B 参数模型。如果能在较小规模上使用高质量数据和充分训练就可以得到更实用、更便宜、更容易部署的模型。这也是后来很多高性能开源模型的重要思路。3. 数据工程变得更加关键如果训练 token 数要增加那么数据质量就变得更重要。因为不是所有 token 都同样有价值。高质量数据可能包括高质量网页 书籍 百科 代码 数学题 论文 问答数据 多语言数据 领域数据低质量数据可能包括重复网页 垃圾文本 乱码 广告 模板化内容 低质量爬虫数据 错误代码 污染评测集的数据因此现代大模型训练越来越重视数据清洗 去重 质量过滤 数据配比 领域采样 训练数据混合策略可以说Chinchilla 之后数据工程在大模型训练中的地位显著上升。4. 推理成本也被重新考虑大模型不仅训练贵推理也贵。如果一个较小但训练充分的模型可以达到更大模型的效果那么它在部署时更有优势。因为推理成本通常和模型参数量密切相关。所以 Chinchilla 的影响不只是训练阶段也影响实际应用模型更小 推理更便宜 部署更容易 微调成本更低这也是为什么很多团队会追求不是最大模型 而是性价比最高的模型。十、Chinchilla 和 LLaMA、Qwen、DeepSeek 的关系Chinchilla 之后很多开源大模型都更重视训练 token 数和数据质量。虽然不同模型的具体训练策略不同但整体趋势非常明显不再只追求参数量最大 而是追求参数量、训练 token、数据质量和推理成本之间的平衡例如 LLaMA 系列就强调使用高质量公开数据进行充分训练。Mistral 等模型强调较小模型的高效性。Qwen、DeepSeek 等模型则进一步在数据、结构、代码数学能力、长上下文和 MoE 等方面做系统优化。这些模型的发展都体现了 Chinchilla 后的一个共同认识模型能力不是只由参数量决定而是由参数量、训练数据、训练策略和模型结构共同决定。因此我们今天看一个模型不能只问它是多少 B 参数还应该问它训练了多少 token 数据质量如何 是否充分训练 是否使用高效结构 推理成本如何 是否做了指令对齐这就是 Chinchilla 对大模型理解方式的长期影响。十一、Chinchilla 的局限性Chinchilla 非常重要但它也不是万能规律。1. 它主要关注预训练 lossChinchilla 研究的是语言模型预训练中的 compute-optimal scaling。它主要关注在固定计算预算下如何降低语言模型 loss。但是今天我们关心的大模型能力不只是 loss。还包括指令跟随 数学推理 代码能力 工具调用 长上下文理解 安全对齐 事实可靠性 Agent 能力这些能力不一定完全由预训练 loss 决定。2. 它没有直接解决数据质量问题Chinchilla 强调训练 token 数但 token 数量不等于 token 质量。同样是 1T tokens高质量数据和低质量数据效果可能差别很大。所以后续模型不能只机械地追求更多 token还必须关注更好的 token3. 它主要针对 dense TransformerChinchilla 的分析主要基于自回归 Transformer 语言模型。后续出现了很多新结构例如MoE GQA MQA MLA 长上下文稀疏注意力 混合专家路由这些结构可能会改变训练和推理成本关系。4. 它主要考虑训练计算不充分考虑推理成本Chinchilla 关注的是训练 compute-optimal。但现实部署中推理成本也非常重要。一个训练上 compute-optimal 的模型不一定在实际服务中总成本最优。如果模型要每天服务大量用户那么推理成本可能远远超过训练成本。所以后续研究开始进一步考虑训练成本 推理成本而不只是训练成本。十二、本文小结本文精读了 Chinchilla 论文Training Compute-Optimal Large Language Models。Chinchilla 关注的问题是在固定训练计算预算下应该训练多大的模型以及使用多少 token它提出大语言模型不能只堆参数。很多早期大模型虽然参数量很大但训练 token 数不足因此可能是 undertrained。在大语言模型训练中三个核心变量是N模型参数量 D训练 token 数 C训练计算量训练计算量可以粗略写成这说明参数量和训练 token 数都会显著影响训练成本。Chinchilla 的核心结论是在 compute-optimal training 下 模型参数量和训练 token 数应该大致同时增长。也就是说模型参数量翻倍 训练 token 数也应该大致翻倍。Chinchilla 论文训练了大量不同规模模型用来拟合参数量、训练 token 数和 loss 之间的关系。最终DeepMind 训练了一个 70B 参数的 Chinchilla 模型使用约 1.4T tokens。虽然它比 280B 参数的 Gopher 小很多但在相近训练计算预算下表现更强。这说明一个更小但训练更充分的模型可能超过一个更大但训练不足的模型。Chinchilla 对后续大模型训练影响很大。它让研究者更加重视训练 token 数 数据质量 模型是否训练充分 参数量和数据量的配比 训练成本和推理成本之间的平衡如果用一句话总结 ChinchillaChinchilla 告诉我们大模型能力不是只靠参数堆出来的而是参数量、训练 token 数和计算预算合理分配的结果。