当前位置: 首页 > news >正文

语言模型的缩放定律

原文:towardsdatascience.com/scaling-law-of-language-models-5759de7f830c

<…/Images/4233ccd60e0f318a8415180079f742b1.png>

LLMs 的缩放定律行为——图片来自[1]

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

在本文中,我们将踏上探索语言模型缩放核心的奇妙之旅。我们将揭示使这些模型运转的秘密配方——三种关键成分的强大混合:模型大小、训练数据和计算能力。通过理解这些因素如何相互作用和缩放,我们将获得对 AI 语言模型过去、现在和未来的宝贵见解。

那么,让我们深入其中,揭开推动语言模型性能和能力达到新高度的缩放定律。

目录:本文包括以下部分:

  1. 简介
  • 近期语言模型发展的概述

  • 语言模型缩放的关键因素

2. 幂律分布:快速回顾

  • 理解幂律关系

  • 可视化幂律

3. 语言模型中的缩放定律行为

  • 模型大小与性能

  • 数据集大小与性能

  • 计算资源与性能

4. 缩放因素之间的相互作用

  • “6 FLOPs”规则

5. Chinchilla 论文:一个转折点

  • 关键发现和影响

  • Chinchilla 预测公式

6. 结束语

  • 理解缩放定律的重要性

7. 参考文献

简介

如你所知,过去几年语言模型的发展经历了快速缩放。正如我们在下面的图片中看到的,语言模型从 2018 年 BERT-base 的 10⁹ 个参数,增长到 2022 年 PaLM 的 540B 个参数。每个模型不仅在大小(即参数数量)上增加,而且在训练标记数量和训练计算(以浮点运算或 FLOPs 计)上也增加了。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4dcb652ec9541746048ff2e0600a51d8.png

图片由作者提供

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

这些问题的答案在于 LLMs 的缩放定律行为。但在我们深入答案之前,让我们回顾一下幂律分布

幂律分布:快速回顾

幂律是两个数量xy之间的非线性关系,可以通用地表示为:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/950f1e3bb5107cd4676cab216cd26fa4.png

方程 1:幂律 – 图像由作者提供

其中*ka*是常数。

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

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/809aed4cfb5a041c9613d66d50d401f3.png

方程 2:对数-对数空间中幂律的线性关系 – 图像由作者提供

让我们绘制两个不同k值的幂律,以观察其不同的行为。如果k是正数,则yx之间存在增加的关系。然而,如果k是负数,则它们之间存在减少的关系。以下是一个简单的代码来绘制幂律曲线。

