推演语言模型的大小与计算开销

2023-05-17 14:05 686 阅读 ID:1067
机器学习算法与自然语言处理
机器学习算法与自然语言处理

当我们使用大型计算集群来训练大型语言模型(LLM),通常需要考虑计算(资源)预算的分配问题。具体来说,就是考虑如何确定模型参数的数量N及训练token数量D。

  然而,对大多数用例而言,我们不一定要去训练计算量最优的LLM,而应投入一定的额外计算(资源)来训练一个同等性能但更小的模型。小型模型的推理速度更快同时推理价格也更低,对GPU资源有限的开发人员和研究人员来说运行也更容易。

尽管许多LLM从业者训练模型的token数量比Chinchilla扩展定律(译者注:Hoffmann等人(2022)重新审视了Kaplan等人的扩展定律。表明用较小的模型对更多数据进行训练可能更有效,从而产生了参数效率提高的70B参数模型Chinchilla)建议的token数量多得多,但不是所有人员都清楚扩展定律为何对模型训练有帮助,它能让我们确定可以训练出多小的模型以及需要多少额外的计算(资源)。


本篇博客将概述如何推导模型大小与计算(资源)额外开销之间的权衡(trade-off)关系,同时揭示了有办法在最小化额外开销的条件下可以大大缩减计算量最优模型的大小。然而,如果模型大小的缩减超出一定阈值,即使增加计算资源,也无法维持特定的模型性能,我们可以把这个模型的阈值称之为临界模型大小(critical model size)。
我的分析表明,临界模型大小大约降低到计算量最优模型大小的30%,而只增加了100%的额外计算开销。值得注意的是,近来的模型尚未达到这一点,例如训练了1T个token的LLaMa-7B模型,这表明训练“更小”的LLM仍有充足的空间,但需要延长训练时间。

回顾Chinchilla扩展定律

根据Chinchilla评估扩展定律的第三种方法,作者认为损失可以建模为参数数量和训练所用token数量的函数:

  实验中,作者通过一系列不同的模型大小、训练token拟合了参数,并得出以下参数估值:

模型大小与计算(资源)额外开销

通过几个数学步骤,你会发现:

以及计算(资源)额外开销

                                             注意:原始扩展定律论文中的图12与该图表类似。

临界模型大小

如何确定我们在这条曲线上所处的位置取决于运行推理的频次。若从不运行推理,则应选择Chinchilla扩展规律来决定。若偶尔运行推理,则应选择稍小的模型。极限情况下(运行推理无限次),应选择尽可能最小的模型(即不考虑额外增加的计算开销)。

然而,在实践中,缩小模型的大小存在一个极限,该极限被称为临界模型大小(critical model size)。临界模型大小是指达到一定损失程度(loss level)所需的最小模型容量,几乎不可能在此基础上进一步缩小模型了。

据我分析,临界模型大小约为Chinchilla最优模型大小的30%,但这会增加100%的计算额外开销。请注意,临界模型大小并非一个硬性阈值,而应理解成一个收益递减的区域。如果我们不需要最小模型,就可以保守一点,选择占最优计算模型大小40-60%之间的模型,因为这样只会增加10-42%的计算额外开销。

LLaMA-7B和SantaCoder

最近有一些新模型(例如LLaMA-7B和SantaCoder),其训练时间比Chinchilla扩展定律建议的时间更长。那么换取更小模型所使用的计算资源是多少呢?

以LLaMA-7B为例:

再看SantaCoder:

  • 该模型具有1.1B个参数和236B个训练token,总计算资源预算为1.56e21 FLOP。
  • 根据计算资源预算,最优模型的参数约为2.79B个,并在93B个token上进行训练。
  • 对于SantaCoder来说,要找到一个好的配置可能比较困难,但如果K=0.46,我们就可以在258B个token上训练参数为1.29B的模型。
  • 额外计算资源开销约为24%。

相比LLaMA-7B,SantaCoder进一步减少了模型大小,根据Chinchilla扩展定律,这些模型可以进一步权衡计算,以获得更小的模型。

不同的k_n训练token

不足

1. Chinchilla扩展定律准确吗?它们对参数估计的微小变化(https://twitter.com/suchenzang/status/1616752482226671620)非常敏感,但没有考虑小模型长时间训练的情况。

2. 即使较小的模型达到相同的困惑度(perplexity),也无法确定它们是否具有相同的模型能力(例如Zero-shot prompt性能)。

3. 长时间训练较小的模型可能难以有效利用HPC集群上的有效并行化能力。

结论

根据Chinchilla扩展定律,我们还没有达到在更多token上训练更小模型的极限。鉴于开源人工智能社区的惊人创新速度,我预计功能强大的小型语言模型将很快出现!

附录

致谢

本文是BigCode 训练工作组的讨论分析结果。感谢所有参与人员,特别是:Raymond Li,Joel Lamy Poirier,Denis Kocetkov,Leandro von Werra,Loubna Ben Allal,Evgenii Zheltonozhskii,Niklas Muennighoff,Dzmitry Bahdanau和Thomas Wolf。感谢Leandro对文章标题的建议;感谢Niklas授权我们在推理运行频率方面使用他的解释来描述模型大小与计算额外开销曲线。

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn