Chinchilla:参数与 token 的算力分配#
TL;DR#
本页内容8 个部分
1. 同一训练预算下怎样选择模型大小#
固定训练算力时,参数更多的模型每处理一个 token 需要更多计算,因此能训练的 token 数更少。配置选择需要同时比较模型大小与训练量,不能只增加参数量。
例如,在同一近似预算下有三个候选:(1)0.5B 参数训练 40B tokens;(2)1B 参数训练 20B tokens;(3)2B 参数训练 10B tokens。B 表示十亿。三组参数量与训练量的乘积相同,但仅凭预算相同,还不能判断哪组的最终 loss 最低。
Kaplan 等提出的算力最优缩放估计中,参数量随预算的增长快于训练 token 数。Chinchilla 重新估计这一关系,用多规模训练实验比较相同预算下的配置,并估计怎样分配参数量与训练量。[1]
2. 用多规模实验建立配置选择依据#
2.1 先固定预算、数据与比较目标#
设 为模型参数量, 为训练过程中处理的 token 总数, 为训练计算量,单位是 FLOPs。 统计实际处理量;同一段数据重复训练时,每次都计入,但重复 token 与新数据的效果不一定相同。
对常规 dense Transformer,参数相关训练计算常用 粗估。三个候选的近似预算均为 FLOPs。例如,1B 参数与 20B tokens 对应 FLOPs。系数 6 近似计入参数相关矩阵运算的前向和反向计算;注意力、序列长度与实现还会影响实际计算量,FLOPs 也不等于硬件耗时。[1]
TPP 的全称是 Tokens Per Parameter,即每个参数对应的训练 token 数,定义为 ; 是它的倒数。
记 为给定模型族、数据与训练配方下,用相同统计规则得到的最终预训练 loss。配置选择的目标为:
这里的“最优”针对给定训练条件和计算预算下的预训练 loss,不表示模型已经收敛,也不直接表示某项下游任务得分最高。
比较时固定模型族、tokenizer、数据分布和训练配方的选择规则。训练长度不同时,学习率日程仍需匹配各自的终点;否则 loss 的变化可能来自规模与训练量以外的条件。
2.2 三种实验方法怎样相互核对#
Scaling ladder 指用多规模训练实验预测更大规模下的配置:先在较小预算下测量参数量、训练量与 loss 的关系,再预测目标预算下的候选配置。
Chinchilla 使用三种方法:(1)训练曲线包络;(2)等算力比较;(3)参数化 loss 拟合。三种方法相互核对,检查估计的算力最优配置是否接近。[1]
| 方法 | 实验与拟合方式 | 直接观察的对象 |
|---|---|---|
| 训练曲线包络 | 为不同大小的模型设置多个训练长度,在每个算力位置选择最低 loss | 各算力位置上观测 loss 最低的候选配置 |
| IsoFLOP,等算力比较 | 固定若干预算,改变模型大小并相应调整 token 数,在每个预算内寻找最低 loss | 相同预算下 loss 关于模型大小的最小值位置 |
| 参数化 loss 拟合 | 联合拟合 ,再在算力约束下求最优解 | 整个 loss 曲面及各预算下的最优配置 |
按表中方法顺序,三种估计得到的最优参数量关于计算预算 的幂律指数分别约为 0.50、0.49、0.46,最优训练 token 数的对应指数分别约为 0.50、0.51、0.54。这些指数均接近 ,但三种方法估计的最优配置并不完全相同。
在多规模训练实验中,可按 IsoFLOP 方法固定较小预算,比较不同参数量与对应训练量的组合。候选模型的规模应包含 loss 最小值两侧的配置;提高预算后重复比较,再拟合最优参数量随预算的变化。如果所有候选都位于最小值的同一侧,就还不能确定该预算下的最优规模。
训练长度改变时,还需要匹配学习率日程。一个计划训练 100B tokens 的训练实验,在 10B tokens 处可能仍处于较高学习率阶段;它的中间 loss 不能直接当成专门训练 10B tokens、并完成衰减后的最终 loss。学习率调度的通用机制见学习率调度,主干复用与冷却分支的预算比较见学习率配方。
3. 拟合 loss 并计算最优配置#
3.1 拟合损失函数并比较候选#
实际使用时,先训练一组较小的候选模型,再使用观测值 拟合函数 ;下标 表示一次训练实验。这里 是观测 loss,不能与预测值 混为一谈。原实验使用平滑训练 loss,在数据充足、训练 token 少于完整语料量的设置下将其用于估计泛化表现;在新的多规模训练实验中,还应固定独立验证集。
为了在未实际训练的配置上预测 loss,可以拟合下面的经验函数:
是预测 loss; 由实验拟合,其中 取正值。 表示拟合的渐近 loss; 描述有限模型容量造成的差距; 描述有限数据与有限训练带来的差距。在系数固定的拟合函数中,增大 会减小容量项,增大 会减小训练不足项;固定算力时, 和 不能同时独立增加。[1]
这是经验建模,各项并非可以独立测量的真实误差。固定数据分布、模型族和训练配方后,才有理由用同一组系数拟合;更换条件时需要重新验证。
下面使用公开拟合系数,计算相同预算下的候选 loss 与连续最优配置。Chinchilla 附录 D.2 公开的参数化拟合系数为 、、、、。以下按这些已四舍五入的系数和 重新计算,不是实际训练结果,也不保证复现论文表格中的配置。这里 、 必须使用参数和 token 的实际计数,不能直接代入以 B 为单位的数值。[1]
沿用三个候选,均采用 FLOPs。先代入已拟合的 loss 函数,分开计算容量项、训练不足项与总 loss;这些数值是预测结果,不是实测模型分数。分项与总 loss 均先使用未四舍五入的数值计算,再各自保留四位小数:
| 候选配置:参数量 / 训练 token 数 | 容量项 | 训练不足项 | 总预测 loss |
|---|---|---|---|
| 0.5B / 40B | 0.4480 | 0.4415 | 2.5795 |
| 1B / 20B | 0.3540 | 0.5361 | 2.5800 |
| 2B / 10B | 0.2796 | 0.6509 | 2.6206 |
以 1B 参数、20B tokens 为例,参数量和训练量先换成实际计数,再分别计算两项差距:
这里用未四舍五入的分项求和,所以总值不必等于表中四位小数的直接相加结果。
三个离散候选中,0.5B / 40B 的预测 loss 最低。根据表中数值,它与 1B / 20B 的预测差距约为 0.0005;若拟合误差或重复训练的波动超过这一量级,就不能仅凭该排序决定实际配置。
3.2 在预算约束下求最优配置#
拟合 loss 后,需要在计算量相同的候选配置中求预测 loss 的最小值。以下固定 ,将近似算力关系作为等式约束 ,并在 的连续范围内求解。求得的配置仍需通过目标规模的训练实验验证。
固定预算后有 。代入预测 loss,得到只关于参数量的函数:
在约束 下,增大 会降低容量项,同时因训练 token 数减少而增大训练不足项。对 求导并令其为零:
该驻点给出所用经验函数在连续正值范围内的唯一最小值:将参数量改写为 后,预测 loss 关于 严格凸,且在两端均趋于无穷大。实际模型只能选择离散规格,仍需检验附近可训练的配置。
在最优点,容量项与训练不足项对 的导数大小相等、符号相反。这不要求两项本身的数值相等;只有 时,才有 。
继续移项,得到:
当 接近 1 时,两个增长指数都接近 。在这一条件下,预算变为原来的 4 倍时,最优参数量和训练 token 数分别约为原来的 2 倍。近似同比增长依赖拟合系数;仅从 无法确定最优参数量与训练量的比例。
使用已经推导的连续最优解,求得该拟合函数在连续规模下的最小值:
对应的 。此时容量项约为 0.3996,训练不足项约为 0.4852,总预测 loss 约为 2.5747,略低于表中的三个候选。模型规格不能连续取值时,可在约 0.7B 的附近选取可实现配置,再通过实际训练检验预测 loss 及配置排序。
3.3 计算最优 TPP 及预算变化#
给定最优配置后,TPP 是输出结果,不需要预先指定为 20。
将上面得到的最优 token 数与参数量相除,就能求出给定预算下的最优 TPP:
如果关心的是参数与 token 的比例,取倒数即可:
因此,给定 还不足以确定最优 TPP,必须有同一训练条件下的拟合系数。当 时,预算项的指数为零,最优 TPP 是常数 ;当 时,最优 TPP 随预算增加而上升;当 时则下降。 是与配置无关的常数,不影响最优比例。
反过来,确定一个 TPP 值 后,有 。将它代入算力约束,便能从预算直接算出配置:
取 ,得到拟合函数下的最优配置;若只是人为指定 ,得到的是遵循该经验比例的配置,是否最优仍需验证。
更换预算后,按同一组系数计算如下;表格数值保留近似值,算力约束以未四舍五入的结果核算。
| 训练预算 (FLOPs) | 最优参数量 | 最优 token 数 | 最优 TPP |
|---|---|---|---|
| 0.7002B | 28.56B | 40.79 | |
| 1.310B | 61.09B | 46.65 | |
| 5.160B | 322.97B | 62.58 |
这组系数的 TPP 增长指数是 。因此预算扩大 4 倍时,最优 TPP 乘以 ,从约 40.79 上升到约 46.65。这里的 TPP 随预算变化,因为两个拟合指数不同。补充推导使用同一预算下、两个指数均为 的假设函数,说明最优 TPP 不随预算变化的条件;其中的系数与论文公开拟合系数不同。
4. 从训练观测到候选配置验证#
将这套方法用于自己的训练设置时,需要完成四个步骤:
- 收集可比较的训练观测。 固定模型族、tokenizer、数据分布与损失统计规则,运行多个参数量和训练长度的组合。为每次实验记录 、实际计算量及学习率日程,区分计划预算与实际消耗。
- 拟合并交叉核对。 用训练观测拟合损失函数,再与曲线包络或等算力比较得到的最小值位置核对。候选规模需要覆盖 loss 最小值两侧;所有观测都在同一侧时,尚不能确定最优规模。
- 生成目标预算下的候选。 由拟合系数计算连续最优参数量、训练量与 TPP,再选取附近可实现的模型规格。对每个离散参数量重新按算力约束计算训练量,不能将两个连续最优值分别取整后仍假定预算严格相同。
- 验证预测与实际结果。 训练候选模型,并用未参与拟合的规模检验外推误差。比较实测 loss、预测误差与重复训练的波动;预测差距小于这些误差时,不只凭拟合排序确定配置。
本篇使用公开系数完成了候选比较和连续最优配置的计算,没有开展新的训练实验。拟合函数给出的约 0.7B 参数、28.56B tokens 是该近似预算下的预测配置;是否适合新的模型族或数据,需要按上述步骤检验。
5. 固定比例比较与方法局限性#
常见的 对应 Chinchilla 论文报告的约 70B 参数、1.4T 训练 tokens(T 表示万亿)的配置,可作为设计初始多规模实验的参考。正文采用参数化拟合的公开系数计算 TPP,补充手算则特意选择了让 TPP 等于 20 的系数。两者用于解释不同条件,不能将它们视为同一组拟合系数的预测结果。
当最优参数量和最优训练 token 数关于计算预算的幂律指数都等于 时,最优配置的 不随预算变化。这两个增长指数仅接近 时,比例随预算的变化由拟合系数和 TPP 公式确定,不能在任意预算范围内将其视为常数;具体比例还依赖拟合系数。因而“增长指数接近”和“比例约为 20”是不同结论。
固定参数量 后,即使训练 token 数超过 ,继续训练仍可能降低 loss。“训练算力最优”比较的是同一预算下各参数量与训练量组合的最终预训练 loss;“固定参数量后,增加训练量能否继续降低 loss”是另一个问题。若目标还包括部署显存或大量推理的成本,选择标准也会改变。
Chinchilla 主要建立预训练 loss 的规模规律。将其用于新的模型族或数据分布时,不能默认沿用原拟合系数。应在新条件下检验这些系数是否适用,必要时重新拟合;各组实验需固定 tokenizer、数据分布和损失统计规则,并记录实际计算量。还应使用未参与拟合的较大模型检验外推预测。若目标是具体任务准确率,则需要进一步建立 loss 与任务表现之间的关系。
参考资料#
- Training Compute-Optimal Large Language Models,Hoffmann 等,2022。§2 讨论学习率日程的影响;§3 给出三种估计方法、经验 loss 函数与增长指数;附录 D.2 给出参数化拟合系数;附录 F 说明 FLOPs 计算。
补充推导#
相同指数下,为什么最优 TPP 与预算无关?
相同指数下的 TPP 手算#
沿用正文的训练预算 FLOPs。按照 ,三个候选配置如下,B 表示十亿:
| 参数量 | 训练 token 数 | 估算训练 FLOPs |
|---|---|---|
| 0.5B | 40B | |
| 1B | 20B | |
| 2B | 10B |
这些候选的估算预算相同。为演示预算约束下的配置选择,假设预测 loss 函数为:
这是手算用的假设函数,不是论文拟合值或实际训练结果。 它对应 、、、。
先代入拟合函数的驻点条件。两个指数相同,最优点满足:
因此这个假设函数下,最优组合是 1B 参数、20B tokens,最优 TPP 为 ,对应 。再对三个候选分别计算两项差距和预测 loss,核对最优解:
| 配置:参数量 / 训练 token 数 | 容量项 | 训练不足项 | 预测 loss |
|---|---|---|---|
| 0.5B / 40B | |||
| 1B / 20B | |||
| 2B / 10B |
从第一组增加到第二组时,容量项的下降超过训练不足项的上升,总预测 loss 降低;继续增加到第三组时,训练不足项的上升超过容量项的下降,总预测 loss 回升。
如果预算增加到 FLOPs,这个函数的两个指数相同,最优参数量和 token 数各扩大 2 倍,得到 2B / 40B,最优 TPP 仍为 20。代回后预测 loss 为 。
为什么驻点是拟合函数的唯一全局最小值?
这个驻点也是所用经验函数在连续正值范围内的唯一最低点。令 ,其中 为自然对数。将约束下的 loss 改写为指数函数,再对 求二阶导数:
因此, 关于 严格凸。当 时,容量项趋于无穷大;当 时,训练不足项趋于无穷大,所以该驻点给出唯一的全局最小值。实际模型只能取离散配置,仍需比较附近可训练的规格。