返回课堂

规模扩展:把模型、数据和计算放在同一比较条件下

视觉段问“扩大训练条件后,架构表现会怎样变化”;本篇处理另一个问题:“训练计算预算已经固定,怎样在模型与数据之间分配?”这两种比较的自变量和证据职责不同,不能用一张扩展图回答全部问题。

规模不是一个只有“参数更多”方向的选择。训练计划同时决定模型有多少参数、实际读多少token、付出多少计算,并受到数据质量和实现条件影响。比较两个模型之前,先确定问题:我们在比较材料使用效率、训练计算效率,还是完整项目的质量与总成本?

N、D、C分别是什么

N是参数规模,D是训练实际消费的token数,C是训练计算量。D包含重复读取;它不同于数据库存和独特token数量。对常见稠密Transformer,可以用主要矩阵运算近似

$$ C\approx6ND. $$

这个式子概括前向与反向的主要训练计算,忽略或近似若干架构、长上下文及实现相关项。它不能当作所有模型、所有序列长度下的精确账单,尤其不能把MoE的总参数量未经区分直接代入。计算量、墙钟时间和货币费用也不相同:硬件利用率、通信、内存搬运与价格会影响后两者。

比例推算可以先帮助预算。N与D各翻倍,近似计算变成4倍;C固定时,N翻倍对应D约减半。这只给出可比较的配置,没有自动给出哪个最好。还要训练这些配置,用同一目标和评价协议观察效果。

N42的两张方案卡是独立教学预算:

配置 参数 N 消费 token D 6ND 近似计算
甲 4B 400B 9.6×10²¹ FLOPs
乙 8B 200B 9.6×10²¹ FLOPs

这两点仅用于算清固定预算下的联动,不是下一张 Chinchilla 原图的数据点,也没有被训练或评出优劣。

Kaplan Figure 2:同一训练记录,换横轴问不同问题

原图左侧横轴为Tokens Processed,右侧为Compute (PF-days),两者纵轴均为Test Loss。颜色图例为Parameters (non-embedding),即不含embedding的参数量。两图保留对数刻度,不能把画面等距理解为绝对数量等差。

左图固定横坐标,问读过相近token后哪个模型测试损失更低。较大模型可能更有样本效率。右图固定计算量,问花了相近算术预算后谁的损失更低。大模型每个token更贵,所以样本效率好不自动等于所有预算下计算效率更好。PF-days是计算量单位,代表每秒一千万亿次浮点计算持续一天的量;它不是报告某次训练实际只运行一天。

读图还要分清测量、拟合和外推。历史规律在观测范围内能提供有用预测,但把线延伸到没有运行的区域,不等于在那里已经得到同样证据。测试损失是对概率预测的评价,也不是下游任务成绩,不能把下降幅度直接翻译成某个任务提升几个百分点。

Chinchilla Figure 3:固定计算预算后的两端限制

Chinchilla的IsoFLOP方法固定计算预算,改变模型大小和相应训练token。原图左面板横轴Parameters、纵轴Training Loss。课堂先展示论文中3×10²⁰ FLOPs预算,这与前面的9.6×10²¹教学预算是另一笔计算量;保留实际点与虚线拟合,不从图像估读后伪造精确最优坐标。

较小模型的每token成本低,可以在同预算内读更多材料;但容量可能限制继续训练的收益。较大模型容量增加,每token成本也增加,因而可读token减少,可能尚未充分训练就耗尽预算。曲线低处给出在比较条件内更合适的分配。更多预算下,较合适的N与D都可能增长。原研究为不同训练长度匹配相应学习率日程,不应把任意训练轨迹中途截取的loss都当成相同协议下的实验点。这里的损失标为训练损失,与上文 Kaplan 图中的测试损失不同,不能统一改名。

最优分配还依赖数据、模型、优化方法和评价目标。它不是一个脱离条件的“模型与数据永远按固定比例增长”口号。若数据质量下降、重复增加或上下文计算项改变,历史拟合也需要重新检验。

较大规模的历史检验怎样读

Chinchilla约70B参数、1.4T训练token;Gopher约280B参数、300B训练token。论文以相近训练计算预算比较整体配置,Chinchilla在报告的多项任务上表现更好。这为充分训练较小模型提供了重要实践证据,也提醒我们参数规模不能独自决定能力排序。

但这不是只改变N和D的干净消融:优化器、分词器和数据配方也有变化。规模值经过舍入,将它们乘入6ND并不能证明计算严格相等,也不能将所有收益唯一归因于数据量增加。系统实验与较大规模验证应合起来读,同时保留混杂因素。

训练最优与生命周期成本

训练结束后还要使用模型。如果模型会被调用大量次数,较小模型训练更久可能降低每次推理的开销,从而值得前期投入;如果调用很少,则未必。可以先用概念账本

$$ \text{总成本}=\text{训练成本}+\sum_{j=1}^{R}\text{第}j\text{次请求成本} $$

提醒自己不要漏掉长期使用。它不是一个只依赖N的公式:请求长度、输出长度、batch、缓存复用、硬件和延迟目标都会改变每次成本,质量要求还决定方案是否可接受。没有真实调用与测量数据,不应给出通用盈亏平衡次数。

最后,计算预算能买多少运算,与这些运算能否装进设备是不同问题。训练状态、激活、通信和中间存储可能限制执行。接下来的训练工程沿同一个8B教学模型数清状态,再说明DDP、ZeRO、并行切分和FlashAttention分别消除哪一种瓶颈。

来源与课堂定位

本篇 Markdown