深夜十一点,整座城市即将入睡,街角的“夜猫子小餐馆”却刚迎来今天最忙的一轮。老板翻开账本,发现一个朴素的规律:这个月花在经营上的心思越多,客人评分就越高。可“心思”太模糊了,他需要把每一分钱都掰开算——多请一位厨师,能做更精致的菜;多进一批食材,能招待更多客人;多装修一面墙,客人的体验会更好。他真正需要回答的问题是:预算有限时,钱该往哪儿花?花出去之后,满意度到底能涨多少? 这正是大模型领域“计算缩放”(Compute Scaling)研究的核心命题:把训练模型的总算力当作预算,把损失函数当作客人满意度,研究“投入更多算力,模型性能到底如何提升”。研究者发现,这条提升曲线不是线性的,而是遵循一条优美的幂律;更奇妙的是,当算力翻倍时,模型参数和训练数据应该按一个“黄金比例”同时扩张——这个比例由 Chinchilla 论文给出。本文就用这家深夜小餐馆的故事,带你读懂 Transformer 扩展中的计算缩放规律。

岗位关联

对 AI 从业者而言,计算缩放是训练预算分配、模型规模选型、数据量估算的“指南针”——它告诉你手里的 1000 张显卡,究竟该养多大的模型、喂多少数据。

目录
  1. 可视化演示
  2. 缩放定律:一笔总账
  3. 三个幂律:投入产出的一笔账
  4. 边际递减:加菜的快乐在缩水
  5. 最优配比:Chinchilla 的黄金比例
  6. 训练指导:预算怎么花最值
  7. 局限与展望:规模不是万能药
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

缩放定律:一笔总账

老板的第一课,是把“用心经营”翻译成账本上的数字。多请一位手艺精湛的厨师,菜单能升级;多进一批当天捕捞的食材,翻台率能提升;多刷一面墙、换一盏暖灯,客人评分会悄悄上涨。可预算只有这么多,他必须知道每一项投入和最终满意度之间,到底存在什么样的对应关系。

在训练大模型时,研究者同样需要一本总账。模型参数量 $N$——好比厨师人数,决定了模型手艺的上限;训练数据量 $D$——训练语料中的 token 总数,好比进货量,决定了模型见过的世面。二者并不是独立花钱的:训练时模型每处理一个 token,每个参数都要参与前向和反向传播运算。这笔账可以写成一条近乎铁律的关系式:

其中 $C$ 是总计算量。6 这个常数来自经验折算:一个参数处理一个 token,大约需要 6 次浮点运算(前向 2 次、反向 4 次)。有了这本账,老板再也不会被供应商忽悠“多加三倍食材一定火”——因为总预算 $C$ 就摆在那里,加食材就必须在别处省。这本账,是一切缩放规律分析的起点。

账本合上,老板长舒一口气。他终于能把“用心经营”四个字拆成两个可以比较的项目了。接下来真正的问题浮出水面:钱花出去,客人满意度到底按什么形状往上涨?

C≈6NDC \approx 6ND
  1. 总计算量 C训练全程消耗的浮点运算总次数,是硬件投入的“总预算”。
    CC
  2. 参数量 N模型里可学习的权重个数,决定模型表达能力的上限。
    NN
  3. 数据量 D训练语料包含的 token 总数,决定模型见多识广的程度。
    DD
  4. 常数 6每个参数处理每个 token 时约需 6 次浮点运算,是前向与反向传播的经验折算系数。
    66

三个幂律:投入产出的一笔账

老板决定先观察“加厨师”的效果。他做了一个实验:从 1 位厨师加到 2 位,好评率涨了不小;从 9 位加到 10 位,评分的提升却几乎微不可察。把散点画在图纸上,他惊讶地发现,满意度曲线像一条被压弯的滑梯,越往后越平。这种“投入增多、产出增速放缓”的曲线,数学上有一个优雅的名字——幂律。

研究者对大规模语言模型做了同样的实验,得到了三条关键的幂律。第一条,固定数据量、只增大参数量 $N$,损失 $L$ 按幂律下降:

