斯坦福 CS336 从零构建大模型 (2025 春) - 第九讲:缩放定律 1(Scaling Laws 1)

文章目录

斯坦福 CS336 第九讲(Scaling Laws 1)是带你从“盲目炼丹”走向“科学统筹”的极为关键的一课。讲师提出了一个终极灵魂拷问:如果你手握 10 万张 H100 和一个月的租期,你该如何一次性训练出最强的大模型,而不是在反复试错中烧光经费? 答案就是——缩放定律(Scaling Laws)。

通过在小规模上进行实验并拟合规律,我们可以精准预测超大模型在海量计算资源下的表现。以下是本讲不遗漏任何知识点的全景深度总结,以及原汁原味的课堂 Q&A 实录:


一、 缩放定律的历史与理论根基 (Historical & Theoretical Foundations)

很多人以为 Scaling Laws 只是“在双对数坐标系(Log-log plot)上画直线”,但它其实有极其深厚的统计机器学习(Statistical ML)渊源。

  • 理论雏形:在经典机器学习中,泛化误差界通常随着数据量 n 的增加呈 1 / n 1/\sqrt{n} 1/n 缩放。早在 1993 年,Bell Labs 的 Vapnik 等人就提出,可以通过拟合小规模数据的多项式衰减曲线,来预测分类器在庞大数据库上的性能。
  • 深度的实证:2017 年百度(Hestness et al.)发表了一篇极具前瞻性的论文,展示了机器翻译、语音和视觉领域的深度学习误差也遵循幂律衰减(Power Law)。该论文提出了模型表现的三个必经阶段:
    • 随机猜测期 (Random guessing)
    • 幂律缩放期 (Power law region,呈可预测的线性缩放)
    • 不可约误差期 (Irreducible error,达到模型或数据的理论极限)

二、 数据缩放定律 (Data Scaling Laws)

当我们在双对数坐标系(Log-log space)下绘制“测试损失(Test Loss)”与“数据集大小(Data Size)”的关系时,会得到一条完美的直线(多项式衰减)。

  • 斜率的数学本质(为什么不是 1 或 0.5?)
    • 如果我们只是在做一个最简单的高斯分布“均值估计”,误差的缩放比例是 σ 2 / n \sigma^2/n σ2/n(多项式阶数为 1),在 log-log 图上斜率应为 1。
    • 但在深度学习中,真实测得的语言模型斜率极慢(如 0.095)。
    • 原因在于内在维度 (Intrinsic Dimensionality):神经网络本质上是在做高维非参数回归(Nonparametric regression)。数学上证明,如果数据的内在特征维度是 d d d,误差的衰减速度是 n − 1 / d n^{-1/d} n1/d。因此,Scaling Law 直线的斜率,本质上反映了该任务数据的内在维度和学习难度。
  • 工程应用
    • 数据混合 (Data Mixing):改变数据集的成分通常只会改变对数图上的截距(Offset),而不会改变斜率。因此,你完全可以在极小规模的模型上测试哪种数据配比最好,然后直接将这个配比套用到大模型上。
    • 数据重复 (Multi-epoch):Scaling laws 证明,同一批数据重复训练约 4 个 Epoch 后,收益会呈现断崖式的边际递减。

三、 模型缩放与超参数预测 (Model Scaling & Hyperparameters)

在固定数据量或寻找最优配置时,缩放定律同样可以指导架构和超参数选择:

  • 架构对比 (Transformers vs LSTMs):Kaplan 等人证明,不论怎么放大,LSTM 和 Transformer 的 Scaling 曲线斜率相近,但 Transformer 存在巨大的常数级算力优势(Constant factor compute penalty)(在同样损失下,LSTM 耗费的算力远大于 Transformer)。
  • 超参数鲁棒性 (Hyperparameter Basins):模型的深宽比(Aspect ratio,即层数与宽度的比例)在极大的范围(10 到 100)内都接近最优。Scaling curves 证明,这种最优比例的“宽广盆地”在跨越几个数量级的规模时并不会发生偏移。
  • 避坑指南 (Embedding Parameters):在做参数量 Scaling 时,绝对不能把词表嵌入层(Embedding parameters)算入总参数量中,因为它们的缩放规律与主体权重完全不同,算进去会导致曲线扭曲。

四、 批次大小 (Batch Size) 与学习率的缩放 (Batch Size & Learning Rate)

随着模型和算力的暴增,Batch Size 和学习率也必须科学地缩放。

  • 临界批次大小 (Critical Batch Size, CBS):增加 Batch size 起初相当于完美的梯度并行加速,但超过一个“临界点”后,新增的样本只是在浪费算力而无法有效降噪(陷入收益递减)。
  • CBS 的动态变化:目标损失(Target Loss)越小,临界批次大小就越大。这解释了为什么像 Llama 3 这样的模型在训练后期(Loss 降得很低时)会主动增大 Batch Size。
  • μP (最大更新参数化, Maximal Update Parameterization):传统上,模型越宽,最优学习率越小,需要用 Scaling 法则来重新拟合预测。而 μP 是一种绝妙的数学技巧:通过根据模型的宽度(Width)自动缩放初始化方差和学习率,使得不论模型多大,其最优学习率都被锚定在同一个固定值上。你只需在小模型上调好学习率,就能一字不改地直接用在千亿参数大模型上。

五、 联合缩放与 Chinchilla 最优解 (Joint Data-Model Scaling)

在算力预算(Flops)固定时,最核心的问题是:算力是用来把模型做大,还是用来喂更多的数据?

  • Kaplan 的失误:OpenAI 早期的 Kaplan 论文得出了错误结论,认为模型大小更重要。其原因是他们在做实验时强行中途截断了余弦学习率衰减(Cosine learning rate decay),导致小模型没能充分收敛。
  • Chinchilla 的三大推导法 (DeepMind):为了修正这个错误,DeepMind 提出了极其严谨的 Chinchilla 缩放法则,采用了三种方法,最终都收敛到了同一个结论:
    • 包络线法 (Minimum over curves):画出不同大小模型随数据训练的 loss 曲线,取它们的最低下包络线。
    • 等算力分析 (IsoFLOP analysis,最经典):固定几个算力档位,在每个算力下测试不同“模型大小/数据量”配比,找出 loss 最低的最佳模型大小。将这些最佳点连起来即可得到法则。
    • 参数化曲面拟合 (Parametric Curve Fitting):利用三维损失公式强制拟合曲面(早期该方法因残差处理失误饱受争议,后来 Epoch AI 团队通过逆向工程图表数据修正了拟合错误,证明了该方法依然有效且与前两者一致)。
  • 结论:模型参数量和训练 Token 数应该同比例增加。经典的 Chinchilla 最优比率是:每个参数对应 20 个 Token (20 tokens per parameter)

六、 现代演进:推理成本至上 (Inference-Optimal Scaling)

Chinchilla 法则是为了追求“训练阶段算力最优化”。但在当今的工业界,大模型是产品。推理(Inference)成本远大于一次性的训练成本。

  • 过渡训练 (Over-training):现代前沿实验室(如 Meta Llama 3 和 Qwen)普遍选择严重“过度训练”。例如,它们在小巧的 8B 参数模型上强行灌入 15万亿 甚至 30万亿 tokens。这打破了 Chinchilla 的 20 倍法则,目的是用稍大的训练算力代价,换取一个极其聪明但尺寸极小的模型,从而在未来的每天省下海量的推理部署费用。

[!WARNING]
最后的严厉警告:下游任务的不可预测性
Scaling Laws 对于底层的**交叉熵对数损失(Next-token prediction loss)**预测得极其完美。但是,如果你想直接预测模型在某个下游具体任务(如代码评测、常识问答、MMLU)上的准确率,Scaling 曲线会变得支离破碎、极度不可预知(尤其是状态空间模型 State Space Models)。千万不要把 Loss 的平滑下降等同于具体能力的平滑上升。


七、 核心概念问答 (Q&A)

Q1:既然缩放定律(Scaling Laws)如此自然,那有没有什么情况下我们“观察不到”缩放定律,或者出现反向缩放?

回答:这是一个很好的问题。如果评估的是训练损失或其分布内的验证损失,统计理论保证了它一定会收敛变好。但是,确实存在非缩放行为(Non-scaling behavior)。几年前甚至有一个专门的“逆向缩放奖(Inverse Scaling Prize)”来寻找这种现象。比如:模型往往很擅长“复制(Copying)”,如果你设计的任务要求模型“抑制复制冲动”,模型越大反而表现越糟糕。更宏观地看,如果你测试的任务严重脱离了分布(OOD,Out of Distribution),超出了预训练数据涵盖的规范,你就会看到不缩放、随机甚至反向缩放的诡异现象。

Q2:在你们展示的“纯数据缩放(Data Scaling)”图表中,模型的大小是如何确定的?图中每个点对应不同大小的模型吗?

回答:当我们在做纯粹的“数据规模缩放”分析时,关键是要避免模型自身容量成为瓶颈。因此,这整条曲线上使用的是同一个固定且极其庞大(远超当前数据量所能饱和的容量)的模型。这确保了我们测出的误差曲线完全是由数据量驱动的,避免了陷入模型算力不足导致的“不可约误差(Irreducible error)”区域。

Q3:刚才提到的内在维度(Intrinsic dimension),从模拟的视角来看,我们如何生成一组确实拥有底层内在维度的数据来进行测试?

回答:如果只是想生成玩具数据来验证理论,其实不难。你可以写一个由 5 个独立变量控制的生成函数(这就创造了一个 5 维的流形曲面),然后在上面撒一点噪声,这就成了内在维度为 5 的数据。但论文(如引用所示)中做的事情要难得多,他们是在试图估算真实世界数据集(比如 CIFAR 图像集)的真实内在维度,这是一个极其困难的问题。

Q4:我不太理解关于批次大小(Batch Size)的直觉。为什么当我们追求更低的目标损失(Lower loss target)时,我们需要增加 Batch Size?

回答:当目标损失变得非常小的时候,意味着你的模型已经到了训练的后期(或者是在对非常敏感的局部进行精调),此时模型对梯度的精确度要求极高。如果你回忆一下学习率衰减的过程:当模型冷却(Cool down)、学习率下降时,你希望梯度的噪声越小越好。增大 Batch Size 的本质就是为了去噪(Denoising),以此获得更清晰、更精确 of 下降方向。这和学习率的下降是呈反向配合关系的。

Q5:关于临界批次大小(Critical Batch Size)的这些规律,是只适用于 NLP 领域,还是对计算机视觉(CV)也适用?

回答:对于纯粹的计算机视觉我不敢完全确定。但是,有一篇 OpenAI 关于多模态模型(Multimodal models)的 Scaling 论文。在那些跨模态的场景下,类似规律依然是适用的。不过我一时记不清那篇论文里关于多模态具体的临界批次大小的数值了。


八、 第九讲复习题

📝 第九讲复习题 (Lecture 9: Scaling Laws 1)

一、 缩放定律的理论基础与数据缩放 (Data Scaling)

  1. 核心目的与三大阶段:缩放定律(Scaling Laws)的核心目的是什么?早期的研究(如 Hestness 等人在 2017 年的论文)指出,随着模型规模的扩大,模型性能会经历哪三个阶段?
  2. 斜率的数学本质(内在维度):在双对数坐标系(Log-log plot)下,简单的均值估计误差随数据量衰减的斜率是 1,但语言模型的衰减斜率(如 0.095)却非常缓慢。从非参数回归的数学角度来看,这个缓慢的斜率本质上反映了底层数据的什么数学特性?
  3. 数据配比的影响:如果我们在预训练时改变不同数据源的混合比例(Data composition),这会在双对数坐标系的缩放曲线上改变什么(是改变曲线的斜率,还是截距/Offset)?

二、 模型缩放与超参数 (Model Scaling & Hyperparameters)

  1. Transformer vs. LSTM:根据 Kaplan 等人的缩放定律研究,为什么我们现在普遍使用 Transformer 而不是 LSTM?两者在缩放曲线上的根本差异是什么?
  2. 参数统计的避坑指南:在绘制“模型参数量”与“测试损失”的缩放定律图表时,有一类参数绝不能被算入总参数量中,否则会导致曲线扭曲。请问是哪一部分参数?
  3. 临界批次大小 (Critical Batch Size, CBS):什么是临界批次大小?随着模型训练的深入,当我们追求更低的“目标损失(Target Loss)”时,最优的批次大小应该变大还是变小?
  4. μP (最大更新参数化):传统经验中,随着模型变得越来越宽,最优学习率会怎么变化?μP 技术是如何通过重新参数化(Reparameterization)来解决大模型调参痛点的?

