一、回到第 1 讲留下的赌注
第 1 讲第五节留了一句话:"如果把’猜下一个词’这件事,用一个远比计数更强的函数、在远比过去更大的数据和算力上去做,会发生什么?" 那一讲说这是"这门课接下来大部分篇幅都在回答的问题",但一直没有给出定量的答案。
第 14 讲刚刚讲完"数据"这一个变量本身的构成。这一讲要把数据量、模型参数量、计算量这三个变量放在一起,看它们各自变大的时候,模型的表现(用第 4 讲的交叉熵/困惑度衡量)会按什么规律变化。这个规律,就是这一讲的主题:Scaling Laws(规模定律)。
二、打个比方:练力量的边际收益
一个刚开始健身的新手,第一个月认真训练,卧推重量可能从 40 公斤涨到 60 公斤——提升非常明显。但一位已经训练多年的职业运动员,想再提高 5 公斤,可能需要再投入远超新手好几倍的训练量和时间。
⭐ 这不代表训练"没用了"——只要方法对,多训练总是有收益的,只是同样多投入一份努力,买到的提升,会随着已经达到的水平越高而越来越小。这就是"边际收益递减"最直观的体感,也正是这一讲要讲的规律的核心直觉:多堆资源确实有用,但买到的收益会持续变贵。
三、把直觉钉成数学
三个变量,一个会计关系
Scaling Laws 关心三个量:模型参数量 N(第 5、7–12 讲讲过的全部可训练参数的总数)、数据量 D(第 14 讲讲的训练 token 总数)、计算量 C(训练总共消耗的算力)。
这三者不是互相独立的——回忆第 6 讲:训练一遍数据,要对模型的每一个参数都做一次前向传播和一次反向传播。参数越多,处理每一个 token 要做的计算就越多;数据越多,要重复这个过程的次数就越多。粗略地说,三者满足一个近似的会计关系:
计算量 C ≈ 参数量 N × 数据量 D
这条关系的直接后果是:给定一个固定的计算预算 C,N 和 D 是要互相权衡的——预算不变的前提下,模型做得更大,能喂的数据量就必须相应减少;反过来,想喂更多数据,模型规模就要相应缩小。没有"参数量和数据量都无限增长"这种选项,两者被同一个计算预算约束在一起。
幂律:恒定的相对改善,不是恒定的绝对改善
Scaling Laws 最核心的经验发现是:损失(第 4 讲的交叉熵)随参数量、数据量或计算量的增长,近似遵循一种叫幂律(power law)的关系:
L(X) ≈ a · X^(−α) + L∞
X 可以是 N、D 或 C 中的任意一个(固定住其余两个不成为瓶颈的前提下);a 和 α(读作 alpha)是两个经验拟合出来的正数;L∞ 是一个损失的下限——不管资源堆多大,损失不会真正降到 0,只会无限逼近这个下限(下一节会解释这个下限从哪来)。
先看这个式子在数值上的具体样子。为了让手算干净,暂时忽略 L∞,只看幂律那一项,取 a=10, α=0.1:
L(N) = 10 × N^(−0.1)
N=1 → L = 10 × 1^(−0.1) = 10.00
N=10 → L = 10 × 10^(−0.1) ≈ 7.94
N=100 → L = 10 × 100^(−0.1) ≈ 6.31
N=1,000 → L = 10 × 1000^(−0.1) ≈ 5.01
N=10,000 → L = 10 × 10000^(−0.1) ≈ 3.98
⭐ 把每一次"参数量变成原来的 10 倍"对应的损失比值算出来:
L(10)/L(1) ≈ 7.94/10.00 ≈ 0.794
L(100)/L(10) ≈ 6.31/7.94 ≈ 0.794
L(1000)/L(100) ≈ 5.01/6.31 ≈ 0.794
L(10000)/L(1000) ≈ 3.98/5.01 ≈ 0.794
每一次参数量放大 10 倍,损失都恰好变成原来的约 79.4%——这个比例完全不随 N 本身的大小变化。 这正是幂律的定义性质:买到的是恒定的"相对"改善,不是恒定的"绝对"改善。从 1 涨到 10(只多花 9 份资源)和从 1000 涨到 10000(要多花 9000 份资源)买到的相对改善完全一样——每多买一个数量级的资源,成本呈指数增长,但收益只是同一个恒定的折扣。这就是第二节"边际收益递减,但持续变贵"这句话的精确数学版本。
损失下限:为什么不会趋于 0
L∞ 这一项对应第四节要讲的一个重要限制:语言本身带有内在的不确定性。回忆第 4 讲——“今天天气很___",即使是一个完美理解语言的模型,“好"“热"“冷"都是合理的续写,下一个词从来不是唯一确定的。即便模型对这句话的理解达到理论上的完美,损失也不可能降到 0,因为真实的语言分布本身就不是"每一步都只有一个答案”——这个不可消除的不确定性,就是 L∞ 这个下限的来源。
可预测性:这条规律最大的实际价值
Scaling Laws 之所以在工程实践里极其重要,不只是因为它描述了一个漂亮的规律,更因为它可以被用来预测:研究者可以先训练一系列小规模、便宜的模型,把观测到的损失拟合成幂律曲线(就像第三节那样,估计出 a 和 α),再用这条曲线外推,预测一次大规模、昂贵得多的训练大概会得到什么损失——不需要真的先烧钱训练出那个大模型,才知道值不值得训练。这大幅降低了"投入巨额算力,结果却不如预期"的风险。
⭐ 这也是第 14 讲留下的一个具体问题的答案:给定计算预算,N 和 D 该怎么分配? 历史上曾有过一个重要的经验教训:不少早期的大规模语言模型,相对于它们训练时消耗的计算量而言,参数量偏多、训练数据偏少——同样的计算预算,如果换成"稍小一点的模型、配上多得多的数据”,反而能训练出损失更低的结果。这说明"越大越好"不完全对,真正重要的是在给定的计算预算下,找到参数量和数据量之间的最优配比,而不是一味把参数量堆到最大。
⚠️ 关于时效性:具体多少参数配多少数据算"最优”,这个比例会随着数据质量(第 14 讲)、架构效率(第 7–12 讲)等因素的演进持续变化,不是这一讲要记住的数字。要抓住的是这个设计结论本身:
N和D需要匹配着一起增长,任何一个远远落后于另一个,都会造成计算资源的浪费——这个结论不会因为具体最优比例的变化而过时。
四、这一讲机制自带的代价
⚠️ 幂律是在观测范围内拟合出来的经验规律,不是被证明必然成立的数学定理——用一系列小规模实验拟合出的曲线,外推到远超观测范围的规模时,存在偏离拟合曲线的风险,规模差距越大,这种外推的不确定性通常也越大。
⚠️ 总体损失平滑下降,不等于每一项具体能力都在平滑提升——这是一个学界仍在研究、存在争议的现象:某些具体能力(比如需要多步骤的复杂推理)在某些规模节点上,表现有时会显得比总体损失曲线的平滑下降更"突然”,看起来像是"跃升"出现的。这种现象在多大程度上反映了真实的能力突变、在多大程度上只是所用的评测指标本身不够连续(比如"全对才算对"这种评分方式,天然就会呈现出比连续指标更陡峭的曲线),目前没有定论——这里只如实说明这是一个观察到的、有争议的现象,不做更强的断言。
⭐⭐ 损失更低,不等于模型更真实、更有用、更安全——这是这一讲最重要的一条限制,直接呼应第 1 讲的核心警告:交叉熵损失衡量的只是"下一个词猜得准不准"(统计上合不合理),不是"回答得对不对、有没有帮助、安不安全"。Scaling Laws 描述的是前者的规律,不能被想当然地当成后者也会自动随规模改善的保证——第 16–20 讲要讲的对齐,正是因为"预训练规模再大,也不会自动解决这个问题"才必须存在的一整个环节。
⚠️ 训练时的"计算最优",不是部署时的"推理最优"——Scaling Laws 通常回答的问题是"给定训练计算预算,怎么分配能让训练损失最小",没有把训练完成之后、模型要被反复调用时的推理成本、延迟算进这个最优化问题里。一个训练阶段"最优"的模型配置,部署起来可能贵得不现实——这是第 21–24 讲要处理的另一套完全不同的约束和权衡。
五、和后面课程的关系
- 第 1 讲的赌注在这一讲得到了定量的兑现:在已经观测到的范围内,“规模换效果"这个赌注确实是"赢"的,但赢得有代价(指数增长的资源需求)、有限度(损失下限
L∞)、有前提(N和D要匹配,不能顾此失彼)。 - **第 16–20 讲(对齐)**存在的必要性,直接建立在这一讲第四节的核心限制上:损失下降只保证"猜词猜得更准”,不保证"更真实、更有帮助、更安全",这两件事需要专门的训练阶段去处理,不能指望单纯堆规模自动解决。
- **第 21–24 讲(推理与部署)**处理的是训练时"计算最优"之外的另一套约束——一个模型部署之后的推理成本和延迟,需要单独优化,不是这一讲讨论的范畴。
- 第 29 讲(幻觉):这一讲讲的损失下限
L∞,某种意义上和"语言本身存在合理但不唯一的续写空间"这件事有关——一个连损失下限都无法突破为 0 的模型,在某些位置"编造"出一个统计上合理但事实上错误的续写,从这一讲的视角看并不意外,第 29 讲会从另一个角度把这件事讲透。
六、本讲小结
- 参数量
N、数据量D、计算量C三者近似满足C≈N×D——给定计算预算,N和D之间存在此消彼长的权衡,不能同时无限增长。 - ⭐ 损失随任一资源的增长遵循幂律
L(X)≈a·X^(−α)+L∞:本讲手算的例子验证了幂律的核心性质——每多一个数量级的资源,损失变成原来固定的一个比例(例子里恒为 0.794),买到的是恒定的相对改善,需要指数增长的投入。 L∞是损失的下限,来自语言本身的内在不确定性(第 4 讲:下一个词从来不是唯一确定的),不管资源堆多大都无法突破。- ⭐ 这条规律的最大实际价值是可预测性:用一系列小规模、便宜的实验拟合曲线,可以提前预测大规模、昂贵训练的效果,大幅降低"烧钱结果却不如预期"的风险;也正是靠这条规律,才发现许多早期大模型"参数偏多、数据偏少",没有用好给定的计算预算。
- ⚠️⚠️ 损失更低不等于模型更真实、更有用、更安全——这是全课贯穿第 1 讲的核心警告在这一讲的具体版本,直接指向第 16–20 讲对齐存在的必要性;此外训练时的"计算最优"也不等于部署时的"推理最优",两者是不同的优化问题。
思考题
- 用本讲第三节的手算例子,验证如果
α=0.2(其他不变,a=10),N每放大 10 倍,损失比值会变成多少?和α=0.1时的 0.794 相比,哪个α对应"每多一个数量级资源,收益递减得更快"? C≈N×D这个会计关系说明,如果计算预算固定不变,想把模型参数量翻倍,数据量大概需要怎么变化?这和第 14 讲"数据规模"这个变量是什么关系?- 为什么说"早期很多大模型参数偏多、数据偏少,没有用好计算预算"这件事,本质上是一个"资源分配"问题而不是"模型不够大"的问题?如果同样的计算预算,换成一个更小但训练数据更多的模型,为什么反而可能得到更低的损失?
- 结合第四节,如果有人说"我们把模型做得更大,所以它一定更不容易产生幻觉、更值得信任",这句话在多大程度上站得住脚?根据这一讲的内容,损失下降能不能直接推出"更值得信任"?
- 本讲说"总体损失平滑下降,不等于每一项能力都在平滑提升",并且提到这和评测指标本身的连续性有关——请想一个例子:什么样的评测方式(比如"全对才算对" vs “按步骤给部分分”)更容易在结果上表现出"突然跃升",什么样的评测方式更可能表现出平滑的渐进提升?