类似地,固定参数量、只增大数据量 $D$,损失按另一条幂律下降:$L(D) = (D_c/D)^{\alpha_D}$。当参数和数据同时扩张时,总损失 $L$ 与总算力 $C$ 之间同样服从幂律 $L(C) = (C_c/C)^{\alpha_C}$。这三条幂律合称“三个幂律”,它们共同勾勒出大模型能力成长的骨架。

如果把幂律曲线画在对数坐标纸上,它会变成一条直线,斜率就是 $\alpha$。老板看着这条直线恍然大悟:加厨师确实有用,但越往后,每一位新厨师的贡献都在缩水。这种缩水是否无法避免?他决定把注意力转向另一条曲线。

L(N)=(NcN)αNL(N) = \left(\frac{N_c}{N}\right)^{\alpha_N}
  1. 当前损失 L模型在验证集上的损失值,越低代表能力越强,对应餐馆的客人评分。
    L(N)L(N)
  2. 参数量 N当前模型规模,厨师人数的技术版。
    NN
  3. 归一化常数 N_c使得 $N=N_c$ 时损失恰为 1 的基准规模,是曲线的“标尺”。
    NcN_c
  4. 缩放指数 α_N控制损失随参数量下降的速度,α 越大,同样投入带来的收益越明显。
    αN\alpha_N

边际递减:加菜的快乐在缩水

周末晚上,老板为老主顾免费加了一道招牌甜点。第一份甜品端上来,客人眼睛发亮;第二份,客人笑着摆手;第三份,客人已经开始后悔刚才多吃了一碗面。同样的道理,在训练大模型时,无论你加大哪一边的投入,收益都会逐级缩水——这就是“边际递减”。

数学上,把损失 $L$ 看作算力 $C$ 的函数,边际递减意味着损失在持续下降,但下降的斜率越来越平缓:

更深一层,边际递减的根源在于“固定的另一头”。当数据量 $D$ 固定时,参数涨到一定程度,模型已经把现有数据里的规律吃干榨净,再加参数也只是重复记忆;当参数量 $N$ 固定时,数据再多,模型的“肚量”也装不下。损失函数 $L(N,D) = A/N^\alpha + B/D^\beta + E$ 中,前两项就像厨师手艺分和食材新鲜分,任何一项单独拉满,另一项都会立刻成为瓶颈。

老板记下这条铁律:边际递减不是某一项投入的问题,而是“配比失衡”的信号。既然单独加什么都不划算,那同时加呢?他翻开了那篇改变他认知的论文——Chinchilla。

∂L∂C<0,∂2L∂C2>0\frac{\partial L}{\partial C} < 0, \qquad \frac{\partial^2 L}{\partial C^2} > 0
  1. 一阶导数小于零算力每增加一份,损失都会下降,说明投入总体有效。
    ∂L∂C<0\frac{\partial L}{\partial C} < 0
  2. 二阶导数大于零损失下降的速度本身在减缓,即新增算力带来的收益逐份缩水。
    ∂2L∂C2>0\frac{\partial^2 L}{\partial C^2} > 0

最优配比:Chinchilla 的黄金比例

深夜的厨房里,老板对着账本发愁:预算翻倍,到底该加几位厨师、进多少食材?这时,DeepMind 的 Chinchilla 团队像一群“米其林评审”走进了他的餐馆,递上一张结论表:在固定总预算 $C$ 的前提下,存在一组最优的厨师数 $N_{\text{opt}}$ 和食材量 $D_{\text{opt}}$,让客人满意度最高。而且,当预算翻倍时,二者应该等比增长:

Chinchilla(Hoffman 等,2022)在 70B 参数模型上用 1.4 万亿 token 验证了这个结论——大约每 1 个参数配 20 个 token。这与早期 Kaplan 等(2020)的结论形成鲜明对比:那时人们认为“参数比数据更重要”,于是疯狂堆参数、省数据。Chinchilla 的评审结论一锤定音:厨师和食材要一起加,缺一不可。老板的账本上从此多了一行黄金比例:1 位厨师配约 20 份食材。

