【指南】Chinchilla:训练计算最优大型语言模型

2024年06月13日 由 alex 发表 210 0

本文是对论文《训练计算最优的大型语言模型》的细分,该论文讨论了在给定计算预算下训练转换语言模型的最优模型大小和标记数量。当前训练大型语言模型的趋势非常注重将模型扩展到更大的规模,但该论文指出,这些模型的训练量明显不足。通过大量实验发现,模型规模每扩大一倍,训练的标记数量也应增加一倍。我们通过训练一个计算最优模型 “Chinchilla ”来验证这一假设,该模型使用与 Gopher 相同的计算预算,但参数数量为 70B,数据量是 Gopher 的 4 倍。在大量下游评估任务中,Chinchilla 的性能明显优于 Gopher(280B)、GPT-3(175B)、Jurassic-1(178B)和 Megatron-Turing NLG(530B)。Gopher 是 Deepmind 推出的 280B 参数语言模型,在 10.5TB 的文本语料库中进行了训练。这意味着 Chinchilla 在微调和推理方面使用的计算量更少,大大方便了下游使用。


最近推出的大量语言模型在各种任务中表现出了令人印象深刻的性能,其中最大的语言模型拥有超过 500B 的参数。训练一个大型语言模型的成本极高,而且随着模型大小的增加而增加。因此,预训练语言模型通常只进行一次,因此在给定计算预算的情况下,准确估计最佳模型超参数至关重要。OpenAI 的一篇论文 “神经语言模型的缩放规律 ”指出,自回归语言模型的性能会随着参数数量的增加而增加,并呈现幂律关系。因此,各组织一直在训练越来越大的模型,以期望提高性能。但是,目前的大型模型应该大大缩小,但训练时间却比目前要长得多。


为了计算模型大小与训练标记数之间的权衡,作者将最终的预训练损失?(?, ?)作为模型参数数(?)和训练标记数(?)的函数进行了建模。对于计算预算(?),目标是在 FLOPs(?, ?) = ? 的约束条件下找到最小?。


1


函数 Noptimal(C) 和 Doptimal(C) 描述了计算预算 ? 的最优分配。这些函数是根据 400 多个模型的损失估算的,这些模型的参数从不足 7000 万到超过 1600 亿个不等,并在 50 亿到超过 4000 亿个标记上进行了训练,每个模型配置都在多个不同的训练周期内进行了训练。结果如下:


2


根据估算,对于训练 Gopher 所使用的计算预算而言,最佳模型的规模应缩小 4 倍,而训练的代币数量则增加 4 倍。通过在 1.4 万亿个代币上训练 70B 模型 “Chinchilla”,我们验证了这一点。Chinchilla 的表现不仅优于 Gopher,而且大大缩小了模型的大小,为下游任务的微调和推理提供了极大的便利。因此,与其他性能相当的语言模型相比,Chinchilla 适合在硬件较小的生产环境中使用。


在训练语言模型时,模型大小和训练token数量并不是唯一需要选择的两个参数。其他重要因素包括学习率、学习率调度器、批量大小和优化器。在本文中,作者并没有对这些其他超参数进行实验,而是依赖于现有的工作,并提供了实验启发式方法。本文介绍了三种不同的方法,以回答推动整个研究的问题: 在 FLOPs 预算固定的情况下,应该如何权衡模型大小和训练标记数量?在所有三种方法中,都训练了一系列模型,这些模型的大小和训练代币的数量都各不相同,由此产生的训练曲线被用来拟合它们应该如何扩展的估计值。这三种方法得出的预测结果相似,都认为参数数和训练代币数应同样增加。下面将对这三种方法进行说明:


1. 方法 1:固定模型大小,改变训练token数量

顾名思义,对于一个固定的模型系列(参数从 7000 万到超过 1000 万个不等),训练步骤的数量是变化的。这种方法可以从任意 FLOP 计数 ? 映射到模型大小 ? 和训练标记数 ? 的最有效选择,从而使 FLOPs(?, ?) = ?。


2. 方法 2:等效 FLOP 曲线

在第二种方法中,针对固定的 9 组不同的训练 FLOP 数(从 6*10power(18) 到 3*10power(21) FLOPs 不等),改变模型大小。这就映射出在给定的 FLOP 预算下,最佳参数数是多少?


3. 方法 3:拟合参数损失函数

在这种方法中,所有最终损失都是通过方法 1 和 2 中的实验建模得出的,是模型参数数和所见代币数的参数函数。提出的函数如下:


3


第一项捕捉数据分布上理想生成过程的损失,第二项捕捉参数为 ? 的完美训练变换器表现不如理想生成过程的事实,最后一项捕捉变换器没有训练到收敛的事实。在估算时,使用 L-BFGS 算法最小化预测和观测对数损失之间的 Huber 损失,并通过最小化参数损失(L)来近似函数 Noptimal 和 Doptimal,以找到最佳模型大小。


尽管使用了不同的拟合方法和不同的训练模型,但所有三种方法都对参数的最佳缩放产生了可比的预测结果,这表明随着计算预算的增加,模型大小和训练数据量应按大致相等的比例增加。研究结果表明,考虑到各自的计算预算,当前一代大型语言模型的规模明显过大。此外,预计需要的训练数据量也远远超出了目前用于训练大型模型的数据量。


根据迄今为止的分析,Gopher 计算预算的最佳模型大小介于 400 亿到 700 亿个参数之间。为了验证这一假设,我们对 Chinchilla 进行了训练,并与 Gopher 和其他 LLM 进行了比较。Chinchilla 和 Gopher 的 FLOP 数量相同,但模型大小和训练标记数量不同。其他架构差异如下所示:


4


评估是在一系列语言建模和下游任务(如问题解答、常识等)上进行的。以下是 Chinchilla 与 Gopher 相比每字节比特数 (bpb) 的改进比较。


5


Chinchilla 在 MMLU(大规模多任务语言理解)上的平均 5 次测试成绩明显优于 Gopher,尽管后者的规模要小得多,平均准确率为 67.6%。在最终单词预测数据集 LAMBADA 上,Chinchilla 的准确率为 77.4%,而 Gopher 的准确率为 74.5%。在 TruthfulQA 数据集上,Chinchilla 的 0 次、5 次和 10 次预测准确率分别为 43.6%、58.5% 和 66.7%。在自然问题数据集上,Chinchilla 实现了新的闭卷 SOTA 准确率: 5 发和 64 发的准确率分别为 31.5%和 35.5%,而 Gopher 的准确率分别为 21% 和 28%。Chinchilla 与 Gopher 在其他主要任务上的比较如下:


6


总之,虽然对训练巨型模型的渴望导致了大量的工程创新,但本文假设,对越来越大的模型进行训练的竞赛正在导致模型的性能大大低于在相同条件下可以实现的性能。

工程创新,但本文假设,竞相训练越来越大的模型,导致模型的性能大大低于相同计算预算下可实现的性能。

计算预算所能达到的效果相比,模型的性能大大降低。论文还假设,高效计算前沿可以用计算预算、模型大小和训练代币数量之间的幂律关系来描述。该论文的分析还表明,需要更加关注数据集的扩展,但只有在数据质量较高的情况下,扩展到更大的数据集才是有益的。

文章来源:https://medium.com/@pranjalkhadka/chinchilla-a-guide-to-training-compute-optimal-large-language-models-3d3ad3787f1d
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消