论文 · arXiv 2001.08361
神经语言模型的缩放定律 (Scaling Laws for Neural Language Models)
Scaling Laws for Neural Language Models
三句话总结
- 🎯 确定自回归 Transformer 语言模型的性能如何随模型参数量、数据集大小和算力预算进行缩放。
- 🔧 在跨越数个数量级的参数量、数据量和算力范围内训练仅包含解码器(decoder-only)的 Transformer,以拟合实证幂律和临界批次大小动态。
- 📈 性能在跨越 7 个以上数量级的算力范围内遵循平滑幂律;计算高效型训练主要将算力分配给模型大小(),而非数据集大小()。
摘要
我们研究了语言模型在交叉熵损失表现上的实证缩放定律。损失与模型大小、数据集大小以及用于训练的计算量之间呈幂律关系缩放,部分趋势跨越了七个以上数量级。在较宽的范围内,网络宽度或深度等其他架构细节的影响极小。简单的方程即可刻画过拟合对模型/数据集大小的依赖关系,以及训练速度对模型大小的依赖关系。这些关系使我们能够确定固定算力预算下的最优分配。大模型的样本效率显著更高,因此最具计算效率的最优训练策略是用相对适量的数据训练极大的模型,并在远未收敛前提前停止训练。
英文原文摘要
We study empirical scaling laws for language model performance on the cross-entropy loss. The loss scales as a power-law with model size, dataset size, and the amount of compute used for training, with some trends spanning more than seven orders of magnitude. Other architectural details such as network width or depth have minimal effects within a wide range. Simple equations govern the dependence of overfitting on model/dataset size and the dependence of training speed on model size. These relationships allow us to determine the optimal allocation of a fixed compute budget. Larger models are significantly more sample-efficient, such that optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence.
论文解读
问题与动机
随着 Transformer 架构的引入,语言建模取得了飞速发展,但训练大型模型需要耗费大量的计算资源和数据。在这项工作之前,人们尚不清楚性能(以交叉熵损失衡量)如何取决于架构形状(深度与宽度)、参数量、数据集大小和训练计算量。由于缺乏定量的缩放关系,研究人员通常会将较小的模型训练至接近收敛,而不是理解如何最优地分配固定的计算预算。
核心思想
- 规模决定一切,架构影响微弱:在较宽的范围内,Transformer 的性能高度取决于非嵌入参数量 、数据集大小 和计算量 ,而当 固定时,深度、宽度和注意力头数量等架构超参数的影响微乎其微。
- 平滑的幂律缩放:交叉熵测试损失随 、 和计算量 呈幂律缩放,这种规律跨越了六到八个以上的数量级。
- 避免过拟合需亚线性增加数据:为了避免过拟合,数据集大小只需随参数量亚线性增长:。
- 高计算效率意味着大模型提早停止:要在固定计算预算 下最大化性能,应该训练极大的模型并在远未收敛前停止,计算预算的分配策略应为:,批次大小 ,训练步数 。
方法(含核心公式)
作者在 WebText2 上评估了 decoder-only Transformer 模型(使用 BPE 分词,上下文长度 )。模型大小 明确排除了嵌入参数:。
每次前向-反向传播的非嵌入计算量近似为 。
单变量幂律:
- 受参数量限制(Parameter-limited):
- 受数据量限制(Data-limited):
- 受算力限制(Compute-limited,当批次大小 时):
参数与数据联合缩放:
训练动态与临界批次大小: 拟合步数 的学习曲线(当 时的步数):
最优分配: 高效训练的目标损失约比完全收敛的损失高出 ()。
实验结果(核心数据)
- 缩放趋势在跨越 8 个数量级的算力、6 个数量级的参数量和 2 个数量级的数据量上均成立。
- 将 翻倍会使损失降低为原来的 倍。
- 避免过拟合的阈值条件:。将模型大小增加 ,仅需将数据量增加约 。
- 当算力预算 增加 时,计算高效型训练应将模型大小 增加 (),批次大小增加 (),而训练步数仅需增加 ()。
- 与训练至接近收敛(偏差在 以内)相比,计算最优训练使用的算力减少了 ,参数量增加了 ,参数更新步数减少了 。
- 迁移到分布外语料库(Books Corpus、Common Crawl、English Wikipedia)的损失随模型规模平滑改善,相对于 WebText2 验证损失仅产生一个几乎恒定的固定偏移罚项。
局限性与开放问题
- 论文缺乏严格的理论推导(例如统计物理基础)来解释精确的指数成因。
- 算力估算公式 忽略了与 成比例的注意力特定成本,以及当 时与上下文相关的计算开销。
- 在极端规模下,正则化、dropout 调优和学习率调度等超参数大多保持固定,未针对不同数据集大小进行单独微调。
- 外推计算最优趋势会导致一个矛盾: 将在 、 参数量及 处与 相交,这表明经验趋势最终必然会在自然语言熵下界附近失效或趋于平缓。
关键术语
- Non-embedding parameters ($N$) (非嵌入参数)
- 排除词表和位置嵌入矩阵后的 Transformer 参数量,计算公式为 。
- PF-day (拍次浮点运算天)
- 算力单位,对应以每秒 次浮点运算持续运行一整天的计算量,等于 次 FLOPs。
- Critical batch size ($B_{\text{crit}}$) (临界批次大小)
- 在计算效率与串行训练时间之间实现最优权衡的训练批次大小,与损失的某一幂次呈反比缩放。
- Compute-efficient frontier (计算高效前沿)
- 在给定固定计算预算下,使验证集损失最小化的模型大小、批次大小和更新步数的最优配置。
- Sample efficiency (样本效率)
- 模型在每处理一个数据 token 时的性能提升速率;与较小的模型相比,较大的模型达到目标损失所需的 token 明显更少。
- WebText2
- 截至 2018 年 10 月从 Reddit 站外出链爬取扩展的文本预训练数据集,用于拟合主要的实证缩放定律。
- Early stopping step ($S_{\text{stop}}$) (早停步数)
- 在有限数据集上由于发生过拟合导致测试损失停止改善的训练步数,作者为此推导了实证下界。
常见问题
为什么在计算模型大小 $N$ 时要排除嵌入参数?
排除词表和位置嵌入后,可以在不同的深度和参数量下得出明显更清晰、更通用的幂律趋势,这表明嵌入参数的变化不会显著改变 Transformer 的核心容量。
固定的计算预算应该花在训练更长时间上,还是训练更大的模型上?
应主要花在训练更大的模型上。在计算效率最优的训练中,参数量的缩放关系为 ,训练步数为 ,在远未收敛之前即停止训练。
Transformer 的宽高比(深度与宽度之比)对损失有什么影响?
当非嵌入参数量 固定时,性能对深度与宽度之比或注意力头的数量依赖性极弱;宽高比可以变化 40 倍,而损失只有微小的变化。
交叉熵损失如何迁移到分布外文本?
迁移到其他语料库的损失随模型规模以大致相同的幂律速率改善,与训练分布相比,主要差异仅在于一个大致恒定的附加惩罚值。
本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。