作者:
我们研究了在给定的计算预算下,训练transformer语言模型的最佳模型大小和标记数量。我们发现,目前的大型语言模型训练不足,这是最近关注在保持训练数据量不变的情况下扩展语言模型的结果。通过在5-5,000亿个token上训练超过400个从7,000万到超过160亿个参数的语言模型,我们发现,对于计算优化的训练,模型的大小和训练token的数量应该是等比例的:模型大小每增加一倍,训练token的数量也应该增加一倍。我们通过训练一个预测的计算最优模型Chinchilla来测试这个假设,该模型使用与Gopher相同的计算预算,但有70B的参数和4倍以上的数据。Chinchilla在大范围的下游评估任务上均匀且明显地优于Gopher(280B)、GPT-3(175B)、Jurassic-1(178B)和Megatron-Turing NLG(530B)。这也意味着Chinchilla用于微调和推理的计算量大大减少,大大促进了下游的使用。作为一个亮点,Chinchilla在MMLU基准上达到了最先进的平均准确率67.5%,比Gopher提高了7%以上。
NLP中的token经常被用作计算的单位,因为它们是代表文本序列含义的一种更紧凑和有效的方式。 文本序列中的词和字符可能有广泛的含义和用法,这可能使我们很难单独确定一个词或字符序列的含义。通过使用总是唯一的 token ,可以更容易地确定一个文本序列的含义。 此外, token 可以用来代表文本序列中的不同概念或实体,使其更容易分析和理解序列的含义。例如,一个 token 可能代表 "猫 "这个词,后面有一个空格,但它也可能代表猫的概念,或发出声音的动作。通过使用 token 作为计算单位,这些不同的概念可以很容易地被区分和分析出来。 总的来说,在NLP中使用 token 作为计算单位是一种更有效和高效的方式来表示和分析文本序列,并已成为该领域的一种流行方法。
1. 简介
最近,一系列大型语言模型(LLMs)被引入(Brown等人,2020;Lieber等人,2021;Rae等人,2021;Smith等人,2022;Thopilan等人,2022),目前最大的密集语言模型拥有超过5000亿个参数。这些大型自回归transformer(Vaswani等人,2017年)在许多任务上使用各种评估协议,如零样本学习、小样本学习和微调,都表现出令人印象深刻的性能。
训练大型语言模型的计算和能源成本很高(Rae等人,2021;Thopilan等人,2022),并随着模型规模的增加而上升。在实践中,分配的训练计算预算通常是事先知道的:有多少个加速器可用,我们想使用它们多久。由于这些大型模型通常只训练一次是可行的,因此准确估计给定计算预算的最佳模型超参数至关重要(Tay等人,2021)。
Kaplan等人(2020)表明,自回归语言模型(LM)的参数数量与它的性能之间存在幂律关系。因此,该领域一直在训练越来越大的模型,期待着性能的提高。Kaplan等人(2020)的一个值得注意的结论是,大型模型不应该被训练到其最低的LLoss,以达到计算的最佳效果。虽然我们得出了同样的结论,但我们估计大型模型的训练应该比作者建议的多很多。具体来说,在计算预算增加10倍的情况下,他们建议模型的大小应该增加5.5倍,而训练token的数量只应该增加1.8倍。相反,我们发现,模型的大小和训练token的数量应该以相等的比例进行扩展。
按照Kaplan等人(2020)和GPT-3的训练设置(Brown等人,2020),最近训练的许多大型模型都是针对大约3000亿个token进行训练的(表1),这与增加计算量时主要增加模型规模的做法是一致的。
图1 - 叠加预测。我们将三种不同方法的预测结果与Kaplan等人(2020)的预测结果重叠在一起。我们发现,这三种方法都得出同样的预测结论, 即目前的大型模型应该大大缩小,h或说训练的时间都应比目前要长得多。在图A3中,我们展示了预测的最佳token与固定FLOP预算的最佳参数量的结果。Chinchilla的表现优于Gopher和其他大型模型(见第4.2节)。
在这项工作中,我们重新审视了这个问题: 在固定的FLOPs预算下,应该如何权衡模型大小和训练ttoken的数量?为了回答这个问题,我们将最终的预训练损失𝐿(𝑁, 𝐷)建模为模型参数数量𝑁和训练token数量𝐷的函数。由于计算预算𝐶是所见训练标记和模型参数数量的确定性函数FLOPs(𝑁, 𝐷),我们感兴趣的是在约束条件FLOPs(𝑁, 𝐷)= 𝐶下最小化𝐿:
函数𝑁𝑜𝑝𝑡(𝐶)和𝐷𝑜𝑝𝑡(𝐶)描述了计算预算𝐶的最佳分配。我们根据400多个模型的Loss来经验性地估计这些函数,这些模型的参数范围从低于7千万到超过160亿,并在50亿到超过4000亿的token上进行训练--每个模型配置都在几个不同的训练时间段进行训练。我们的方法导致了与Kaplan等人(2020)的结果大不相同。我们在图1中强调了我们的结果,并在第2节中强调了我们的方法有什么不同。
基于我们估计的计算最优边界,我们预测,对于用于训练Gopher的计算预算,最优模型应该小4倍,同时在4倍的token上进行训练。我们通过在1.4万亿个token上训练一个更适合计算的70B模型,称为Chinchilla,来验证这一点。Chinchilla不仅比其更大的同类产品Gopher表现出色,而且其减少的模型尺寸大大降低了推理成本,并大大促进了下游在更小硬件上的使用。大型语言模型的能源成本通过推理和微调的使用而摊销。因此,一个经过优化训练的小型模型的好处超出了其改善性能的直接好处。
表1|当前的LLMs。我们展示了当前最大的五个密集型transformer模型,它们的规模以及训练的token数量。除了LaMDA(Thorpilan等人,2022),大多数模型的训练语料约为3000亿个token。我们引入Chinchilla,这是一个小得多的模型,训练语料远远超过3000亿个ttoken。
2. 相关研究
大语言模型
在过去的几年里,各种大语言模型纷纷出现。其中包括密集transformer模型(Brown等人,2020;Lieber等人,2021;Rae等人,2021;Smith等人,2022;Thopilan等人,2022)和专家稀疏模型(Du等人,2021;Fedus等人,2021;Zoph等人,2022)。最大的密集transformer模型已经超过5000亿个参数(Smith等人,2022)。训练越来越大的模型的动力是很明显的--到目前为止,增加语言模型的规模已经对改善许多语言建模任务的最j价水平非常有效。然而,大语言模型面临着一些挑战,包括其压倒性的计算要求(训练和推理的成本随着模型的大小而增加)(Rae等人,2021;Thopilan等人,2022),以及需要获得更多高质量的训练数据。事实上,在这项工作中,我们发现更大的、高质量的数据集将在语言模型的任何进一步扩展中发挥关键作用。
模型缩放的研究
了解语言模型的缩放行为和它们的迁移特性在最近的大型模型的发展中非常重要(Hernandez等人,2021;Kaplan等人,2020)。Kaplan等人(2020)首次展示了模型大小与Loss之间在许多数量级上的可预测关系。作者研究了在给定的计算卡时下选择最佳的模型大小来训练的问题。与我们类似,他们通过训练各种模型来解决这个问题。我们的工作在几个重要方面与Kaplan等人(2020)不同。首先,作者对所有模型使用了固定的训练token数和学习率按时调整计划表;这使他们无法模拟这些超参数对Loss的影响。相反,我们发现,将学习率按时调整计划表设置为与训练token数大致匹配,无论模型大小如何,都能获得最佳的最终Loss--见图A1。对于一个固定的学习率余弦计划表, 使用130B的token,中间Loss,高估了用与𝐷'相匹配的计划长度训练的模型的Loss(对于𝐷'<<130B)。使用这些中间Loss的结果是低估了在少于130B标记的数据上训练模型的有效性,并最终促成了这样的结论:随着计算预算的增加,模型规模的增加应该快于训练数据规模。相反,我们的分析预测,这两个数量应该以大致相同的速度扩展。第二,我们包括参数高达16B的模型,因为我们观察到FLOP-loss前沿有轻微的弯曲(见附录E)--事实上,我们分析中使用的大多数模型都有超过5亿个参数,相比之下,Kaplan等人(2020)中的大多数运行都要小得多--许多参数不到1亿个。
最近,Clark等人(2022)专门研究了专家混合语言模型的缩放特性,表明随着模型规模的增加,专家数量的缩放性会减弱--他们对Loss进行建模, 将Loss作为两个变量, 即模型规模和专家数量的函数。然而,与Kaplan等人(2020)一样,该分析是在固定数量的训练token下进行的,可能低估了分支的改进。
估算大模型的超参数
在选择一个语言模型和训练流程时,模型的大小和训练token的数量并不是唯一需要选择的两个参数。其他重要因素包括学习率、学习率计划、批尺寸(batch Size)、优化器和宽深比。在这项工作中,我们专注于模型大小和训练步骤的数量,我们依靠现有的工作和提供的实验启发式方法来确定其他必要的超参数。Yang等人(2021)研究了如何选择这些参数来训练自回归transformer模型,包括学习率和批尺寸。McCandlish等人(2018)发现最佳批尺寸和模型大小之间只有微弱的依赖性。Shallue等人(2018);Zhang等人(2019)建议使用比我们使用的更大的批尺寸是可能的。Levine等人(2020)研究了各种标准模型大小的最佳深度与宽度比率。我们使用的模型深度比提议的略少,因为这可以在我们的硬件上转化为更好的时间性能。
改进后的模型架构
最近,人们提出了各种有望替代传统密集型transformer的方法。例如,通过使用条件计算的大型MoE模型,如1.7万亿参数的Switchtransformer(Fedus等人,2021年),1.2万亿参数的GLaM模型(Du等人,2021年),以及其他模型(Artetxe等人,2021年;Zoph等人,2022年),尽管使用相对较少的训练和推理FLOPs,但能够提供一个大的有效模型尺寸。然而,对于非常大的模型,路由模型的计算优势似乎在减少(Clark等人,2022)。改进语言模型的一个正统方法是用明确的检索机制来增强transformer,如Borgeaud等人(2021);Guu等人(2020);Lewis等人(2020)。这种方法有效地增加了训练期间使用的数据token的数量(在Borgeaud等人(2021)中增加了10倍∼10倍)。这表明,语言模型的性能可能比以前认为的更依赖于训练数据的大小。
3. 估算最佳参数/训练token的合理关系
我们提出三种不同的方法来回答原始问题: 在固定的FLOPs预算下,应该如何权衡模型大小和训练token的数量?在所有三种情况下,我们首先训练一系列模型,改变模型大小和训练token的数量,并使用所得的训练曲线来拟合它们应该如何扩展的经验估计。我们假设计算量和模型大小之间存在幂律关系,正如Clark等人(2022);Kaplan等人(2020)所做的那样,尽管未来的工作可能希望在这种关系中包括大模型大小的潜在曲率。由此得出的预测结果对所有三种方法来说都是相似的,并且表明参数数和训练token数应该随着计算量的增加而同样增加--比例在表2中报告。这与之前关于这个主题的工作形成了明显的对比,值得进一步研究。
3.1. 方法一:固定模型大小,改变训练token的数量
在我们的第一种方法中,我们采用固定的模型参数,(从70M到超过100B的参数)改变了训练步骤的数量,用4个不同数量的训练序列训练每个模型。从这些运行中,我们能够直接提取对给定数量的训练FLOPs实现的最小Loss的估计。该方法的训练细节可见附录D。
对于每个参数计数𝑁,我们训练4个不同的模型,在一个范围为16×的水平线(以训练token数量衡量)上,将学习率衰减10×。然后,对于每次运行,我们平滑并插值训练损失曲线。由此,我们得到一个从FLOP计数到训练损失的连续映射。然后,对于每个FLOP计数,我们确定哪个运行的损失最低。使用这些插值,我们得到了一个从任何FLOP计数𝐶到模型大小𝑁和训练token数量𝐷的最有效选择的映射,使得FLOPs(𝑁, 𝐷)= 𝐶。 在1500个对数间隔的FLOP值中,我们发现哪种模型大小能在所有模型中实现最低的损失,同时又能达到所需的训练token数量。最后,我们拟合幂律来估计任何给定计算量的最佳模型大小和训练token数量(见图2的中心和右侧面板),得到一个关系𝑁𝑜𝑝𝑡 ∝ 𝐶𝑎和𝐷𝑜𝑝𝑡 ∝ 𝐶𝑏 。我们发现𝑎=0.50,𝑏=0.50--如表2所总结。在D.4节中,我们展示了在10的21次方 FLOPs下的正面比较,使用我们的分析和Kaplan等人(2020)的分析所推荐的模型大小--使用我们预测的模型大小具有明显的优势。
3.2. 方法2:IsoFLOP配置文件
在我们的第二种方法中,我们为一组固定的9个不同的训练FLOP数(范围从6×10^18到3×10^21 FLOPs)改变模型大小,并考虑每个点的最终训练损失。与方法1相比,方法1考虑了沿整个训练运行的点(𝑁,𝐷,𝐿)。这使我们能够直接回答这个问题: 对于一个给定的FLOP预算,什么是最佳参数量?
对于每个FLOP预算,我们在图3(左)中绘制了最终Loss(平滑后)与参数量的对比。在所有情况下,我们确保我们已经训练了一个足够多样化的模型规模,以看到一个明显的最小损失。我们对每条IsoFLOPs曲线拟合一条抛物线,以直接估计在何种模型规模下达到最小Loss(图3(左))。与之前的方法一样,我们随后在FLOPs和损失最小的模型大小和训练token数量之间拟合一个幂律,如图3(中间,右)。同样,我们拟合指数的形式为𝑁𝑜𝑝𝑡 ∝ 𝐶^𝑎和𝐷𝑜𝑝𝑡 ∝ 𝐶^𝑏,我们发现𝑎=0.49,𝑏=0.51-如表2所总结的。
3.3. 方法3:拟合一个参数化的损失函数
最后,我们将方法1和方法2中的实验中的所有最终损失建模为模型参数计数和所见toekn数量的函数。按照经典的风险分解(见D.2节),我们提出以下函数形式
第一项捕捉数据分布上的理想生成过程的损失,并应对应于自然文本的熵。第二项反映了这样一个事实,即一个具有𝑁参数的完美训练的transformer的性能低于理想生成过程。最后一项反映了这样一个事实:transformer没有被训练到收敛,因为我们只在数据集分布的一个样本上进行了有限的优化。
模型拟合: 为了估计(𝐴, 𝐵, 𝐸, 𝛼, 𝛽),我们使用L-BFGS算法(Nocedal, 1980)使预测和观察到的对数损失之间的Huber损失(Huber, 1964)最小:
我们通过从初始化的网格中选择最佳拟合来考虑可能的局部最小值。Huber损失(𝛿=10^-3)对离群值是稳健的,我们发现这对保持数据点的良好预测性能很重要。D.2节详细介绍了拟合过程和损失分解。
有效边界: 我们可以在FLOPs(𝑁, 𝐷)≈6𝑁𝐷的约束条件下,通过最小化参数损失𝐿ˆ来近似函数𝑁和𝐷𝑜𝑝𝑡(Kaplan等人,2020)。由此得到的𝑁𝑜𝑝𝑡和𝐷𝑜𝑝𝑡可以平衡方程(3)中取决于模型大小和数据的两个项。根据结构,它们具有幂律形式:
我们在图4(左)中显示了拟合函数𝐿ˆ的轮廓,蓝色显示了闭合形式的有效计算边界。通过这种方法,我们发现𝑎=0.46,𝑏=0.54--如表2所总结的。
3.4. 最佳的模型比例
我们发现,尽管使用了不同的拟合方法和不同的训练模型,这三种方法对参数和token的最佳比例与FLOPs产生了可比的预测(如表2所示)。所有三种方法都表明,随着计算预算的增加,模型大小和训练数据量应该以大致相等的比例增加。如图1和图A3所示,第一和第二种方法对最佳模型大小的预测非常相似。第三种方法预测,在较大的计算预算下,更小的模型是最佳的。我们注意到,对于低训练FLOPs(𝐶<=1𝑒21)的观察点(𝐿, 𝑁, 𝐷)比高计算预算的点具有更大的残差||𝐿 - 𝐿ˆ(𝑁,𝐷)||22。拟合的模型对具有更多FLOPs的点增加了权重--由于Huber损失,自动地将低计算预算的点视为离群值。由于经验上观察到的前沿的负曲率𝐶→𝑁𝑜𝑝𝑡(见附录E),这导致预测的𝑁𝑜𝑝𝑡比其他两种方法低。
在表3中,我们显示了能够确保特定规模的模型位于计算最优前沿的FLOPs和tokens的估计数量。我们的发现表明,考虑到它们各自的计算预算,目前这一代的大型语言模型的规模明显过大,如图1所示。例如,我们发现一个1750亿参数的模型应该用4.41×10^24 FLOPs的计算预算和超过4.2万亿的标记来训练。在计算预算约为10^25 FLOPs的情况下,一个2800亿个类似Gopher的模型是最佳的训练模型,应该在6.8万亿个token上训练。除非有10^26 FLOPs的计算预算(超过用于训练Gopher的计算量的250倍),否则1万亿参数的模型不太可能是训练的最佳模型。此外,预计需要的训练数据量远远超过目前用于训练大模型的数据量,并强调了除了允许模型规模的工程改进之外,数据集收集的重要性。虽然推断出许多数量级有很大的不确定性,但我们的分析清楚地表明,鉴于目前许多LLM的训练计算预算,较小的模型应该在更多的token上进行训练,以实现最有效的模型。
在附录C中,我们在另外两个数据集上重复了IsoFLOP分析: C4(Raffel等人,2020a)和GitHub代码(Rae等人,2021)。在这两种情况下,我们都得出了类似的结论,即模型的大小和训练token的数量应该以相等的比例进行缩放。
4. Chinchilla
根据我们在第3节中的分析,Gopher计算预算的最佳模型大小是在400亿到700亿参数之间。出于数据集和计算效率的考虑,我们在这个范围的较大一端训练了一个模型--700亿个参数,用于1.4T个Token,以此来测试这个假设。在这一节中,我们将这个模型(我们称之为Chinchilla)与Gopher和其他LLMs进行比较。Chinchilla和Gopher都经过了相同数量的FLOPs训练,但在模型的大小和训练token的数量上有所不同。
虽然预训练一个大语言模型有相当大的计算成本,但下游的微调和推理也构成了大量的计算用量(Rae等人,2021)。由于比Gopher小4倍,Chinchilla的内存占用和推理成本也更小。
4.1 模型及训练细节
训练Chinchilla的全套超参数请见表4. Chinchilla使用了和Gopher相同的模型结构和训练初始配置, 少数差一点在下方列出:
- 我们在MassiveText(与Gopher相同的数据集)上训练Chinchilla,但使用稍微不同的子集分布(如表A1所示),主要是增添了训练token的数量。
- 我们训练Chinchilla时使用AdamW优化器(Loshchilov和Hutter,2019)而不是Adam(Kingma和Ba,2014),因为这改善了建模Loss和微调后的下游任务性能。
- 我们用稍加修改的SentencePiece(Kudo和Richardson,2018)分词器训练Chinchilla,该分词器不使用NFKC归一化。词汇非常相似--94.15%的token与用于训练Gopher的token相同。我们发现,这特别有助于数学和化学等领域的表述。
- 虽然前向和后向传递是以bfloat16计算的,但我们在分布式优化器的状态中存储了一份float32的权重(Rajbhandari等人,2020)。更多细节见Rae等人(2021)的经验之谈。
在附录G中,我们展示了Chinchilla和Gopher之间各种优化器相关变化的影响。本分析中的所有模型都是在TPUv3/TPUv4(Jouppi等人,2017)上用JAX(Bradbury等人,2018)和Haiku(Hennigan等人,2020)进行训练。我们在表A8中包括一张Chinchilla模型卡(Mitchell等人,2019)。
在深度学习中,瓶颈(bottleneck)指的是神经网络中的一个层,它的神经元数量比输入层或输出层都少。瓶颈层通常位于输入层和输出层之间,旨在将输入层中包含的信息压缩成一个更小的表示,以便网络更容易处理。 瓶颈层经常被用于卷积神经网络(CNN)的图像分类任务中。在这些网络中,瓶颈层通常是一个全连接层,它的神经元比前面的卷积层少。通过使用瓶颈层,网络可以减少需要学习的参数数量,这有助于防止过度拟合,提高网络的泛化能力。
4.2 结论
我们对Chinchilla进行了广泛的评估,与各种大语言模型进行了比较。我们对Rae等人(2021)提出的任务的一个大子集进行了评估,如表5所示。由于这项工作的重点是优化模型的扩展,我们包括了一个大型的代表性子集,并引入了一些新的评估,以便与其他现有的大模型进行更好的比较。所有任务的评估细节与Rae等人(2021)中描述的相同。
4.2.1 语言模型建模
如图5所示,Chinchilla在The Pile(Gao等人,2020)的所有评估子集上都明显优于Gopher。与Jurassic-1(178B)Lieber等人(2021)相比,除了两个子集--dm_mathematics和ubuntu_irc--见表A5的原始每字节比特数比较,Chinchilla在所有子集上的性能更强。在Wikitext103(Merity等人,2017)上,Chinchilla实现了7.16的perplexity,而Gopher为7.75。在这些语言建模基准上对Chinchilla和Gopher进行比较时需要谨慎,因为Chinchilla是在比Gopher多4倍的数据上训练的,因此训练/测试集泄漏可能会人为地提高结果。因此,我们更重视其他泄漏问题较少的任务,如MMLU(Hendrycks等人,2020)和BIG-bench(BIG-bench合作,2021)以及各种闭卷答题和常识分析。
4.2.2 大规模多任务语言理解(MMLU)
大规模多任务语言理解(MMLU)基准(Hendrycks等人,2020年)包括一系列类似考试的学术科目问题。在表6中,我们报告了Chinchilla在MMLU上的5-shot平均成绩(结果的全部分类见表A6)。在这个基准上,尽管Chinchilla小得多,但它的表现明显优于Gopher,其平均准确率为67.6%(比Gopher提高了7.6%)。值得注意的是,Chinchilla甚至超过了2023年6月专家预测63.4%的准确率(见表6)(Steinhardt, 2021)。此外,Chinchilla在4个不同的单独任务上取得了超过90%的准确率--高中_政府和政治、国际法、社会学和美国的外交政策(high_school_gov_and_politics, international_law, sociology, us_foreign_policy)。据我们所知,没有其他模型在一个子集上达到大于90%的准确率。
在图6中,我们展示了与Gopher的比较,按任务划分。总的来说,我们发现Chinchilla在绝大多数的任务中都提高了性能。在四个任务(大学数学、计量经济学、道德情景和形式逻辑) (college_mathematics, econometrics, moral_scenarios, and formal_logic)中,Chinchilla的表现不如Gopher,而在两个任务中的表现没有变化。
4.2.3. 阅读理解
在最终的单词预测数据集LAMBADA(Paperno等人,2016)上,Chinchilla取得了77.4%的准确率,而Gopher的准确率为74.5%,MT-NLG 530B为76.6%(见表7)。在RACE-h和RACE-m(Lai等人,2017)上,Chinchilla的表现大大超过了Gopher,在这两种情况下,准确率提高了10%以上--见表7。
4.2.4. BIG-bench
我们在Rae等人(2021)报告的同一组BIG-bench任务(BIG-bench协作,2021)上分析了Chinchilla。与我们在MMLU中观察到的情况类似,Chinchilla在绝大多数任务中都优于Gopher(见图7)。我们发现,Chinchilla将平均性能提高了10.7%,达到了65.1%的准确率,而Gopher则为54.4%。在我们考虑的62个任务中,Chinchilla只在四个任务上比Gopher表现得差--Crash_blossom、dark_humor_detection、mathematical_induction和logical_args。Chinchilla的全部准确性结果可以在表A7中找到
4.2.5. 常识问答
我们在各种常识性基准上评估Chinchilla: PIQA(Bisk等人,2020),SIQA(Sap等人,2019),Winogrande(Sakaguchi等人,2020),HellaSwag(Zellers等人,2019),以及BoolQ(Clark等人,2019)。我们发现Chinchilla在所有任务上都优于Gopher和GPT-3,除了一项任务外,在所有任务上都优于MT-NLG 530B--见表8。在TruthfulQA(Lin等人,2021)上,Chinchilla在0-shot、5-shot和10-shot的情况下分别达到43.6%、58.5%和66.7%的准确率。相比之下,Gopher只达到了29.5%的0-shot和43.7%的10-shot精度。与Lin等人(2021)的研究结果形成鲜明对比的是,Chinchilla取得的巨大改进(0-shot准确率为14.1%)表明,仅对预训练数据进行更好的建模就能在这个基准上取得实质性的改进。
4.2.6. 闭卷答题
表9中报告了闭卷问题回答基准的结果。在自然问题数据集(Kwiatkowski等人,2019年)上,Chinchilla实现了新的闭卷SOTA准确性: 31.5%的5-shot和35.5%的64-shot,而Gopher则分别为21%和28%。在TriviaQA(Joshi等人,2017)上,我们展示了过滤(以前用于检索和开卷工作)和未过滤集(以前用于大型语言模型评估)的结果。在这两种情况下,Chinchilla的表现都大大优于Gopher。在过滤的版本上,Chinchilla落后于公开书籍任务SOTA(Izacard和Grave,2020),只有7.9%。在未经过滤的数据集上,Chinchilla的表现超过了GPT-3,见表9。
4.2.7. 性别偏见和毒性
大型语言模型具有潜在的风险,如输出攻击性语言、传播社会偏见和泄露私人信息(Bender等人,2021;Weidinger等人,2021)。我们预计Chinchilla会有与Gopher类似的风险,因为Chinchilla是在相同的数据上训练的,尽管相对权重略有不同,而且它有一个类似的架构。在这里,我们研究了性别偏见(特别是性别和职业偏见)和有毒语言的产生。我们选择了几个常见的评价来强调潜在的问题,但强调我们的评价并不全面,在理解、评价和减轻LLM的风险方面还有很多工作要做。
性别偏见: 正如Rae等人(2021年)所讨论的那样,大型语言模型从其训练数据集中反映了关于不同群体(如性别群体)的当代和历史话语,我们预计Chinchilla也会如此。在这里,我们使用Winogender数据集(Rudinger等人,2018年)在零样本学习的情况下,测试潜在的性别和职业偏见是否在核心推理决议上表现出不公平结果。Winogender测试了一个模型是否能正确判断一个代词是否指代不同的职业词。一个无偏见的模型会正确预测代词指的是哪个词,而不考虑代词的性别。我们遵循Rae等人(2021)的相同设置(在第H.3节进一步描述)。
如表10所示,Chinchilla在所有组别中比Gopher更频繁地正确解决代词。有趣的是,男性代词的性能提高(提高3.2%)比女性或中性代词(分别提高8.3%和9.2%)小得多。我们还考虑了复杂难例(gotcha examples),在这些例子中,正确的代词解析与性别定型观念相矛盾(由劳动统计决定)。我们再次看到,Chinchilla比Gopher更准确地解决了代词。当按男/女性别和难例/非难例来划分例子时,最大的改进是女性有问题的例子(改进了10%)。因此,尽管Chinchilla比Gopher在更多的核心推理例子中统一克服了性别定型,但对某些代词的改进率高于其他代词,这表明使用更多的计算优化模型所带来的改进可能是不平衡的。样品的毒性。语言模型能够生成有毒语言--包括侮辱、仇恨言论、亵渎和威胁(Gehman等人,2020;Rae等人,2021)。虽然毒性是一个总括性的术语,它在LM中的评估也伴随着挑战(Welbl等人,2021;Xu等人,2021),但自动分类器的分数可以为LM产生的有害文本的水平提供一个指示。
在自然语言处理中,gotcha examples是指那些看起来很简单,但实际上很难处理的例子。这些例子通常是由于语言的歧义性或者其他原因而导致的。例如,一个句子可能有多种解释,但是只有一种是正确的。这些例子对于测试自然语言处理算法的鲁棒性非常有用。
样本的毒性。语言模型能够生成恶毒语言--包括侮辱、仇恨言论、亵渎和威胁(Gehman等人,2020;Rae等人,2021)。虽然毒性是一个总括性的术语,它在LM中的评估也伴随着挑战(Welbl等人,2021;Xu等人,2021),但自动分类器的分数可以为LM产生的有害文本的水平提供一个指示。Rae等人(2021年)发现,通过增加模型参数的数量来改善语言建模的Loss,对有毒文本的生成只有微不足道的影响(无提示);在这里,我们分析通过更多的计算优化训练来实现更低的LM损失是否也是如此。与Rae等人(2021)的协议类似,我们从Chinchilla生成25,000个无提示样本,并将其PerspectiveAPI毒性评分分布与Gopher生成的样本进行比较。一些总结性的统计数字表明没有大的差异:Gopher的平均(中位)毒性得分是0.081(0.064),而Chinchilla是0.087(0.066),Gopher的第95百分位数得分是0.230,而Chinchilla是0.238。也就是说,绝大部分生成的样本都被归类为无毒的,模型之间的差异可以忽略不计。与之前的研究结果一致(Rae等人,2021年),这表明无条件文本生成中的毒性水平在很大程度上与模型质量无关(以语言建模Loss衡量),也就是说,相同训练数据集的前提下, 训练过程更良好的模型不一定更有毒性。
5. 讨论与结论
到目前为止,大型语言模型训练的趋势是增加模型的规模,往往不增加训练token的数量。最大的密集型转化器MT-NLG 530B,现在比两年前GPT-3的1700亿个参数大了3倍多。然而,这个模型以及现有的大多数大型模型,都是针对相当数量的token进行训练的--大约3000亿个。虽然训练这些巨型模型的愿望导致了大量的工程创新,但我们假设,训练越来越大的模型的竞赛导致模型的性能大大低于在相同的计算预算下可以实现的性能。
我们根据400多次训练的结果,提出了三种预测方法来优化设置模型大小和训练时间。所有这三种方法都预测Gopher的规模严重过大,并估计在相同的计算预算下,在更多的数据上训练的较小的模型将表现更好。我们通过训练Chinchilla(一个70B参数的模型)来直接测试这一假设,并表明它在几乎所有测量的评估任务上都优于Gopher甚至更大的模型。
虽然我们的方法允许我们预测在给定额外的计算量时如何扩展大型模型,但也有一些限制。由于训练大型模型的成本,我们只有两个可比较的大规模训练运行(Chinchilla和Gopher),而且我们没有在中间规模的额外测试。此外,我们假设有效的计算前沿可以用计算预算、模型规模和训练token数量之间的幂律关系来描述。然而,我们观察到在高计算预算下,对数(𝑁𝑜𝑝𝑡)有一些凹陷性(见附录E)。这表明,我们可能仍然高估了大型模型的最佳规模。
最后,我们分析的训练运行都是在不到一个历时的数据上训练的;未来的工作可能会考虑多个历时的情况。尽管有这些限制,Chinchilla和Gopher的比较验证了我们的性能预测,从而使我们在相同的计算预算下训练出更好(更轻)的模型。
尽管最近有大量的工作使得越来越大的模型可以被训练,但我们的分析表明需要更加关注数据集的扩展。我们推测,只有当数据是高质量的,扩展到更大的数据集才是有益的。这就要求我们负责任地收集更大的数据集,并高度关注数据集的质量。更大的数据集需要格外小心,以确保训练-测试集的重叠得到适当的考虑,无论是在语言建模的Loss还是在下游任务中。最后,对数万亿的token进行训练会带来许多道德和隐私问题。从网上爬取的大型数据集将包含有毒的语言、偏见和私人信息。随着更大的数据集被使用,这种信息的数量(如果不是频率)会增加,这使得数据集的审查变得更加重要。Chinchilla确实受到偏见和毒性的影响,但有趣的是它似乎比Gopher受到的影响要小。更好地理解大型语言模型的性能和毒性是如何相互作用的,这是一个重要的未来研究问题。
虽然我们将我们的方法应用于自回归语言模型的训练,但我们预计在其他模式中,模型大小和数据量之间也存在类似的权衡。由于训练大型模型非常昂贵,事先选择最佳的模型大小和训练步骤是至关重要的。我们提出的方法很容易在新的环境中重现。
6. 鸣谢
我们要感谢Jean-baptiste Alayrac、Kareem Ayoub、Chris Dyer、Nando de Freitas、Demis Hassabis、Geoffrey Irving、Koray Kavukcuoglu、Nate Kushman和Angeliki Lazaridou对稿件提出的有益意见。我们要感谢Andy Brock、Irina Higgins、Michela Paganini、Francis Song以及DeepMind的其他同事提供的有益讨论。我们也非常感谢JAX和XLA团队的支持和帮助。
附录
A 训练集
B. 最佳的余弦周期长度
一个关键的假设是关于余弦周期长度和相应的学习率下降(我们使用10倍的学习率衰减,与Rae等人(2021)一致)9。我们发现,设置余弦周期长度比目标训练步骤数长得多,会导致次优的训练模型,如图A1所示。因此,我们假设,在FLOP预算的情况下,一个最佳的训练模型将把余弦周期长度正确地校准为最大的步骤数;我们在主要分析中遵循这一规则。
C. 不同数据集的缩放结果的连贯性
我们展示了在两个不同数据集上训练后的IsoFLOP(方法2)分析的缩放结果: C4(Raffel等人,2020b)和GitHub代码(我们用Rae等人(2021)的数据展示结果),结果显示在表A2。对于这两组使用MassiveText子集的实验,我们使用与MassiveText实验相同的分词器。
我们发现,这些数据集上的缩放行为与我们在MassiveText上发现的非常相似,如图A2和表A2所示。这表明我们的结果是独立于数据集的,只要不进行超过一个epoch的训练。
D 缩放分析的细节
D.1. 方法1:固定模型大小和变化的训练序列
我们对最小的模型使用2×10-4的最大学习率,对最大的模型使用1.25×10-4。在所有情况下,学习率在训练期间下降了10倍,使用余弦计划。我们假设余弦周期的长度应与训练步骤的数量大致匹配。我们发现,当余弦周期超出训练步数25%以上时,性能会明显下降--见图A1。我们使用窗长为10步的高斯平滑法来平滑训练曲线。
D.2 方法3: Loss的参数化拟合
略
D.3. 所有三种方法的预测的最佳计算边沿
对于方法2和方法3,我们在表A3中显示了各种计算预算下的估计模型大小和训练token数量。我们在图A3中绘制了三种方法在各种FLOP预算下预测的token数量和参数。
中略
F. FLOPs计算
我们在分析中包括所有的训练FLOPs,包括那些由嵌入矩阵(Embedding matrices) 贡献的FLOPs。请注意,我们也将嵌入矩阵计入总参数数中。对于大型模型,嵌入矩阵的FLOP和参数贡献很小。我们用2的系数来描述乘法累加成本。对于前向传递,我们考虑来自以下方面的贡献:
与Kaplan等人(2020)一样,我们假设后向通道的FLOPs是前向通道的两倍。我们展示了我们的计算和使用常见近似值𝐶=6𝐷𝑁(Kaplan等人,2020)的比较,其中𝐶是FLOPs,𝐷是训练token的数量,𝑁是表A4中的参数数量。我们发现FLOP计算中的差异非常小,它们并不影响我们的分析。与Rae等人(2021)提出的结果相比,我们使用了一个稍微精确的计算,给出了一个稍微不同的值(6.3 × 10^23,而不是5.76 × 10^23)。
G. Chinchilla和Gopher的其他区别
略
H 结果
略