大语言模型的Scaling Law:如何随着模型大小、训练数据和计算资源的增加而扩展

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 在这篇文章中,我们将介绍使这些模型运作的秘密武器——一个由三个关键部分组成的法则:模型大小、训练数据和计算能力。通过理解这些因素如何相互作用和规模化,我们将获得关于人工智能语言模型过去、现在和未来的宝贵见解。

人工智能的世界正在经历一场革命,大型语言模型正处于这场革命的前沿,它们似乎每天都在变得更加强大。从BERT到GPT-3再到PaLM,这些AI巨头正在推动自然语言处理可能性的边界。但你有没有想过是什么推动了它们能力的飞速提升?

在这篇文章中,我们将介绍使这些模型运作的秘密武器——一个由三个关键部分组成的法则:模型大小、训练数据和计算能力。通过理解这些因素如何相互作用和规模化,我们将获得关于人工智能语言模型过去、现在和未来的宝贵见解。

引言

过去几年中,语言模型的发展迅速扩大。如下图所示,语言模型从2018年的BERT-base的1.09亿参数规模,增长到2022年的PaLM的5400亿参数。每个模型不仅在大小上增加(即参数数量),还在训练令牌的数量和训练计算量(以浮点运算或FLOPs计)上都有所增加。

“这三个因素之间有什么关系?”模型大小和训练数据对模型性能(即测试损失)的贡献是否相等?哪一个更重要?如果我想将测试损失降低10%,我应该增加模型大小还是训练数据?需要增加多少?

这些问题的答案在于大型语言模型(LLMs)的规模化法则行为中。但在深入答案之前,让我们先回顾一下幂律分布。

幂律分布

幂律是两个量x和y之间的非线性关系,可以通用地建模为:

其中k和a是常数。

如果我在对数-对数图中绘制幂律关系,它将是一条直线,因为

让我们为两个不同的k值绘制幂律图,以观察其不同的行为。如果k是正的,y和x之间有增加的关系。然而,如果k是负的,它们之间则有减少的关系。这里有一个简单的代码来绘制幂律曲线。

 import numpy as np
 import matplotlib.pyplot as plt

 def plot_power_law(k, x_range=(0.1, 100), num_points=10000):
     """
     Plot the power law function y = x^k for any non-zero k.

     Parameters:
     k (float): The exponent for the power law (can be positive or negative, but not zero).
     x_range (tuple): The range of x values to plot (default is 0.1 to 10).
     num_points (int): Number of points to calculate for a smooth curve.
     """
     if k == 0:
         raise ValueError("k cannot be zero")

     # Generate x values
     x = np.linspace(x_range[0], x_range[1], num_points)

     # Calculate y values
     y = x**k

     # Create the plot
     plt.figure(figsize=(10, 6))
     plt.plot(x, y, 'b-', label=f'y = x^{k}')
     plt.title(f'Power Law: y = x^{k}')
     plt.xlabel('x')
     plt.ylabel('y')
     plt.grid(True)
     plt.legend()

     plt.show()

我们把k为正时的情况画成这样

 plot_power_law(2)  #  y = x^2

如果我们选择一个负数关系就会减小

 plot_power_law(-0.5)  # y = x^(-0.5)

上面的图在x轴和y轴上都是线性刻度。如果我们用对数标度表示它们,它们将是一条直线,如公式2所示。现在,让我们把这些联系在一起,展示幂律是如何与llm的测试损失联系起来的。

语言模型中的Scaling Law

语言模型中的规模化法则行为(Scaling Law)指的是模型性能与模型大小、数据集大小和计算资源等多种因素之间观察到的关系。随着模型的扩展,这些关系遵循可预测的模式。规模化法则行为的关键因素如下:

  • 模型大小:随着模型中参数数量的增加,性能通常会按照幂律改善。
  • 数据集大小:更大的训练数据集通常带来更好的性能,也遵循幂律关系。
  • 计算:用于训练的计算资源(浮点运算次数)与性能改善相关。

下图展示了大型语言模型中的规模化法则。

所有三个图都在对数-对数空间中是线性的,这证明了测试损失与计算、数据集大小和模型参数之间遵循幂律关系。此外这些图表还显示,随着模型大小、数据集大小和用于训练的计算量的增加,语言建模性能得到了提升。

我们已经看到了这三个因素与测试损失之间的单独关系。但是现在有几个问题:这三个因素本身之间的关系是什么?这些因素如何对测试损失产生贡献?它们的贡献是否相等?还是说其中一个比其他的更重要?