Nopt≈0.54×C0.5,Dopt≈1.85×C0.5N_{\text{opt}} \approx 0.54 \times C^{0.5}, \qquad D_{\text{opt}} \approx 1.85 \times C^{0.5}
  1. 最优参数量 N_opt在给定算力预算下,能使损失最小的模型参数量。
    NoptN_{\text{opt}}
  2. 最优数据量 D_opt与最优参数量搭配、使损失最小的训练 token 数。
    DoptD_{\text{opt}}
  3. 指数 0.5参数和数据量对算力的弹性相同,说明二者应同步扩张,不存在“谁更重要”。
    C0.5C^{0.5}
  4. 系数 0.54 与 1.85由实验拟合出的比例系数,二者之比恰好给出 token 与参数的比值。
    Dopt/Nopt≈1.85/0.54≈20D_{\text{opt}} / N_{\text{opt}} \approx 1.85 / 0.54 \approx 20

训练指导:预算怎么花最值

有了黄金比例,老板开分店不再拍脑袋。他掏出一个计算器:先确定总预算 $C$,然后按 Chinchilla 的公式反推最优的厨师数和食材量。若预算有限,宁可少请几位厨师,也要保证每位厨师有足够的食材可做;若想提升出品,则需要厨师和食材同步升级。这条经验直接指导了真实世界的大模型训练:

这条比例在实战中非常有用。比如你只有训练 7B 模型的算力,那么按 $D \approx 20N$ 估算,应该准备约 140B token 的语料;如果手里的数据只有 70B,那么把模型压到 3.5B 左右反而更划算。实践中也有团队故意“超配”数据——比如 LLaMA 用 1T+ token 训练 7B 模型,此时训练损失略高于最优,但推理成本更低,属于用训练效率换服务效率的现实权衡。所谓“最优”,永远要结合你的经营目标来读。

老板把这张表贴在后厨墙上,服务员上菜、采购进货、厨师排班,全部按比例运转。他突然意识到,这套账本不仅能回答“该招多少人”,还能回答“我到底该开多大的店”。

DoptNopt≈20\frac{D_{\text{opt}}}{N_{\text{opt}}} \approx 20
  1. 最优数据量与参数量的比值衡量训练数据配比是否“管饱”。
    DoptNopt\frac{D_{\text{opt}}}{N_{\text{opt}}}
  2. 约等于 20每 1 个参数约需 20 个训练 token,低于此值模型欠训练,高于此值数据收益递减。
    ≈20\approx 20

局限与展望:规模不是万能药

黄金比例帮老板省了很多钱,但他也发现,这张表并非放之四海而皆准。隔壁川菜馆的老板照搬比例,结果客人投诉“菜太油”;商场的甜品店用同一张表,却因为地段客流的差异亏了三个月。可见,任何经验公式都有它的适用范围。

在模型训练中,Chinchilla 的幂律是拟合出来的经验规律,而非物理定律。最直接的局限来自损失函数里的常数项 $E$——数据本身携带的噪声,决定了损失存在一个永远无法突破的下限:

这意味着,幂律曲线在超大算力区间可能不再准——因为真实损失被 $E$ 兜底,不会像直线外推那样一直降。此外,数据质量、学习率调度、batch size 等超参数也会让拟合曲线明显偏移;对多模态模型、强化学习训练等新范式,参数-数据的最优比也可能与 20:1 相去甚远。未来的计算缩放研究,需要在“账本”里加入更多变量:数据质量折价、硬件能效、对齐成本等。

老板把黄金比例表从墙上摘下来,在旁边补了一行小字:“规律诚可贵,前提要看清。”他依然感激这张表——它让扩张从赌博变成了算术。而真正的经营智慧,是在公式之外,看清每一家店的独特土壤。

E=lim⁡N→∞, D→∞L(N,D)E = \lim_{N \to \infty,\ D \to \infty} L(N,D)
  1. 极限符号让参数量和数据量同时趋于无穷大,观察损失的归宿。
    lim⁡N→∞, D→∞\lim_{N \to \infty,\ D \to \infty}
  2. 不可约损失 E即使模型无限大、数据无限多,损失也降不下去的“地板”,来自数据噪声与任务固有难度。
    EE

