微信扫码
与创始人交个朋友
我要投稿
《倚天屠龙记》中有一传说:“武林至尊,宝刀屠龙,号令天下,莫敢不从” ,为了得到屠龙刀江湖血雨腥风。但最后张无忌方知,所谓“武林至尊”,不在宝刀本身,而在刀中所藏的武穆遗书,以此兵法临敌,定能战必胜,攻必克,最终自是“号令天下,莫敢不从”。
同样,在 scaling laws 这个方向,似乎有一把屠龙刀的魅力,掌握 scaling laws 到底对大模型训练有什么帮助。
近期,美团发布的一项关于 scaling laws 的研究引起了不少关注。本文旨在解读该论文,感兴趣的同学可以将该论文和 OpenAI 原始论文一起研读,同时也期待更多 scaling laws 的研究。
Scaling laws 在大型模型训练的众多方面扮演着关键角色,诸如 GPT-4、Gemini 等模型的成就,都有 scaling laws 的深刻影响。尽管 OpenAI 在其早期的关于 scaling laws 的论文 [1] 中提出了基础理论,但该文缺乏一些具体的求解过程,且未能在更大规模的模型上进行验证。与此同时,后续研究,例如 DeepMind 的 ChinChilla [2] 还提出了不同的结论。
针对这一点,该论文着手探究了原始 scaling laws 研究所遗漏的细节,力求复现一套可靠和精确的 scaling laws 公式。同时,它还揭示了 ChinChilla 研究结果与 OpenAI 理论不一致的根本原因(数据分布和长下文长度不同),以期为大模型训练领域提供更深入的洞察。
论文地址:
论文作者:
作者单位:
概述
1.1 Take-away
超参,例如批处理大小(batch size)、学习率(learning rate)和学习率调度器(learning rate scheduler),在模型的收敛速度上起着显著作用。然而,只要这些参数设置在一个合理的范围之内,并结合充足的训练步数与大量数据进行训练,它们对于最终的收敛损失(loss)值的影响可以忽略不计。
调整 batch size 大小的主旨在于找到训练时间与计算资源消耗(也就是成本)之间的最佳平衡点。我们能够基于 loss 值确定一个关键的批处理大小(critical batch size),以实现时间和计算成本的相对最优。采用这一 critical batch size 进行训练,相较于使用无限大的 batch size(以实现最小训练步数),需要双倍的训练步数来达到同样的 loss 值。
上下文长度、tokenization、数据分布和模型架构本身,对于 scaling laws 公式中的系数有着显著的影响。然而,这些因素并不改变 scaling laws 的基本形式。这也解释了为何 ChinChilla 研究得出了不同的结论,因为它们在上下文长度和数据集方面有所不同。
当给定固定的上下文长度、tokenization、数据分布和模型以及 learning rate scheduler 时,我们发现,只要 lr 设置得当,训练步数、batch size 以及模型规模与 loss 之间存在着一种精确且可预测的幂律(power-law)关系。
给定任意 batch size 下对应的完整 test loss 曲线。
这种方法有助于我们在训练大型模型之前预设多个关键设置,如在固定计算预算内最优的模型规模和训练步数、所需的数据量,确保资源的高效利用。
1.2 Methods
本研究的核心目标在于深入探讨 OpenAI 最初提出的 scaling laws,这些理论内容非常广泛。然而,本文选择集中研究以下三个公式,因为它们对于大型模型的训练具有至关重要的指导作用。
通过这三个精选的公式,我们可以在训练过程启动之前,准确地预测大模型的训练行为。具体来说,这些公式的意义如下:
1. L(N):预测训练参数数量为 N 的模型理想情况下的最终收敛损失(converged loss)。也就是说,当模型在无限量的训练数据上训练至完全收敛时,能够达到的 loss 极限值。
2. L(N, Smin):预测在特定的最小训练步数 Smin 下(此时假设 Batch Size 无限大),参数数量为 N 的模型每一步的 loss 值。这里的 Smin 是指在无限大的 Batch Size 情况下,达到特定 loss 值所需的最少训练步数。
3. L(N, S, B):预测在给定训练步数 S 与任意 Batch Size B 下,参数数量为 N 的模型的测试 loss。显然基于此公式,我们可以绘制出 loss 值随训练步数变化的曲线。
前提条件:为了准确预测 L(N),首先假设模型能够接触到无限量的训练数据。在这样的假设下,模型将不会遇到过拟合问题,从而训练 loss 与测试 loss 趋势高度一致。实际上,对于很小的模型而言,一旦训练数据量达到数亿 tokens,便可视为接近无限数据。
超参的容忍度:实验表明,只要超参(如 batch size、learning rate 和 learning rate scheduler)的设置处于合理的范围内,它们主要影响的是模型的收敛速度,而对最终的收敛 loss 影响不大。这意味着在估计 L(N) 时,无需对超参数进行细致调整,仅需采用一组固定的超参数设置即可。
前提条件:为了准确预测 L(N, Smin),必须建立在无限大的 batch size 下训练模型的假设之上。在此条件下,随机梯度下降(SGD)演变为梯度下降(GD),此时,每一步的更新都基于整个数据集的梯度。此时的 Smin 指的是达到指定损失值所需要的最少训练步数。
求解方法:
如何模拟无限 batch size?:实际上,我们无法进行真正的无限大 batch size 训练。但是,我们可以通过试验方法找到一个足够大的 batch size,使得进一步增加 batch size 不会减少达到特定 loss 值所需的训练步数,此时 loss 曲线将不再发生变化。此时,该足够大的 batch size 可以视为无限 batch size。
1.2.3 如何确定L(N, S, B):模型参数量为N,batch size B情况下,模型在训练步数S时的loss
前提条件:我们知道,对于达到到某个特定的 loss 值,当 batch size 越小,所需要的训练步数 S 就越多,当 batch size 无限大时,需要的最小训练步数就是 Smin。那么 Smin 与 batch size B 以及训练步数 S 之间的关系该如何建立?
数值估计 L(N, S, B):显然公式里损失值 L 无法直接求解,可以采用二分法来计算,这是因为它一定存在一个确定解。
1. 左半部分(Left):2B 参数的模型在 C4 测试数据上的 loss 曲线。图中比较了实际测试 loss (Actual Test Loss)和预测测试 loss (Predicted Test Loss)随着训练步数(Step)的变化。可以看到,在 warm-up stage 之后,实际 loss 和预测 loss 非常接近,预测的准确性很高。
2. 右半部分(Right):33B 参数的模型在代码测试数据(code test data)上的 loss 曲线。同样地,除了在训练初期的 warm-up 阶段外,实际 loss 和预测 loss 在整个训练过程中也保持了很好的一致性。
2.2 Power项分析
Table 1 展示了在 C4 训练数据上,通过实验估计得到的 scaling laws 公式中的常数值。这些常数包括 αN、αS、αB、Nc、Sc 和 B∗, 表中列出了两组数据:
1. C4 Value:第一行提供了在 C4 数据集上,通过本研究估计得到的常数值。这些值是通过训练最大参数量为 60M 的小型模型,并使用这些模型来估计 scaling laws 公式中的常数项得到的。
2. [KMH+20]:第二行显示了 OpenAI 原始的 scaling laws 论文中在 WebText 训练数据上估计的常数值。
这里可以重点关注 αN、αS、αB 这些 power 项,尽管这里和 OpenAI 使用了不同的数据集,但因为 C4 数据集与 WebText 数据集都是网页清洗的数据,两者的分布非常相似,于是可以看到在 C4 数据集上计算的 power 项与 WebText 数据集上的 power 项是非常相近的。
这反应出数据本身对 power 起到很大的影响。同时两个实验的长下文窗口长度也都是 1024,如果以 ChinChilla 使用的 2048 窗口大小去实验,则会导致 power 项非常不同。
相比于前面使用同分布的测试数据,这里的测试数据使用私有的中文数据,这类数据在训练数据中罕见因此可以认为是 Out-of-Domain(OOD) 的数据。
实验包括了三个不同规模的模型,分别是 500M、2B 和 33B 参数的模型,对于领域外数据,预测的 loss 曲线在训练初期与实际 loss 曲线存在波动,但整体趋势和最终的收敛 loss 值与预测值仍然相当接近。
这说明即使在领域外数据上,scaling laws 也能够提供很好的预测,这个实验结果反应了 oai scaling laws 在不同数据集和模型规模下的普适性,甚至是在处理不同分布的数据时。
1. 降低大模型试验成本:不仅仅是预测 loss,还可以帮助确定最佳的实验配置,大幅减少试验成本,使大模型的训练从试错过程转变为基于科学的方法。
2. 确定模型大小 N 和训练步数 S:给定固定的计算资源的情况下,可以选择最优的模型大小和训练步数,这有助于避免资源浪费,并确保在预算限制下达到最佳性能。
3. 确定数据混合比例:可以通过预测不同数据源上的测试 loss 曲线走势帮助确定最佳的数据混合比例,从而优化模型的预训练质量。
4. 上下文长度的影响:上下文长度对公式中的 power 项有显著影响,需要针对不同的上下文长度重新计算系数。
5. 探索新的结构:例如 MoE 等结构也有自己的 scaling laws,掌握 dense 模型的 scaling laws 可以帮助举一反三。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-05-28
2024-04-12
2024-04-25
2024-05-14
2024-08-13
2024-07-18
2024-05-06