三、 联合缩放与现代训练范式 (Joint Scaling & Modern Paradigms)

  1. Kaplan 论文的失误:早期 OpenAI 的 Kaplan 论文在预测最佳模型大小和数据量比例时得出了错误的结论。他们在实验中犯了什么关于“余弦学习率衰减(Cosine learning rate decay)”的致命错误?
  2. Chinchilla 最优解:为了修正 Kaplan 的错误,DeepMind 提出了著名的 Chinchilla 法则。根据该法则,为了达到训练阶段的算力最优化,模型参数量与训练 Token 数的黄金比例大约是多少?
  3. 推理至上 (Inference-Optimal Scaling):尽管有 Chinchilla 的 20 倍法则,但现代前沿模型(如 Llama 3 或 Qwen)为什么会选择严重“过度训练(Over-training)”,比如在百亿参数模型上强行灌入 30 万亿 Tokens?

九、 参考答案与知识点解析 (Reference Answers)

  1. 核心目的与三大阶段?
    答案:核心目的是用极小的计算成本在小模型上进行实验,从而精准预测超大模型在海量资源下的表现,避免在昂贵的大模型上盲目试错。模型性能通常经历三个阶段:1) 随机猜测期 (Random guessing);2) 幂律缩放期 (Power law region);3) 不可约误差期 (Irreducible error)。

  2. 斜率的数学本质?
    答案:神经网络本质上是在进行高维空间的非参数回归 (Nonparametric regression)。数学上,非参数回归的误差衰减速度与数据的内在维度 (Intrinsic Dimensionality, d) n − 1 / d n^{-1/d} n1/d 的关系。因此,缩放曲线上极其缓慢的斜率,本质上反映了自然语言等真实世界数据极高的内在维度和学习难度。

  3. 数据配比的影响?
    答案:改变数据集的成分只会改变对数图上的截距 (Offset/常数项),而不会改变斜率。这意味着你完全可以在极小规模的模型上低成本测试出最佳的数据配比,然后直接应用于大模型的训练中。

  4. Transformer vs. LSTM?
    答案:无论模型怎么放大,LSTM 和 Transformer 的 Scaling 曲线斜率其实是相近的,但 Transformer 存在着巨大的常数级算力优势 (Constant factor compute penalty)。也就是说,在达到相同损失的情况下,LSTM 需要耗费的算力要远远大于 Transformer(例如差距可能高达 15 倍)。

  5. 参数统计的避坑指南?
    答案:绝不能算入词表嵌入层参数 (Embedding parameters)。因为嵌入层参数的缩放规律与主体网络权重的缩放规律完全不同,如果将它们算入模型总参数中,会导致得不到干净平滑的对数线性缩放曲线。

  6. 临界批次大小 (Critical Batch Size)?
    答案:临界批次大小是指在分布式训练中,增加 Batch size 带来的并行收益从“完美线性加速”转变为“收益急剧递减”的那个阈值点。随着目标损失变低,临界批次大小会变大。

  7. μP (最大更新参数化) 的作用?
    答案:传统上,随着模型变宽,最优学习率必须变小。μP (Maximal Update Parameterization) 通过根据模型的宽度动态缩放初始化方差和学习率,重新参数化了模型,使得不论模型多大,其最优学习率都被牢牢锚定在同一个固定值上,实现了学习率的跨规模迁移。

  8. Kaplan 论文的失误?
    答案:他们为了省事强行中途截断了余弦学习率衰减 (Cosine learning rate decay)。余弦学习率必须经过完整的冷却周期降到最小才能让模型充分收敛,中途截断会导致小模型看起来表现很差,从而得出了错误结论。

  9. Chinchilla 最优解?
    答案:模型参数量与 Token 数的黄金比例应为同比例增长,通常被简称为 20 Tokens / 参数 (20 tokens per parameter)

  10. 推理至上 (Inference-Optimal Scaling)?
    答案:Chinchilla 法则仅仅追求“训练成本最优化”。但在当今工业界,推理部署的持续成本 (Inference costs) 远远大于一次性的训练成本。因此,厂商宁愿现在投入极大的训练算力换取一个尺寸极小但极度聪明的模型,以节省未来每天海量的推理费用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