importnumpyasnpimportmatplotlib.pyplotaspltdefplot_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. """ifk==0:raiseValueError("k cannot be zero")# Generate x valuesx=np.linspace(x_range[0],x_range[1],num_points)# Calculate y valuesy=x**k# Create the plotplt.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)# This will plot y = x²

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f3efe51db62c0adbb13ad2e4eeeca315.png

正指数幂的幂律 – 图像由作者提供

如果我们选择负指数,关系将是减少的:

plot_power_law(-0.5)# This will plot y = x^(-0.5)

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/77da01a23441c87858de62730c0b7f1a.png

负指数幂的幂律 – 图像由作者提供

注意,上面的图在 x 轴和 y 轴上都是线性刻度。如果我们以对数刻度绘制它们,它们将是一条线,如方程 2 所示。现在,让我们将这些内容结合起来,展示幂律如何与语言模型的测试损失相关

语言模型中的缩放定律行为

语言模型中的缩放定律行为指的是观察到的模型性能与各种因素(如模型大小、数据集大小计算资源)之间的关系。随着模型规模的扩大,这些关系遵循可预测的模式。缩放定律行为中的关键因素如下:

  1. 模型大小:随着模型中参数数量的增加,性能往往会按照幂律提高。

  2. 数据集大小:较大的训练数据集通常会导致更好的性能,也遵循幂律关系。

  3. 计算资源:用于训练的计算资源(flops)的数量与性能的提高相关。

下面的三个图显示了语言模型中的缩放定律。

<…/Images/2525e8655eaca7e1c9195e4fca5d2d33.png>

语言模型中的缩放定律行为 – 图像来自[2]中的论文

所有三个图都是在对数-对数空间中,并且是线性的,这证明了测试损失与计算资源、数据集大小和模型参数的每个方面都遵循幂律关系。此外,这些图还显示,随着我们增加模型大小、数据集大小和用于训练的计算量,语言模型的性能会提高。

到目前为止,我们已经看到了这三个因素与测试损失之间的个体关系。现在有几个问题:这三个因素之间有什么关系?这些因素是如何贡献于测试损失的?它们是否贡献相等?或者其中一个比另一个更重要?

缩放因子的相互作用

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

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4c64ac19b84a0ffaab35b885313995f3.png

作者图片

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

考虑训练过程中的参数w

  1. 在前向传播过程中,需要恰好 2 次浮点运算来将w与输入节点相乘,并将其加到语言模型计算图中的输出节点上。(1 次浮点运算用于乘法,1 次浮点运算用于加法)

  2. 计算损失相对于w的梯度需要恰好 2 次浮点运算。

  3. 更新参数w需要恰好 2 次浮点运算来计算损失相对于w的梯度。

如果您想了解更多关于这个问题的详细解释,请参阅这篇帖子。

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

接下来,让我们回答模型大小和训练数据这两个因素是如何贡献于模型性能的问题?

Chinchilla 论文:一场变革

Chinchilla [1] 是 2022 年由 DeepMind 发表的一篇论文。作者发现,由于在保持训练数据不变的同时关注模型大小的缩放,当前的大型语言模型存在欠训练的问题!!实际上,作者在 5 到 500 亿个标记上训练了从 7000 万个到超过 160 亿个参数的 400 多个语言模型,并得出结论,为了计算最优训练,模型大小和训练标记的数量应该同等比例缩放。

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

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f7b835801300b2febeadc382c3c5db3b.png

Chinchilla 方程 – 作者图片

N是参数数量(即模型大小),D是训练标记。符号L(N,D)表示具有N个参数且在D个标记上训练的模型性能或测试损失。E是一个常数,代表不可减少的损失,即模型在完美训练下可以达到的最小损失。它反映了模型训练任务固有的难度和数据中的噪声。

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

结束语

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

  1. 平衡缩放:Chinchilla 的研究结果强调了在最佳性能下,同等程度地缩放模型大小和训练数据的重要性。这挑战了之前仅关注增加模型大小的做法。

  2. 资源分配:理解这些关系允许更有效地分配计算资源,可能带来更经济高效和环保的人工智能发展。

  3. 性能预测:这些定律使研究人员能够根据可用资源对模型性能做出有根据的预测,有助于设定现实的目标和期望。

随着人工智能领域的快速演变,牢记这些缩放定律对于在模型开发、资源分配和研究方向上做出明智决策至关重要。通过理解和利用这些关系,我们可以朝着创建更高效、更强大和更有责任心的语言模型迈进。

参考文献

  1. 训练计算最优的大型语言模型

  2. 神经语言模型的缩放定律

http://www.jsqmd.com/news/594316/

相关文章:

  • 2026年科学健身新风向:五家备受信赖的课程咨询中心深度解析 - 2026年企业推荐榜
  • 嵌入式软件定时器库:轻量非阻塞AsyncTimerLib设计与应用
  • MacBook部署OpenClaw全记录:Phi-3-mini-128k-instruct本地化实践
  • 嵌入式系统错误处理策略与实现技术
  • OpenClaw容器化部署:千问3.5-9B镜像最佳实践
  • STM32温室水培系统:物联网精准控制实践
  • 从实验室到产线:相位噪声分析仪在晶振批量测试中的高效应用技巧
  • 全网最经典面试题:从输入URL到页面显示,网络层面发生了什么?(超详细流程图+步骤)
  • 数据缩放解释:带有代码示例的初学者可视化指南
  • 2026年单向滑动支座市场**盘点:五强服务商深度解析与选型指南 - 2026年企业推荐榜
  • Dynin-Omni:基于 Masked Diffusion 的统一 Omnimodal 生成模型
  • OpenClaw性能优化:降低Qwen3.5-9B长任务Token消耗的5个技巧
  • 从零开始学内网横向移动:Mimikatz哈希传递攻击全流程解析(含Procdump搭配技巧)
  • 8k上下文超越128k模型原理(非常详细),长文本优化从入门到精通,收藏这一篇就够了!
  • 高效视频压缩:FFmpeg批量处理实战指南
  • 洞察2026:合肥消防排烟系统服务商综合能力评估与选择指南 - 2026年企业推荐榜
  • 快速找到网站可用Hosts的方法
  • 将 RAG 从概念验证(POC)扩展到生产
  • LZ算法:从数据压缩理论到嵌入式实践
  • Adafruit EPD库深度解析:ePaper墨水屏驱动原理与工程实践
  • RS485接口EMC设计要点与工程实践
  • Qwen3-32B-Chat镜像+OpenClaw:10分钟搭建论文研读助手
  • 面试必问:常见的登录鉴权方式有哪些?各自优缺点是什么?(全网最详总结)
  • 驻马店花生种植如何选种?2026年口碑与实力兼具的三大优质供种商深度解析 - 2026年企业推荐榜
  • 聊聊流程工业的数据分析:工程师如何避开“天书软件”的坑,真正落地工艺寻优?
  • 2026年上海联排别墅电梯轿厢翻新:专业服务商选择与价值重塑指南 - 2026年企业推荐榜
  • simia_joystick:面向心理生理实验的低延迟摇杆驱动设计
  • OpenClaw资源监控方案:Kimi-VL-A3B-Thinking长任务内存泄漏排查
  • OpenClaw能耗管理:千问3.5-9B长时间运行的资源优化
  • OpenClaw文件自动化实战:Phi-3-mini-128k-instruct实现智能归档