精读笔记:Training Compute-Optimal Large Language Models(Chinchilla)
论文基本信息
| 项目 | 内容 |
|---|---|
| 论文标题 | Training Compute-Optimal Large Language Models |
| 俗称 | Chinchilla 论文 |
| 作者 | Jordan Hoffmann, Sebastian Borgeaud, Arthur Mensch 等(DeepMind 团队) |
| 机构 | Google DeepMind |
| 发表 | NeurIPS 2022 / arXiv 2022.03(arXiv: 2203.15556) |
| 影响 | 直接催生了 LLaMA 系列;颠覆了此前"参数越多越好"的主流信条 |
阅读地图
本文分以下几个层次递进阅读:
- Abstract → 一句话读懂核心结论
- Introduction → 理解问题背景、与 Kaplan 的分歧
- Section 3(三种方法) → 理解如何严谨地推导出"等比例扩展"规律(精读重点)
- Section 4(Chinchilla 实验) → 用 Chinchilla vs Gopher 验证结论
- Conclusion → 对领域的启示
核心术语速查(首次出现时会详细解释):
- FLOP:浮点运算次数,衡量算力的单位
- Token:语言模型的基本处理单位,约等于半个英文单词
- Compute-optimal:在固定算力预算下,如何分配才能让效果最好
- IsoFLOP:等算力曲线,即在同一算力预算下比较不同模型
一、Abstract(摘要)精读
段落 1:研究问题
原文:We investigate the optimal model size and number of tokens for training a transformer language model under a given compute budget.
翻译:我们研究在给定计算预算的条件下,训练一个 Transformer 语言模型的最优模型规模和 Token 数量。
讲解:
这篇论文问的核心问题是:钱(算力)有限,应该怎么花?
想象你有 100 万元要买一支足球队:是买 10 个超级球星,但每人只练 1 个月?还是买 5 个好球员,每人练 6 个月?论文就是在回答这个"配置问题",只不过"球星"是模型参数,"练习时间"是训练数据量(Token 数)。
段落 2:核心发现
原文:We find that current large language models are significantly undertrained, a consequence of the recent focus on scaling language models whilst keeping the amount of training data constant.
翻译:我们发现,当前的大型语言模型存在严重的训练不足问题,这是近期研究只关注扩大模型规模而保持训练数据量不变所导致的后果。
讲解:
这是整篇论文最重要的一句话。
"训练不足(undertrained)"是什么意思?
类比:想象一个天才(大模型)被关在图书馆里,但图书馆只有 300 本书(300B token)。天才再聪明,读完这 300 本书就没东西可学了,能力也就停滞在这里。如果换一个聪明程度只有一半的学生(参数量一半的模型),但给他 600 本书(600B token)——结果很可能是后者表现更好。
之前的研究(主要以 Kaplan 2020 为代表)虽然也研究了"规模律(Scaling Law)",但他们的研究方式有个缺陷:他们在所有实验中都用了差不多固定的 Token 数量,这导致结论偏向"多增加参数、少增加数据"。本文纠正了这个偏差。
段落 3:实验规模与结论
原文:By training over 400 language models ranging from 70 million to over 16 billion parameters on 5 to 500 billion tokens, we find that for compute-optimal training, the model size and the number of training tokens should be scaled equally: for every doubling of model size the number of training tokens should also be doubled.
翻译:通过训练超过 400 个语言模型(参数量从 7000 万到超过 160 亿,训练 Token 从 50 亿到 5000 亿),我们发现,对于计算最优训练(compute-optimal training),模型规模和训练 Token 数应该等比例扩展:每当模型规模翻倍,训练 Token 数也应该翻倍。
讲解:
术语解释:
- 参数量(Parameters):模型"学习"到的知识存储量,可以理解为模型有多少个"知识格子"
- Token:文本被切分后的基本单位。"Hello World"大约是 2 个 token;中文一个字大约是 1 个 token
- Compute-optimal(计算最优):在固定算力预算下,能达到最好效果的训练方案
核心结论的白话版:
如果你的算力翻倍了——不应该只是把模型做大一倍,而应该同时把模型做大一倍、数据也增加一倍。
这与之前主流做法(Kaplan 定律建议:算力翻 10 倍 → 模型增大 5.5 倍,但 Token 只增加 1.8 倍)形成了鲜明对比。
段落 4:Chinchilla 的验证
原文:We verify our findings by training a neural language model, which we call Chinchilla, using the same compute budget as Gopher but with 70B parameters and 1.4 trillion tokens. Chinchilla uniformly and significantly outperforms Gopher on a large range of downstream evaluation tasks, with Chinchilla achieving 67.5% on the MMLU benchmark, greater than a 7% improvement over Gopher.
翻译:我们通过训练一个神经语言模型来验证我们的发现,该模型被命名为 Chinchilla——使用与 Gopher 相同的计算预算,但参数量为 700 亿,训练 Token 为 1.4 万亿。Chinchilla 在大量下游评估任务上全面且显著地优于 Gopher,在 MMLU 基准测试上达到 67.5%,比 Gopher 提升超过 7%。
讲解:
关键数字对比:
| 模型 | 参数量 | 训练 Token | 算力预算 |
|---|---|---|---|
| Gopher(DeepMind 2021) | 280B(2800亿) | 300B(3000亿) | 相同 |
| Chinchilla(本文) | 70B(700亿) | 1.4T(1.4万亿) | 相同 |
Chinchilla 参数量只有 Gopher 的 1/4,但数据量是 Gopher 的 约 5 倍。两者花费相同的算力(钱)——结果 Chinchilla 赢了。
MMLU 是什么?MMLU(Massive Multitask Language Understanding)是一个覆盖 57 个学科的综合知识测试,就像一个覆盖数学、历史、法律、医学的高考。Chinchilla 67.5% vs Gopher 60%,提升超过 7 个百分点,是非常显著的进步。
二、Introduction(引言)精读
段落 1:LLM 的现状
原文:Recently a series of Large Language Models (LLMs) have been introduced, with the largest dense language models now having over 500 billion parameters. These models have shown impressive performance on many tasks via zero-shot and few-shot learning.
翻译:近年来,一系列大型语言模型相继问世,最大的稠密语言模型参数量已超过 5000 亿。这些模型通过零样本和少样本学习,在许多任务上展现出令人印象深刻的表现。
讲解:
- 零样本(Zero-shot):不给例子直接问,模型也能回答
- 少样本(Few-shot):给几个例子示范,模型就能举一反三
2022 年初,大家都在卷"谁的模型参数更多",GPT-3 有 1750 亿,MT-NLG 有 5300 亿……这种趋势让 DeepMind 的研究者产生了疑问:这些模型真的被充分训练了吗?
段落 2:固定算力下的最优化问题
原文:In practice, the allocated training compute budget is often known in advance: how many accelerators are available and for how long we want to use them. Since it is typically only feasible to train these large models once, accurately estimating the best model hyperparameters for a given compute budget is critical.
翻译:在实践中,分配的训练计算预算通常是事先知道的:有多少加速器可用,以及我们打算使用多长时间。由于通常只能训练一次这些大型模型,因此准确估计给定计算预算下的最佳模型超参数至关重要。
讲解:
训练大模型就像发射卫星——发射前你必须把所有参数都算好,因为你只有一次机会。没有人能负担得起反复尝试"训练 1000 亿参数的模型"和"训练 500 亿参数的模型"来看哪个更好——光是一次训练就要花费数百万美元和数月时间。
所以,在实际开始训练之前,就需要科学地预测最优配置,这就是本文的价值所在。
段落 3:与 Kaplan 定律的分歧
原文:Specifically, given a 10× increase computational budget, they suggest that the size of the model should increase 5.5× while the number of training tokens should only increase 1.8×. Instead, we find that model size and the number of training tokens should be scaled in equal proportions.
翻译:具体来说,Kaplan 等人建议,算力预算增加 10 倍时,模型规模应该增加 5.5 倍,而训练 Token 数仅需增加 1.8 倍。相反,我们发现模型规模和训练 Token 数应该等比例扩展。
讲解:
Kaplan 定律 vs Chinchilla 定律的对比:
| 算力增加 10 倍 | Kaplan 建议 | Chinchilla 发现 |
|---|---|---|
| 模型大小 | 增加 5.5 倍 | 增加 ~3.2 倍 |
| Token 数 | 增加 1.8 倍 | 增加 ~3.2 倍 |
为什么 Kaplan 的结论会有偏差?
原文给出了解释:Kaplan 的实验"使用了固定的训练 Token 数和学习率调度来训练所有模型(use a fixed number of training tokens and learning rate schedule for all models),这使他们无法建模这些超参数对损失的影响"。
简单说:Kaplan 的实验设计有缺陷——他们没有系统地变化数据量,导致结论偏向"堆参数"。
段落 4:核心预测
原文:Based on our estimated compute-optimal frontier, we predict that for the compute budget used to train Gopher, an optimal model should be 4 times smaller, while being trained on 4 times more tokens.
翻译:基于我们估计的计算最优前沿,我们预测,对于用于训练 Gopher 的计算预算,最优模型应该小 4 倍,同时在 4 倍多的 Token 上训练。
讲解:
这是本文最有力的一个预言。Gopher 是 DeepMind 自己的模型(280B 参数,300B token),他们用同样的钱,造了一个小 4 倍(70B)但数据多 4 倍(1.4T token)的模型——Chinchilla——然后证明了这个预言是对的。
这种"用自家旧模型作对照组"的设计,让结论非常有说服力。
三、Section 3:三种估计方法(精读重点)
这是全文技术含量最高的部分,作者用三种完全不同、相互独立的方法,都得出了同样的结论,从而大大增强了可信度。
方法一:固定模型族,变化训练步数(Approach 1)
原文:In our first approach we vary the number of training steps for a fixed family of models (ranging from 70M to over 10B parameters), training each model for 4 different number of training sequences.
翻译:在第一种方法中,我们对固定的模型族(参数量从 7000 万到超过 100 亿)变化训练步数,对每个模型使用 4 种不同的训练序列数进行训练。
讲解:
实验设计思路:
- 取一组大小不同的模型(比如 1亿、3亿、10亿、30亿参数……)
- 每种大小的模型都训练 4 次,每次训练步数不同(对应不同的数据量)
- 记录每种配置在每个算力点上能达到的最低损失值(loss)
然后做什么?
对每一个"固定算力",找出哪种参数量的模型能达到最低损失——这就给出了"最优参数量 vs 算力"的对应关系。
原文(关键结论):We find that a=0.50 and b=0.50.
翻译:我们发现 a=0.50,b=0.50。
讲解:
这里的 a 和 b 是什么意思?
论文建立了两个关系:
- 最优参数量 N_opt ∝ C^a (C 是算力预算)
- 最优 Token 数 D_opt ∝ C^b
a=0.50 意味着:算力增加 100 倍 → 最优模型参数量增加 10 倍(100^0.5 = 10)
b=0.50 意味着:算力增加 100 倍 → 最优 Token 数也增加 10 倍
两个指数相等(都是 0.50),这就是"等比例扩展"的数学含义。
方法二:IsoFLOP 曲线(Approach 2)
原文:In our second approach we vary the model size for a fixed set of 9 different training FLOP counts (ranging from 6×10^18 to 3×10^21 FLOPs), and consider the final training loss for each point.
翻译:在第二种方法中,我们对 9 个固定的训练 FLOP 数(从 6×10^18 到 3×10^21 FLOPs),变化模型大小,并考察每个点的最终训练损失。
讲解:
术语:FLOP(浮点运算次数)
FLOP 是衡量算力消耗的基本单位。训练一个 10 亿参数的模型处理 1 个 token,大约需要 2 GFLOP(20 亿次浮点运算)。
- 6×10^18 FLOP ≈ 中等算力
- 3×10^21 FLOP ≈ 大规模算力(接近训练 GPT-3 级别)
术语:IsoFLOP(等算力曲线)
"Iso"源自希腊语,意为"相同"。IsoFLOP 曲线就是:在固定总算力的条件下,改变模型参数量,观察最终损失如何变化——得到的曲线形状像一个"U 形",U 的最低点就是最优参数量。
实验逻辑(形象化):
想象你有 1000 元钱(固定算力)要买食材做饭:
- 方案 A:买很贵的食材(大模型),但钱不够,只买了一点点,煮了一小锅
- 方案 B:买中等价格的食材(中等模型),量刚刚好
- 方案 C:买便宜食材(小模型),量很多,但一个人吃不完,浪费了
方案 B 通常最优,这就是 IsoFLOP 曲线最低点的含义。
结果:这种方法得出 a≈0.49,b≈0.51,与方法一几乎完全一致。
方法三:拟合参数化损失函数(Approach 3)
原文:Lastly, we model all final losses from experiments in Approach 1 & 2 as a parametric function of model parameter count and the number of seen tokens.
翻译:最后,我们将方法一和方法二中所有实验的最终损失,建模为模型参数量和已见 Token 数的参数化函数。
核心公式:
原文:L̂(N,D) ≜ E + A/N^α + B/D^β
翻译:预测损失 L̂(N,D) = E + A/N^α + B/D^β
讲解:公式中每一项的含义
这个公式把语言模型的损失分解成三个独立的部分:
第一项:E(基础熵值,Bayes 风险)
即使有无限参数和无限数据,自然语言本身的不确定性导致的不可消除的最低误差。就像考试有一道题答案本身就是随机的,再聪明也猜不中——这是"天花板之下的地板"。
第二项:A/N^α(模型容量不足的损失)
参数量 N 越大,这一项越小。即便数据无限,一个容量有限的模型也无法完美拟合语言的所有规律。就像用一个小杯子(参数有限)装水(知识),总会溢出一些。
第三项:B/D^β(训练不足的损失)
训练 Token 数 D 越大,这一项越小。即便模型足够大,如果给的训练数据太少,模型没有充分学习。就像天才读的书太少,知识没有被充分激活。
方法三的优势:不只是找最优点,而是建立了一个完整的损失预测模型,可以对任意 (N, D) 组合预测性能,外推到更大的计算预算。结果得出 a≈0.46,b≈0.54,与前两种方法一致。
三种方法的汇总
原文:All three approaches suggest that as compute budget increases, model size and the amount of training data should be increased in approximately equal proportions.
翻译:三种方法都表明,随着计算预算的增加,模型规模和训练数据量应该以大约相等的比例增加。
讲解:
| 方法 | 参数量指数 a | Token 数指数 b |
|---|---|---|
| 方法一 | 0.50 | 0.50 |
| 方法二 | 0.49 | 0.51 |
| 方法三 | 0.46 | 0.54 |
| 平均 | ~0.49 | ~0.51 |
三种完全独立的方法,结论高度一致:a ≈ b ≈ 0.5,即参数量和 Token 数应该等比例扩展。
实际含义——"约 20 tokens per parameter"
根据论文的 Table 3(计算最优前沿数值):
- 67B 参数 → 配 1.5 万亿 Token → 约 22 tokens/参数
- 175B 参数 → 配 3.7 万亿 Token → 约 21 tokens/参数
这就是业界流传的"大约 20 个 token 配 1 个参数"经验法则的来源(论文用等比例扩展表述,具体数值从 Table 3 可算出约为 20~22)。
类比总结:一个人需要配足够的书
把模型参数量想象成一个人的脑容量,把训练 Token 想象成他读过的书的页数。
- Kaplan 的建议:多买聪明人(增加参数),给每人看的书不必太多(Token 增加少)
- Chinchilla 的发现:聪明人和书要等比例增加。一个 1000 页脑容量的人,需要读约 20000 页的书才能"学透"
之前那些"训练不足"的大模型,就像是一屋子天才,但书架上只有几百本书——明显浪费了脑容量。
计算最优前沿表(Table 3 关键数据)
| 模型参数量 | 所需算力(FLOPs) | 最优 Token 数 |
|---|---|---|
| 4 亿 | 1.92×10^19 | 80 亿 |
| 10 亿 | 1.21×10^20 | 202 亿 |
| 670 亿 | 5.76×10^23 | 1.5 万亿 |
| 1750 亿 | 3.85×10^24 | 3.7 万亿 |
| 2800 亿 | 9.90×10^24 | 5.9 万亿 |
关键解读:Gopher 的算力约为 5.76×10^23 FLOPs,对应的最优模型应该是 67B 参数 + 1.5T Token——而不是 Gopher 实际使用的 280B 参数 + 300B Token。这就是作者说 Gopher "substantially over-sized(严重过大)"的依据。
四、Chinchilla 实验(Section 4)精读
Chinchilla 的设计
原文:Based on our analysis in Section 3, the optimal model size for the Gopher compute budget is somewhere between 40 and 70 billion parameters.
翻译:基于第 3 节的分析,对于 Gopher 的计算预算,最优模型大小在 400 亿到 700 亿参数之间。
原文:Chinchilla uses the same compute budget as Gopher but with 70B parameters and 1.4 trillion tokens.
翻译:Chinchilla 使用与 Gopher 相同的计算预算,但参数量为 700 亿,训练 Token 为 1.4 万亿。
核心训练配置对比:
| 模型 | 参数量 | Token 数 | 算力(FLOPs) |
|---|---|---|---|
| Gopher | 280B | 300B | 5.76×10^23 |
| Chinchilla | 70B | 1.4T | 5.76×10^23(相同) |
注意:两者花了完全相同的钱(算力),只是分配方式不同。
Chinchilla 的训练技术细节:
- 优化器:AdamW(相比 Gopher 使用的 Adam,AdamW 对权重衰减处理更好)
- 修改了 SentencePiece 分词器(去除了 NFKC 归一化)
- 在分布式优化器状态中使用 Float32 权重副本(提升训练稳定性)
Chinchilla vs Gopher:全面实验结果
MMLU(综合知识测试)
原文:On this benchmark, Chinchilla significantly outperforms Gopher despite being much smaller, with an average accuracy of 67.6% (improving upon Gopher by 7.6%).
翻译:在这个基准测试上,Chinchilla 尽管参数量小得多,但显著优于 Gopher,平均准确率达到 67.6%(比 Gopher 提升 7.6%)。
| 模型 | MMLU 准确率(5-shot) |
|---|---|
| GPT-3(175B) | 43.9% |
| Gopher(280B) | 60.0% |
| Chinchilla(70B) | 67.6% |
一个 1/4 大的模型,在知识测试上超过了更大的前辈 7.6 个百分点。
语言建模(The Pile 数据集)
原文:Chinchilla significantly outperforms Gopher on all evaluation subsets of The Pile.
翻译:Chinchilla 在 The Pile 的所有评估子集上都显著优于 Gopher。
- WikiText-103 困惑度(perplexity):Chinchilla 7.16 vs Gopher 7.75(越低越好)
阅读理解
| 基准 | Chinchilla | Gopher |
|---|---|---|
| LAMBADA | 77.4% | 74.5% |
| RACE-m | 86.8% | 75.1% |
| RACE-h | 82.3% | 71.6% |
BIG-bench(综合能力测试)
原文:Chinchilla out performs Gopher on all but four of the 62 tasks, achieving 65.1% average accuracy versus Gopher's 54.4%.
翻译:Chinchilla 在 62 项任务中的 58 项上优于 Gopher,平均准确率 65.1%,而 Gopher 为 54.4%。
问答
| 基准 | Chinchilla | Gopher |
|---|---|---|
| Natural Questions(5-shot) | 31.5% | 24.5% |
| TriviaQA(5-shot) | 73.2% | 63.6% |
推理效率:更小模型的额外优势
原文:Due to being 4× smaller than Gopher, both the memory footprint and inference cost of Chinchilla are also smaller. This also means that Chinchilla uses substantially less compute for fine-tuning and inference, greatly facilitating downstream usage.
翻译:由于比 Gopher 小 4 倍,Chinchilla 的内存占用和推理成本也更小。这意味着 Chinchilla 在微调和推理时使用的算力大幅减少,极大地促进了下游应用。
讲解:
这是一个被很多人忽视的重要点:Chinchilla 的优势不仅在于训练时更高效,还在于:
- 推理更省钱:每次让模型回答一个问题(推理),Chinchilla 只需要 Gopher 1/4 的算力
- 微调更便宜:在特定任务上继续训练(微调/fine-tuning),成本大幅降低
- 部署更容易:占用显存更少,可以在更普通的硬件上运行
这一点直接影响了后续研究的走向——你不需要最大的模型,你需要的是"训练最充分"的模型。
五、Conclusion(结论)精读
原文:The trend so far in large language model training has been to increase the model size, often without increasing the number of training tokens. The largest dense transformer, MT-NLG 530B, is now over 3× larger than GPT-3's 170 billion parameters from just two years ago. However, this model, as well as the majority of existing large models, have all been trained for a comparable number of tokens—around 300 billion.
翻译:迄今为止,大型语言模型训练的趋势一直是增加模型规模,却往往不增加训练 Token 的数量。最大的稠密 Transformer——MT-NLG 530B,比两年前 GPT-3 的 1700 亿参数大了 3 倍多。然而,这个模型以及现有的大多数大型模型,都只训练了大约相当数量的 Token——约 3000 亿。
讲解:
这段话是对当时(2022 年初)行业现状的一个辛辣诊断:
- 模型大小:GPT-3(175B)→ Gopher(280B)→ MT-NLG(530B),翻了 3 倍多
- 训练数据:几乎所有人都用约 300B token,没怎么增加
这就像:大家都在不断扩建图书馆(参数量越来越大),但书架上的书(训练数据)却一直没怎么增加。
结论:数据为王
原文:an increased focus on dataset scaling is needed.
翻译:需要更多地关注数据集规模的扩展。
讲解:
这是本文对整个领域的最重要建议。"Scaling Law"以往主要关注参数量的扩展,本文指出数据量的扩展同样重要,甚至被低估了。
这一洞见深刻影响了后续工作:
- LLaMA(Meta,2023):直接将 Chinchilla 定律作为设计准则,用 LLaMA-1(7B~65B)配大量 Token(1T~1.4T),以更小的参数量实现了接近 GPT-3/4 的效果
- LLaMA-2/3:继续沿用这一路线,LLaMA-3 8B 模型用了 15T+ token 训练
- 整个开源社区转向"小而精、数据充足"的方向
六、附录(一句话概述)
附录主要包含:详细的超参数设置、额外的消融实验(验证各个设计选择的贡献)、更完整的基准测试结果表格,以及参数化损失函数的数学推导细节。核心结论均已在正文中体现,感兴趣的读者可参考原文附录获取实验的完整数值。
七、总结:Chinchilla 的颠覆性意义
颠覆了什么?
之前的主流认知(Kaplan 2020 定律):
- 算力增加 → 主要增加参数量
- 数据量增长远慢于参数量
- 大家疯狂追求"最多参数":GPT-3 175B → OPT 175B → MT-NLG 530B
Chinchilla 之后的新认知:
- 参数量和 Token 数应该等比例增长
- 当时所有"领先"的大模型其实都是训练不足的
- 花同样的钱,更小但训练更充分的模型,效果更好
实践影响
| 影响领域 | 具体表现 |
|---|---|
| 学术研究 | 规模律研究方向从"纯参数量"转向"参数量+数据量联合优化" |
| 工业落地 | 推理成本大幅下降(Chinchilla 级模型更易部署) |
| 开源社区 | LLaMA 系列直接采用 Chinchilla 准则,推动开源模型爆发 |
| 数据重视度 | 高质量训练数据变得和模型规模同等重要 |
核心类比(全文总结)
想象培养一位学者(语言模型):
过去的做法(Kaplan 路线):买一个拥有超大脑容量的天才(参数多),但只给他读 300 本书(Token 少)——天才被"饿坏了",能力没有完全发挥。
Chinchilla 的发现:脑容量和读书量要同步增长。一个脑容量是前者 1/4 的普通学者,如果给他读 4 倍多的书("饥饿的天才"变成"博览群书的好学者")——他的实际表现反而更好,而且培养成本(训练算力)完全一样。
结论:不是"越聪明越好",而是"聪明程度和知识积累要相匹配"。
本笔记基于 ar5iv.labs.arxiv.org 原文撰写,关键数字均源自论文原文。如有疑问请对照原始 arXiv:2203.15556 核实。