AI 应用场景

模型规模选型:算力预算的反推表

阶段:模型预训练方案设计

解决的问题:创业团队往往只有固定预算(比如 1000 张 A100 卡跑 30 天),传统做法是“参考别人的模型尺寸”或者“能多大就多大”,导致模型庞大但数据不足、损失居高不下。利用计算缩放规律,可以先用总 FLOPs 预算反推最优参数量和 token 数。

具体案例:某公司计划训练面向法律文档的专用大模型,预算约 $5\times10^{22}$ FLOPs。工程师按 Chinchilla 公式反推,得到约 30B 参数、600B token 的配比,于是将计划从“50B 参数 + 200B token”改为更均衡的方案,最终在同等预算下把验证损失降低了 8%。

数据集预算决策:该采多少数据

阶段:数据工程与语料建设

解决的问题:数据团队经常面临“收集多少数据才算够”的难题——数据越多成本越高,但边际收益递减。计算缩放给出量化答案:先定模型规模,再按约 20 倍的关系确定数据量目标,把资源从“无限爬取”转移到“高质量筛选”。

具体案例:某开源团队想训练 13B 模型,按 $D \approx 20N$ 估算需要约 260B token。他们手里的原始语料有 800B,但质量参差。团队据此调整策略:只精筛 300B 高质量 token,并配合重复数据去重,训练出的模型在评测集上反超了用全部 800B 语料训练的基线。

训练资源分配:多任务并行时的算力调度

阶段:训练基础设施与调度

解决的问题:企业内部同时训练多个模型,GPU 资源如何分配?计算缩放规律提供了“边际收益”的视角:对比各模型在下一份算力投入上的预期损失下降幅度,把资源优先分配给边际收益最高的任务,避免“大模型永动机”式的资源黑洞。

具体案例:某 AI 公司有 512 张 GPU,同时推进 7B 对话模型和 70B 基座模型。调度团队用幂律外推估算:给 70B 模型多分 100 张卡,损失预计下降 0.15;给 7B 模型多分 100 张卡,损失仅下降 0.06。于是他们选择把资源倾斜给 70B 任务,整体收益最大化。

Python 演示

python37 行
import math # Chinchilla 论文拟合的幂律损失函数参数A, alpha = 406.4, 0.3392B, beta = 410.7, 0.2849E = 1.6934  def loss_value(N, D):    """给定参数量 N 和训练数据量 D,计算理论损失 L"""    return A / N ** alpha + B / D ** beta + E  def search_best(C, n_min=1e8, n_max=1e12, steps=3000):    """在给定算力预算 C 下,搜索使损失最小的参数量 N 和数据量 D"""    best_loss = float('inf')    best_N = 0.0    best_D = 0.0    for i in range(steps):        N = n_min * (n_max / n_min) ** (i / steps)        D = C / (6.0 * N)        L = loss_value(N, D)        if L < best_loss:            best_loss, best_N, best_D = L, N, D    return best_loss, best_N, best_D  def main():    print("算力预算 C   最优参数量 N   最优数据量 D   D/N    理论损失 L")    for C in [1e21, 3e21, 1e22, 3e22, 1e23]:        L, N, D = search_best(C)        print("C=%.1e  N=%.2e  D=%.2e  D/N=%.2f  L=%.4f"              % (C, N, D, D / N, L))  if __name__ == "__main__":    main()
目的:用 Chinchilla 幂律公式模拟“给定算力预算,如何反推最优参数量与数据量”,输出结果会验证黄金比例约 20 tokens/param。
  1. A / N ** alpha + B / D ** beta + E损失由“参数量不足项”“数据量不足项”“不可约损失”三部分组成,前两项对应厨师手艺分和食材新鲜分。
  2. D = C / (6.0 * N)用总账本 $C \approx 6ND$ 反推数据量:预算固定时,模型越大,能喂的数据越少。

常见误区

误区训练大模型就是堆参数,70B 一定比 7B 好,只要显存放得下就拼命加大 N。

