规模:训多大、喂多少
主线定位
点任一已学环节,看这一步的输入 → 输出形状、参数量,以及它解决了什么问题(数字取自 Qwen/Qwen3.8-27B 真实 config)。
- 上游 · C5 优化:一台完整的模型(C1–C4 搭好)已经训得动:AdamW、warmup 与学习率调度、梯度裁剪。
- 本章:不给流水线加新环节,而是决定它的尺寸——参数 N 多大、喂多少 token D、学习率和 batch 怎么随规模变。锚点 Qwen3.8-27B 的参数量来自真实 config;它的训练 token 数官方没有公开,所以本章用有公开数字的模型对照。
- 下游 · C7 数据:第 3 课的账本默认新数据要多少有多少;C7 问 15T 个高质量 token 从哪来。C8 稳定性第 5 课兑现本章第 4 课埋下的 μP;C14 评测回到「小实验怎么预测大决策」。
本章的贯穿任务:前几章的贯穿例句「小明把苹果给了小王」是一句话,而规模讨论的是一整次训练,一句话里没有 N,也没有 D。所以这一章换成一个任务:「如果要从头训一个 Qwen3.8-27B 这么大的模型,要多少算力、喂多少 token、学习率和 batch 取多少?」项目侧是它的小尺度版:我们 3,688,704 参数的模型,只有 501,615 个训练 token。
本章问题链
每一课只回答一个问题;上一课的失败,逼出下一课的问题。
| 课 | 这一课的问题 | 朴素方案在哪个真数字上失败 | 一句话 |
|---|---|---|---|
| 第 1 课 | 训一个大模型之前,能预测它训完的 loss 吗? | 训完再看:DeepSeek-V3 一次就是 278.8 万 GPU 小时;直线外推又偏乐观(Llama 3 数据:10²² 处预测 0.6574,真实 0.6931) | 先把预算写成 C ≈ 6ND,用小模型拟缩放律外推——但 loss 有个压不掉的底 |
| 第 2 课 | 算力固定,参数 N 和数据 D 怎么分? | 按 Kaplan 主要加参数:Gopher 280B / 300B token 输给同预算的 Chinchilla 70B / 1.4T(MMLU 60.0% 对 67.6%) | 固定算力下 loss 对模型大小是 U 形,谷底处参数和数据同比例长(Chinchilla 设置下约 20 token/参数) |
| 岔路 | 为什么 Kaplan 与 Chinchilla 结论不同?这条「定律」该信几分? | — | 差别来自参数口径和实验设置;连 Chinchilla 自己的系数都被修正过(取整后 92.6 → 重拟合 18.4 token/参数) |
| 第 3 课 | 模型训完要被调用十亿次,还该按「训练最优」来训吗? | 按训练最优:服务 10T token 时总账 2.02e+24 FLOPs,同 loss 的小模型只要 1.44e+24 | 把推理算进账本,就该训更小、更久——上限是新数据的量 |
| 第 4 课 | 小模型上调好的学习率和 batch,放大 100 倍还能用吗? | 直接搬:10¹⁷ FLOPs 的最优学习率是 67B 那一档的 7.5 倍 | 最优学习率随算力变小、batch 随算力变大;要么拟合它们,要么换参数化(μP) |
| 实验课 | 在我们自己的小模型上拟一条缩放律 | — | 小尺度上形状照样能测,但先撞上的是数据墙 |
演进地图
- 解决了loss 随参数、数据、算力按幂律下降:参数翻倍,loss 乘以 0.9487(Kaplan 式 1.1)。幂律的多领域实证首见 Hestness 2017。卡在纯幂律没有底,直线外推偏乐观:Llama 3 的数据只用 ≤3×10²⁰ 的预算外推 10²²,预测 0.6574,真实 0.6931。
- 解决了给出 N ∝ C0.73:预算 ×10,模型 ×5.37、数据只 ×1.86。卡在Gopher 280B 只训 300B token;同预算的 Chinchilla 70B 训 1.4T,MMLU 60.0% → 67.6%。
- 解决了每个预算扫一遍模型大小,loss 呈 U 形,谷底连成前沿:N ∝ C≈0.5,约 20 token/参数。页内用 Chinchilla 的真实点拟得 a = 0.511,外推到 5.76×10²³ 得 67.1B / 1.43T。卡在只算训练的账。模型要服务 10T 个 token 时,按训练最优做的模型总算力 2.02×10²⁴,换成同样 loss 的 34.1B 小模型只要 1.44×10²⁴。
- 解决了Kaplan 偏大的主因找到了:只数非 embedding 参数 + 规模小(Pearce & Song);末层计算、warmup、按规模调优化器(Porian)。卡在Chinchilla 自己的拟合系数也有错:正文取整后的系数在 5.76×10²³ 隐含 92.6 token/参数,Besiroglu 重拟合是 18.4;抛物线法本身也有偏差(Llama 3 数据上相当于 6.5% 的预算配错)。
- 解决了把推理的 2N FLOPs/token 算进总账,最优模型变小、数据变多:Llama 3 8B 1,875 token/参数,Qwen3-0.6B 60,000。卡在小模型上调好的超参搬不过去:按 DeepSeek LLM 的式子,10¹⁷ FLOPs 的最优学习率是 67B 那一档的 7.5 倍。
- 解决了最优学习率、batch 写成 C 的幂律:DeepSeek LLM 7B 预测 η = 4.25e-4,实际用 4.2e-4。卡在换结构、换优化器,最优点就挪:Qwen3.8 报告里旧配方末了 loss 高 7.8e-3、下游平均低 4.14 分(自报);多数团队不公开系数。
- 解决了缩放不止一条轴:数据从哪来(C7)、测试时多想一会儿(C12)都进了预算。卡在高质量数据会先用完:我们项目只有 50 万 token 语料,val 在第 300 步(约 4.9 个 epoch)最低 4.7713,之后一路升到 6.9065(实验课)。
三层交互
| 层 | 本章里的组件 | 在哪一课 |
|---|---|---|
| 概念动画 | 先猜形状再揭晓、线性 / log-log 切换(前沿点);等算力线上的 U 形与三段拆分(拖预算看谷底移动);演进地图 | 第 1、2 课,各课开头 |
| 算法模拟器(真算法、小数据) | C ≈ 6ND 逐项账本与上下文项;逐预算抛物线拟合与前沿直线;变量投影拟合 L = E + A/Nα + B/Dβ(最小二乘 / Huber-IRLS)与敏感性探针;系数取整探针;等 loss 曲线上的总算力最优;超参缩放律 | 第 1–4 课、岔路课 |
| 真数据 / 真模型 | Open Athena 整理公开的 IsoFLOP 实验点:Chinchilla 123 点(Besiroglu 从论文矢量图重建)、Llama 3 133 点,页内拟合并与 python 独立计算逐项对照;公开模型的真实参数量与训练 token 数(各带出处);我们自己项目的真实训练日志(数据受限的过拟合曲线、模型大小扫描、小网格 IsoFLOP、宽度 × 学习率扫描) | 第 1–4 课、实验课 |
真数据的来源:Open Athena 数据集 open-athena/isoflop-experiments(Apache-2.0(数据集卡片 license 字段),revision {src.revision.slice(0, 8)},97,943 字节,sha256 已核),由 src/data/precomputed/gen_c06_isoflop.py 转成 c06-isoflop.json;脚本同时用 numpy 重算了页面上的每一个拟合结果,组件在浏览器里现算后逐项对照。
项目推进:给我们的模型定规模
对应 04-实践项目/MILESTONES.md 的「C8 规模(scaling law)」(项目文件的章号与课程章号不同)。分工照旧:代码 AI 来写,决策你来做。实验汇总成 知识平台/src/data/project/c06-scaling.json,格式见 C6 设计卡「项目实验数据约定」。
你要拍板的三件事
- 要不要把模型做大?语料只有 501,615 个 token,按 20 token/参数只配得上约 25,081 个参数;基线 3,688,704 个参数按 20× 需要约 74M token,我们不到 1%。(第 2、3 课,实验课一、三)
- 固定算力,花在更大的模型还是更多的步数上?用小网格 IsoFLOP 的谷底回答,不用 20× 硬套。(第 2 课,实验课二)
- 学习率要不要随宽度调?用宽度 × 学习率扫描回答;如果漂移,记下来交给 C8 的 μP。(第 4 课,实验课四)
验收标准(全部可测):
- 至少 5 个规模点,给出 log-log 拟合的指数与 R²;
- 指出 val 最低点所在的步数与 epoch(已有真实日志:第 300 步,4.7713,约 4.9 个 epoch;之后升到 6.9065);
- 小网格 IsoFLOP 每个预算的谷底 N,与 √(C/120)(20× 估算)对比,并解释差异(数据重复);
- 解释曲线在大模型端变平或上翘的原因。
- 旧版课程「模型约 50M × 20 = 10 亿 token」的预算建在错误的参数量上(2026-09 迁移审计),此处一律用实测参数量。
坑与带走
| 坑 | 症状 | 后果 | 怎么办 |
|---|---|---|---|
| 用 log-log 直线外推 loss | 预测的大模型 loss 总比实际好 | 高估大模型、低估所需算力 | 带上不可约项 E 再外推(第 1 课) |
| 跨数据集、跨分词比 loss 绝对值 | 「A 模型 0.7,B 模型 2.2,A 好得多」 | 结论无意义 | 只比同一套实验内的相对变化与指数(第 1 课) |
| 把 6ND 当精确值 | 长上下文 / MoE 的算力估计偏差大 | 预算定错 | 写明口径:激活参数、上下文项、各家算法(第 1 课) |
| 盲信「20 token/参数」 | 当铁律用在任何数据、任何模型上 | 训练最优点算错;也忽略了推理成本 | 20 是 Chinchilla 设置下的拟合值,随数据和拟合方法变;部署前先算推理账(第 2、3 课,岔路) |
| 引用缩放律不带条件 | 「Chinchilla 说……」「Kaplan 说……」 | 把被修正过的系数当真 | 连同数据、参数口径、拟合方法、系数位数一起引用(岔路课) |
| 以为数据够多就能一直过训练 | val loss 先降后升 | 模型背书 | 新数据才算数;重复超过约 4 个 epoch 收益递减(第 3 课、实验课) |
| 小模型的学习率、batch 直接搬到大模型 | 早期 loss 尖峰、收敛慢 | 次优甚至发散 | 按超参缩放律换算,或用 μP(第 4 课,C8) |
这一章你应该带走的(各课「一句话」):
- 大模型只训得起一次,所以先把预算写成 C ≈ 6ND,再用一串小模型把 loss 随算力的规律拟出来外推——但那条线不是直的,loss 有个压不掉的底。
- 算力固定时,loss 对模型大小是一条 U 形谷:太小装不下,太大喂不饱。谷底随预算右移,参数和数据大致同比例长——在 Chinchilla 的设置下约 20 token/参数,但这个数随数据和拟合方法变。
- Kaplan 与 Chinchilla 的差别主要来自参数口径和实验设置,连 Chinchilla 自己的系数也被复现者修正过:缩放律是经验规律,引用时要连同数据、口径和拟合方法一起引用。
- 训练最优只算训练的账;模型要被调用很多次,就把训练多花的算力换成更小、更便宜的推理——所以现代小模型的 token/参数远超 20,上限则由「有多少新数据」决定。
- 超参不是常数:最优学习率随算力变小、最优 batch 随算力变大,结构和优化器一换还会整体挪动——要么拟合超参的缩放律,要么换一种参数化让它们不随规模变。
- 在我们的小尺度上,缩放律的形状照样可以测,但先撞上的是数据墙。
深入这一章
每条都在 2026-09-26 实际打开核对过:写清它讲清了什么、对应哪一课、为什么推荐。
🎮 想更直观 10–30 分钟
🔬 想吃透原理 1–3 小时
📄 想读原文 按需
排除了什么(也是筛选标准):① 知乎专栏《Chinchilla Scaling Law,数据量与模型参数的最佳配比》(旧版课程收录过)——本轮访问返回 403,无法核对内容,暂不收;② B 站《Scaling Laws for Neural Language Models》(BV1Px4y157vF)——简介只贴了一个 YouTube 链接的搬运,约 450 播放,无法确认授权与原作者;③ B 站南京大学《操作系统原理》2026 的旁支讲《LLM, Agents 和 Scaling Law》——课堂讨论,不讲缩放律的拟合与分配,和本章问题不对口;④ Epoch AI 的复现博文——与原论文 2404.10102 内容重复,直接读论文;⑤ 只给「参数 × 20 = token 数」结论、不讲来历和适用条件的速通文——正是本章要纠正的用法。另注:李沐的论文精读系列没有 Kaplan / Chinchilla 这两篇(旧版课程已核对)。