因素间的相互作用

对于模型中的每个参数和每个训练示例,大约需要6次浮点运算。因此,这三个因素之间的关系如下:

每个参数和每个训练实例需要大约6次浮点运算(FLOPs)的原因如下:

考虑在训练中的一个参数w:

  • 在前向传播中,需要恰好2次FLOPs将w与输入节点相乘,并将其添加到语言模型的计算图的输出节点中。(1次乘法和1次加法)
  • 在计算损失对w的梯度时,需要恰好2次FLOPs。
  • 在用损失的梯度更新参数w时,需要恰好2次FLOPs。

以α ≈ 6为基础,如果我们知道模型的大小和使用的训练数据量,就可以估计训练语言模型的计算需求。

那么我们就可以回答这个问题:模型大小和训练数据这两个因素是如何对模型性能产生贡献的?

Chinchilla:改变游戏规则的研究

Chinchilla[1]是DeepMind在2022年发布的一篇论文。作者发现,由于专注于在保持训练数据不变的情况下扩大模型大小,当前的大型语言模型实际上训练不足!作者训练了从7000万到超过160亿参数的400多个语言模型,这些模型使用的训练令牌从50亿到5000亿不等,并得出结论,对于计算优化的训练,模型大小和训练令牌数量应该同等规模化。

他们提出了以下经验预测公式,将模型大小和训练数据与模型性能联系起来。

N 是参数数量(即模型大小),D 是训练令牌。符号 L(N,D) 指的是一个拥有 N 个参数并且在 D 个令牌上训练的模型的性能或测试损失。E 是一个常数,代表不可约减的损失,即模型在完美训练的情况下能够达到的最小损失。它考虑了模型所训练的任务的固有难度和数据中的噪声。

常数 A 和 B 以及指数 α 和 β 通过实验和数据拟合经验性地确定。具体来说,他们发现 α≈0.50 和 β≈0.50。这加强了论文的主要发现,即每翻倍增加模型大小时,训练令牌的数量也应该翻倍,以实现计算最优训练[1]。

边际效益递减

在大语言模型中,边际效益递减是指随着模型规模的增大,每增加相同数量的参数或计算资源,获得的性能提升逐渐减少的现象。这是Scaling Law中非常关键的一个方面,它对于理解和决策模型设计及其部署策略有着重要的指导意义。

1、主要原因和表现

  1. 对数关系:在很多研究中观察到,模型性能(如测试集上的准确率或其他指标)与模型大小(通常是参数数量或计算复杂度)呈对数关系。这意味着随着模型规模的扩大,要获得同样幅度的性能提升,需要的资源增加将更为显著。
  2. 资源效率的降低:当模型规模达到一定阶段后,继续增加模型的大小,其性能提升不再明显,而相对应的训练成本、时间和能源消耗却显著增加。这种现象表明,从成本效益角度出发,模型规模的无限扩大并非总是合理的。
  3. 技术挑战:较大的模型更难训练,可能会面临梯度消失或爆炸、过拟合等问题,这些技术挑战也限制了模型性能的持续提升。

2、应对策略

  1. 模型和算法创新:通过改进模型架构、优化算法或引入新的训练技术(如稀疏化、量化等),可以在不显著增加参数的情况下提高模型的效率和效果。
  2. 多任务学习和迁移学习:利用多任务学习和迁移学习技术可以提高模型的泛化能力,使得模型在多个任务上具有更好的性能,这种方式可以在一定程度上克服单一任务上的边际效益递减问题。
  3. 选择适当的规模:根据应用场景的实际需求和可用资源,选择合适的模型规模,避免资源的浪费,实现性能与成本的最优平衡。

总结

语言模型的规模化法则为这些强大的人工智能系统的发展和优化提供了关键洞察。正如我们所探讨的,模型大小、训练数据和计算资源之间的关系遵循可预测的幂律模式。这些法则对人工智能研究者和工程师具有重大意义:

  • 平衡规模化:Chinchilla 的发现强调了同时对模型大小和训练数据进行等比例规模化以达到最佳性能的重要性。这挑战了之前仅增加模型大小的重点。
  • 资源分配:理解这些关系可以更有效地分配计算资源,可能导致更具成本效益和环境可持续的人工智能发展。
  • 性能预测:这些法则使研究人员能够根据可用资源做出有根据的模型性能预测,帮助设定现实的目标和期望。