正解计算缩放规律明确告诉我们,参数的收益取决于数据是否匹配。固定数据量时,参数超过某个点后损失几乎不再下降,反而是浪费算力。Chinchilla 的平衡配比说明:参数和数据要像厨师与食材一样同步增长,只堆参数就像雇了 20 个厨师却只有一筐土豆。

为何常见:早期 GPT-3 的“大模型神话”深入人心,加上 Kaplan 等早期研究曾强调参数优先,很多人停留在“越大越好”的直觉里。

误区既然继续训练收益越来越小,那模型差不多就行了,省下的算力干别的。

正解边际递减说的是“增速放缓”,不等于收益为零。在预算允许时,继续训练仍然能稳定降低损失,只是性价比下降。正确的做法是把资源分配给边际收益更高的任务——这就好比重开一份甜品虽然不如上一份香,但对饥饿的客人依然是正收益。

为何常见:人们容易把“收益变小”和“没有收益”混为一谈,尤其在汇报 KPI 时,曲线变平会带来“投入无效”的错觉。

误区任何模型、任何场景,参数和数据的比例都必须是严格的 20:1,否则就是错误的训练。

正解20:1 是 Chinchilla 在特定模型架构、特定数据分布下拟合出的经验最优比。实践中 LLaMA 就刻意超配数据(7B 模型用 1T+ token,约 150:1),换取推理时更小的模型尺寸和更低的部署成本。比例是可调的杠杆,不是不可违背的教条,就像餐馆的厨师食材比也要看菜系——火锅店和甜品店显然不一样。

为何常见:论文给出了一个干净漂亮的数字,人们天然喜欢“记住一个数”的确定性,而忽略了它是拟合结果且带置信区间。

误区既然损失和算力在对数坐标上是直线,那只要继续加算力,损失就会一直降下去,AGI 指日可待。

正解损失函数中的不可约项 $E$ 给下降设了地板;同时,超出拟合区间的极端算力下,数据质量、并行效率、优化稳定性都会让真实曲线偏离幂律。外推就像用前 10 年餐厅流水预测第 100 年营业额——趋势可以参考,但拐点往往悄无声息。

为何常见:对数坐标下的直线给人极强的“可预测”幻觉,而人们天然喜欢用简单的线性外推去想象未来。

面试题

Q1. 计算缩放研究的核心问题是什么?

单选题 · easy

  • A.注意力机制改进方向
  • B.算力对模型性能的增益规律← 正确答案
  • C.模型权重的压缩方法
  • D.数据标注的质量控制

答案:B。计算缩放研究的是“增加训练算力 C,模型损失 L 如何下降”的定量规律。选项 B 准确描述了这一核心问题。A 是架构设计,C 是模型压缩,D 是数据工程,都不属于计算缩放的研究范畴,就像餐馆研究“多花钱能提升多少满意度”,而不是研究“菜怎么切”。

Q2. Chinchilla 定律的核心结论是什么?

单选题 · mid

  • A.模型参数越大性能越好
  • B.训练数据越多性能越好
  • C.参数与数据应平衡配比增长← 正确答案
  • D.算力与参数呈指数相关

答案:C。Chinchilla(Hoffman 等,2022)发现,在固定算力预算下,参数量 N 和数据量 D 应同步等比增长(约 20 tokens/param),而非单方面堆参数或堆数据。C 准确概括了这一“平衡配比”结论。A、B 各执一端,D 描述的是算力与参数的关系形式而非最优策略。

Q3. 幂律损失 L(N) = (N_c/N)^α 中,α 的含义是什么?

单选题 · mid

  • A.表示学习率的大小
  • B.决定收益衰减的速度← 正确答案
  • C.表示数据质量的系数
  • D.指模型的隐藏层数

答案:B。α 是缩放指数,衡量损失随参数量 N 增大而下降的速度。α 越大,同样比例的参数量增长带来的损失下降越明显,收益衰减越慢。它和学习率、数据质量、层数无关。可以理解为“请新厨师的边际手艺提升速度”。

Q4. 以下哪些情况会导致计算缩放出现边际递减?

