2022 年经典论文发现:固定算力预算下,参数和训练 token 应等比扩展,而非此前业界偏好的大参数少训练模式。结论被后期实践大幅验证。
在这篇论文之前,大家训练的模型参数量过大,而用于训练的数据量却严重不足。论文发布之后,整个行业关于这两者的比例关系发生了根本性改变。这是近年来最典型的案例——一项单一的实证结果重新指引了整行业的资源分配方向,同时也成为了一个结论被过度延伸、远超其本身支撑范围的典型。
《Training Compute-Optimal Large Language Models》(2022)提出的是一个窄而精准的问题。假设你有固定的训练算力预算。算力大致与参数量乘以训练 token 数成正比,因此你面临两种选择:用更多预算训练一个更大的模型(训练轮次较少),或者用相同的预算训练一个更小的模型(训练轮次更多)。哪种分配方式能带来最低的最终 loss?
当时的主流做法,受早期 scaling 研究的指引,将增加的预算主要用于扩大参数量。模型的参数增长远超其训练语料的规模。论文的结论是:这是错误的——对于算力最优的分配方案,参数量和训练 token 数应该大致等比例扩展。将预算翻倍,两者也应该大致按相同因子增长,而不是把预算全部投入到模型规模上。
需要注意这是一个什么问题。它问的不是"什么是最强的模型",而是"在给定约束条件下,最优的分配是什么"。对该结论的几乎所有误用,都源于忘记了这个约束条件。
值得研究的方法论选择在于:论文没有用一种方式回答这个问题,而是通过三条不同的路径分别回答,并得出三者大致吻合的结论:
固定模型规模,改变训练 token 数。 每个规模的模型训练多个不同时长,记录每个算力级别对应的 loss,在不同规模间取最小值。
固定算力预算,改变模型规模。 等 FLOP(isoFLOP)方法:对于给定预算,遍历不同规模的模型,找到曲线的最低点。这种方法视觉上最有说服力,因为曲线有一个明确的最低点可以指出。
拟合参数化 loss 函数。 对所有运行的 loss 作为参数量和 token 数的函数拟合一个解析形式,然后在算力约束下对其做解析最小化。
来自不同失效模式的方法获得的趋同证据,是实证论文所能拥有的最强结构,当你看到时值得注意。如果三种方法得出的结论不一致,那篇值得关注的论文就会是讨论"为何不一致"的那篇。正是因为三者一致,才为那个自信的标题提供了正当性——同样也是为何后来讨论到的质疑是针对其中一种方法而非结论本身。
论文没有止步于曲线,而是训练了一个模型来验证预测。Chinchilla 是一个 700 亿参数的模型,训练时使用的语料远多于当时的常规做法——约 1.4 万亿 token——但消耗的算力预算与 Gopher 相同。Gopher 是一个 2800 亿参数的模型,但训练的 token 数少得多。相同的预算,1/4 的参数量,4 倍的数据量。Chinchilla 在评估套件的大部分测试中都优于 Gopher。
这种设计值得内化,因为这是一个真正的对照实验,而此类实验极为罕见。一个变量被固定并明确,另一个被改变,预测在论文构建理论时就已经预先声明。对比一下常规结果的样子:一篇新模型,数字更好看,但无法将提升归因于任何一个具体决策。这就是 ablation 部分存在的意义,也是对照实验天然就能做到的事情。
论文还揭示了第二个后果,容易被忽略:一个算力最优的小模型,在服务阶段也永远更便宜。训练算力只花一次;推理算力每次请求都要花。因此这个结果不仅仅在学术上整齐——它改变了部署的经济学逻辑,这就是它被如此快速采用的原因。
这个广为流传的约 20:1 的数字,是在固定训练预算下针对训练 loss 的最优解。它不是关于最佳部署模型的法律。如果你计划服务一个模型数十亿次,总成本最优解位于一个比算力最优更小的模型、但用远多于算力最优的 token 数进行训练的位置——你在训练阶段故意超支,以在推理阶段永远节省。后续几个模型家族正是基于这个原因训练时远远超越了算力最优解,它们并没有违背论文——它们在优化一个不同的目标。
它完全没有这个含义。在算力固定的情况下,一个更小但训练充分的模型胜过一个大但训练不充分的模型。增加算力,最优模型也会变大。这个结论是关于分配方式的,不是关于某个上限。
分析只统计了 token 的数量,没有对 token 的内容进行建模,论文也并非在宣称所有 token 是可互换的。清洗、去重和混合比例完全在框架之外,这个比例后来漂移的实际原因是:可供训练的 token 与当初拟合时使用的 token 并不相同。
2024 年发表的一项复现尝试审查了三种方法中的第三种——参数化拟合——报告称论文中给出的拟合系数无法从论文自身报告的数据中恢复,而且这些系数的置信区间窄得难以置信。重新分析提出了修订后的估计值,这些值更接近论文另外两种方法的结果,而不是它自己的第三种方法。
正确地理解这件事才是有趣的部分。这不是"揭穿":核心结论——参数量和 token 数应该一起扩展,以及那个时代的模型训练严重不足——来自三条独立的路径,质疑只触及了其中一条。但这确实是一个真实的修正,而且来自外部研究者仅基于已发表的数字所做的工作,这也是这个群体一直坚持的那件事的例证:标题可能是对的,而其下方的具体数字可能不对,而唯一能发现这一点的途径是方法和数据报告得足够好,好到可以被检验。
这也是为什么同样的审视无法应用于后来的前沿系统。当一份技术报告隐瞒了训练算力、token 数和参数量时,就没有拟合可以重新检验,也没有重新分析可以发表。关于这一点更多内容,请见《What Reproduction Actually Requires》。