随着人工智能领域的快速发展,牢记这些规模化法则对于做出有关模型发展、资源分配和研究方向的明智决策至关重要。通过理解和利用这些关系,我们可以朝着创建更高效、更强大、更负责任的语言模型的未来努力。

参考文献:

https://avoid.overfit.cn/post/9867397a40334064b0bbd470e588c4c2

作者:Mina Ghashami

目录
相关文章
|
7月前
|
物联网 网络架构
PHATGOOSE:使用LoRA Experts创建低成本混合专家模型实现零样本泛化
这篇2月的新论文介绍了Post-Hoc Adaptive Tokenwise Gating Over an Ocean of Specialized Experts (PHATGOOSE),这是一种通过利用一组专门的PEFT模块(如LoRA)实现零样本泛化的新方法
89 0
|
11天前
|
人工智能 物联网 C语言
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
38 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
2月前
|
人工智能 网络架构 开发者
第一个100%开源的MoE大模型,7B的参数,1B的推理成本
【10月更文挑战第1天】《OLMoE: Open Mixture-of-Experts Language Models》一文介绍了OLMoE,这是一个完全开源的Mixture-of-Experts(MoE)语言模型,具有70亿参数量,但每个输入令牌仅需10亿参数进行推理,有效平衡了性能与成本。OLMoE由Allen Institute for AI等机构的研究者共同开发,其开源特性促进了大规模语言模型领域的合作与创新,降低了资源浪费,同时具备良好的可扩展性和效率,为研究和应用开辟了新可能。然而,其复杂性也可能带来训练和调优上的挑战。
58 2
|
4月前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
5月前
|
机器学习/深度学习 自然语言处理 算法
ICML 2024:零阶优化器微调大模型,大幅降低内存
【7月更文挑战第14天】ICML 2024研究表明,零阶优化用于大模型微调能大幅降低内存需求。该论文通过避免反向传播,减少LLM(大型语言模型)微调的内存开销,提出新方法,适用于资源受限环境。虽然性能可能不及一阶优化器,但为高效NLP计算开辟了新途径。论文链接:[arxiv.org/abs/2402.11592](https://arxiv.org/abs/2402.11592)**
106 3
|
6月前
|
人工智能 网络架构 异构计算
以LLaMa 65B模型训练实例来计算AI/HPC算力光模块数量
本文介绍了如何根据LLaMa 65B模型训练需求计算所需的AI/HPC光模块数量。在案例中,使用2048个A100 GPU,单GPU算力为156 TFLOPS。模型算力需求为546*10^21 FLOPS,预计训练时间为20天。采用两层Fat-Tree网络架构,需1024个400G网卡,48台交换机,若全用400G光模块则需4096个,交换机间2048个,网卡间1024个。大成鹏通信提供200G至800G的解决方案,并提供咨询与支持服务。
127 0
以LLaMa 65B模型训练实例来计算AI/HPC算力光模块数量
|
6月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
374 0
|
6月前
|
机器学习/深度学习 自然语言处理 物联网
ICML 2024:脱离LoRA架构,训练参数大幅减少,新型傅立叶微调来了
【6月更文挑战第4天】在ICML 2024上,研究团队提出了傅立叶变换微调(FourierFT),一种减少训练参数的新方法,替代了依赖LoRA的微调。FourierFT通过学习权重变化矩阵的稀疏频谱系数,实现了LFMs的高效微调。在多项任务上,FourierFT展示出与LoRA相当或更优的性能,参数量却大幅减少,如在LLaMA2-7B模型上,仅需0.064M参数,对比LoRA的33.5M。广泛实验验证了其在NLP和CV任务上的效果,但未来还需探索其适用性和泛化能力。论文链接:[arxiv.org/abs/2405.03003](https://arxiv.org/abs/2405.03003)
134 0
|
7月前
|
机器学习/深度学习 自然语言处理
大模型Scaling Law同样适用于下游任务性能?
【2月更文挑战第16天】大模型Scaling Law同样适用于下游任务性能?
164 2
大模型Scaling Law同样适用于下游任务性能?
|
7月前
|
异构计算
针对特定领域较小的语言模型是否与较大的模型同样有效?
经过2023年的发展,大语言模型展示出了非常大的潜力,训练越来越大的模型成为有效性评估的一个关键指标,论文《A Comparative Analysis of Fine-Tuned LLMs and Few-Shot Learning of LLMs for Financial Sentiment Analysis》中,作者全面分析了微调大语言模型(llm)及其在金融情绪分析中的零样本和少样本的能力。
85 0