多选题 · mid

  • A.数据不变仅增加参数时← 正确答案
  • B.参数不变仅增加数据时← 正确答案
  • C.参数与数据等比增长时
  • D.总算力被严格限制时← 正确答案

答案:ABD。边际递减的根源是“一头增长、另一头固定”的失衡:数据固定加参数(A),模型很快把数据规律学完;参数固定加数据(B),模型容量成为瓶颈;总预算受限(D)时任何单一投入都会撞上资源天花板。而参数与数据等比增长(C)正是缓解边际递减的最优策略,故不选。

Q5. 公式 C ≈ 6ND 中,常数 6 代表什么?

单选题 · easy

  • A.模型的网络层数
  • B.数据增强的倍数
  • C.每参数每 token 运算常数← 正确答案
  • D.分布式训练的卡数

答案:C。6 是经验折算常数:一个参数处理一个 token,前向传播约 2 次、反向传播约 4 次浮点运算,合计约 6 次。它把参数量 N 和数据量 D 统一折算成总算力 C,相当于餐馆把“厨师数×食材份数”折算成总工时的换算系数。

Q6. 关于 Chinchilla 最优配比的实践意义,下列说法正确的有哪些?

多选题 · hard

  • A.指导大模型训练规模选型← 正确答案
  • B.帮助评估算力的最优分配← 正确答案
  • C.证明参数越多效果必定越差
  • D.为资源预算决策提供依据← 正确答案

答案:ABD。Chinchilla 配比的核心应用是:给定算力预算反推最优 N 和 D(A),在多任务间评估算力投入的边际收益(B),以及为预算规划提供量化依据(D)。C 是错误推论——参数多并非“必定差”,而是“参数多但数据不足时”才差,属于配比失衡而非参数本身的错。

Q7. 损失函数 L(N,D) = A/N^α + B/D^β + E 中,常数项 E 表示什么?

单选题 · hard

  • A.指训练集上的误差值
  • B.数据固有不可约的损失← 正确答案
  • C.表示词向量的嵌入维度
  • D.指损失函数的梯度范数

答案:B。E 是当 N 和 D 都趋于无穷大时损失的下界,代表数据本身噪声和任务固有难度带来的“不可约损失”。它给幂律下降设置了地板,也是“不能无限外推”的根本原因。A 是训练误差的概念,C、D 与损失函数结构无关。

Q8. Chinchilla 用 70B 参数配 1.4T token 训练,其依据是什么?

单选题 · mid

  • A.因为数据采集量的上限
  • B.因为单卡显存空间限制
  • C.因为七十层网络结构要求
  • D.因为约二十倍参数量的最优配比← 正确答案

答案:D。1.4T ÷ 70B ≈ 20,正是 Chinchilla 发现的“每参数约配 20 个 token”的最优比例。选择这个配比是为了在给定算力下让损失最小,而不是受数据量、显存或层数限制。好比老板按“1 位厨师配 20 份食材”进货,是因为这个比例让满意度最高。

Q9. 关于计算缩放规律的局限性,下列说法正确的有哪些?

多选题 · hard

  • A.幂律在大算力下会偏移← 正确答案
  • B.数据质量影响曲线拟合← 正确答案
  • C.最优配比适用于所有任务
  • D.超参数差异会产生干扰← 正确答案

答案:ABD。幂律是经验拟合,外推到超大算力时会被不可约损失 E 和训练稳定性问题拉偏(A);数据质量差异会让同一公式拟合出不同参数(B);学习率、batch size 等超参也会改变实际曲线(D)。C 过于绝对——多模态、强化学习等新范式的最优配比未必是 20:1。

Q10. 边际递减的通俗含义是什么?

单选题 · easy

  • A.新增投入带来的收益逐渐减少← 正确答案
  • B.新增投入带来的收益逐渐增多
  • C.投入总量与收益没有任何关系
  • D.减少投入反而会让收益增加

答案:A。边际递减指每一单位新增投入(算力、参数、数据)带来的收益比上一单位更小,就像第三份甜品不如第一份香。B 是边际递增,C 和 D 则完全违背投入产出规律。这是理解计算缩放的直觉基础。