@cwolferesearch 我们在 pretraining 和 RL 中都使用 scaling laws,但这些领域…
@cwolferesearch We use scaling laws for both pretraining and RL, but these doma…
文章比较 pretraining 与 RL 的 scaling laws:pretraining 通常用 FLOPs C=6×N×D 预测 held-out validation set 的 cross entropy loss;RL 多用 reward/accuracy,compute 可用 FLOPs 或 GPU hours,并区分 inter-model power law 外推与 intra-model sigmoidal S-curve 外推。
我们在 pretraining 和 RL 中都会使用 scaling laws,但这两个领域处理 scaling 的方式差异很大。实际上,把这两个概念都称为“scaling laws”是有误导性的……
Power laws。大多数 scaling laws 都基于(反)power law,它描述两个量之间的关系:
y = a × (1 / x)^p
对于 LLMs,这两个量通常是某个性能指标(y)和 compute(x)。我们可以用观测数据(通常是较小规模的实验)来拟合 power law,然后用这个 power law 外推在更高 compute 预算下的性能。
Pretraining 以一种非常特定的方式定义 scaling laws。在 x 轴上,我们用训练 FLOPs 来衡量 compute:C = C = 6 × N × D,其中 N 是模型参数数量,D 是训练 tokens 数量。随后,scaling law 预测 LLM 的性能,用 test loss L 来衡量——具体来说是 next token prediction 或 cross entropy loss——在同分布的 held-out validation set 上测量。
为了拟合 pretraining 的 scaling law,我们会选择若干可能的 compute 预算 C,并在每个 compute 预算下对 N 和 D 的设置做 grid search。针对每个设置 i 训练一个模型并测量其 test loss L_i,就得到形如 (N_i, D_i, L_i) 的数据集,可用于拟合 scaling law。
RL scaling laws 与 pretraining scaling laws 主要有三点不同……
(1) Performance(scaling law 的 y 轴):Pretraining scaling laws 预测一个特定指标:held-out validation set 上的 cross entropy loss。这个性能指标稳定,并且在大规模、多样化的数据集上计算。RL scaling laws 通常使用 policy 的 reward(或 accuracy)作为拟合 scaling laws 的底层指标。这是一个 downstream 性能指标,会随所研究的 domain、所使用的 benchmark,以及该 benchmark 中数据的组成而大幅波动。这不仅意味着 RL scaling laws 稳定性较差,也使其高度定制于所研究的具体 eval / task。
(2) Compute(scaling law 的 x 轴):Pretraining 有清晰的 compute footprint,通常用训练 FLOPs 数量 C = 6 × N × D 来估算。RL 在训练期间同时执行 inference 和 policy updates,这使得它的 compute footprint 更复杂。我们仍然可以尝试用 FLOPs 来衡量 RL 的 compute,但这可能与实际 GPU hours 相关性不强。作为一种解决方案,有些工作用 GPU hours 作为单位来衡量 RL scaling laws 中的 compute,但这也会让 scaling law 依赖于我们的训练框架。
(3) RL scaling laws 如何使用?对于 RL,我们会考虑为以下两者拟合 scaling laws:
- Intra-model extrapolation:根据训练早期阶段,预测同一次训练运行后期(训练更久 / 使用更多 compute 后)的性能。
- Inter-model extrapolation:根据成本较低的实验,预测使用更大模型和更多 compute 的训练运行性能(类似 pretraining)。
Inter-model extrapolation 的处理方式与 pretraining scaling laws 类似(即使用 power law)。另一方面,intra-model extrapolation 用 sigmoidal S-curve 建模;见图。Pretraining 的训练配方相对标准化,且往往较稳定,因此不需要 intra-model extrapolation。RL 训练会因训练配方 / 框架不同而有很大变化。Intra-model extrapolation 让我们能够根据早期训练动态判断某个 RL 训练配方是否可行,并进而节省 compute。
总结。这段讨论的主要结论是,scaling laws 在 pretraining 和 RL 中扮演的角色不同。对于 pretraining,scaling laws 让我们能以清晰且通用的方式预测模型能力。对于 RL,scaling laws 更混乱,通常是为特定 domain / 训练设置而专门创建,并且更强调 intra-model extrapolation。
关于这些主题的更多细节,可以查看我最近关于 RL scaling laws 的博客(涵盖 pretraining 和 RL scaling):https://t.co/40JcTJX6or