什么是Scaling Law,谈谈你对它的理解

news/2024/11/6 7:43:02/

1. 什么是Scaling Law

1.1 Scaling Law的目标
  • Having a sense of the capabilities of a model before training can improve decisions around alignment, safety, and deployment.

    — GPT4 Technical Report

在训练之前了解模型的能力,以改善关于大模型的对齐、安全和部署的决定。

image-20241104161836972

图来自OpenAI gpt4 技术报告 https://cdn.openai.com/papers/gpt-4.pdf

图 1. GPT-4 和较小模型的性能表现。(在训练之前,就大致预测出了GPT-4的性能边界)

衡量标准是openAI的内部代码库衍生的数据集上的最终损失。这个数据集包含了大量代码标记,并未包含在训练集中。

我们选择观察损失,因为在不同训练计算量的情况下,损失通常比其他指标更稳定。

虚线表示对较小模型(不包括 GPT-4)的幂律拟合;该拟合可以准确预测 GPT-4 的最终损失。横轴为训练计算量,并进行了标准化处理,使得 GPT-4 对应的值为 1。

1.2 Scaling Law的定义
  • Scaling Law 定义:
    • 用计算量、数据集规模和模型规模,来预测模型最终能力。 (通常以相对简单的函数型态, ex: Linear relationship)

在大语言模型中,我们期望模型能够理解人类语言的一般规律,从而做出和人类相似的表达方式,通过使用大量的数据进行训练从而获得使模型学习到数据背后的一般规律。

在训练预训练模型时,通常有两个可以提高大语言模型性能的选项:增加数据集大小和增加模型中的参数量。在此基础上,训练过程中还存在一个限制条件,即训练成本,比如GPU的数量和可用于训练的时间等。

因此,大语言模型的预训练,通常伴随着训练的计算量、数据集规模和模型规模的三方权衡博弈。

image-20241104163138219

但是具体,他们之间的博弈是如何展开的?

是否可以通过Scaling Laws预测大模型在训练的计算量、数据集规模和模型规模这三个因素变动时,损失值的变化?

这种预测能帮助一些关键的设计决策,比如在固定资源预算下,匹配模型的最佳大小和数据大小,而无需进行及其昂贵的试错。

2. OpenAI V.S DeepMind

  • 基于这方面的代表性研究,主要有OpenAI和DeepMind
2.1 公司背景介绍
  • DeepMind

DeepMind,成立于2010年并于2015年被谷歌收购,是Alphabet Inc.的子公司。该公司专注于开发能模仿人类学习和解决复杂问题能力的AI系统。作为Alphabet Inc.的一部分,DeepMind在保持高度独立的同时,也在利用谷歌的强大能力推动AI研究的发展。

DeepMind在技术上取得了显著成就,包括开发AlphaGo,击败世界围棋冠军李世石的AI系统,展示了深度强化学习和神经网络的潜力,开启了一个AI时代。

  • OpenAI

在谷歌收购DeepMind后,为避免谷歌在AI领域形成垄断,埃隆·马斯克和其他科技行业人物于2015年决定创建OpenAI。它作为一个有声望的非营利组织,致力于开发能够推动社会进步的AI技术。

不同于DeepMind 像一个精于解决棋盘上复杂战术的大师,专注于解决那些有明确规则和目标的难题,OpenAI更像是一个擅长语言艺术的诗人,致力于让机器理解和生成自然的人类语言。

从坚持初期被外界难以理解的GPT路线信仰,直到拥有1750亿参数的GPT-3问世,OpenAI展示了其在生成式模型上无与伦比的能力,引领了另一个AI时代。

2.2 OpenAI 关于 Scaling Law 的观点
  • 2020年,来自OpenAI的Kaplan等人的团队,在《Scaling Laws for Neural Language Models》论文中首次提出模拟神经语言模型的模型性能(Loss)与模型大小 、数据集大小和训练计算量的关系。该团队发现三者中任何一个因素受限时,Loss与其之间存在幂律关系。

    【注:幂律指的是两个变量中的一个变量与另一个变量的某个幂次成正比。如果体现在图表中,当两个轴都是对数时,图像呈现为直线】

image-20241104163420652

图来自OpenAI 发表文章:Scaling Laws for Neural Language Models

图1 随着用于训练的计算量、数据集规模和模型规模的增加,语言建模性能平稳提升。为了获得最佳性能,必须将这三个因素同步扩大。当没有受到其他两个因素限制时,性能与每个单独因素之间呈幂律关系。

该团队的研究结论总结如下:

  1. 影响模型性能的三个要素之间,每个参数会受到另外两个参数的影响。当没有其他两个瓶颈时,性能会急剧上升,影响程度为计算量 > 参数 >>数据集大小。

  2. 在固定计算预算下进行训练时,最佳性能可以通过训练参数量非常大的模型并在远离收敛前停止(Early Stopping)来实现。

  3. 更大的模型在样本效率方面表现更好,能以更少的优化步骤和使用更少的数据量达到相同的性能水平。在实际应用中,应该优先考虑训练较大的模型。

2.3 DeepMind 关于 Scaling Law 的观点

2022年,来自Deepmind的Hoffmann等人的团队,在《Training Compute-Optimal Large Language Models》提出了与OpenAI截然不同的观点。

OpenAI建议在计算预算增加了10倍的情况下,如果想保持效果,模型的大小应增加5.5倍,而训练token的数量仅需增加1.8倍。

**Deepmind这支团队则认为模型大小和训练token的数量都应该按相等的比例进行扩展。**该团队还暗示许多像GPT-3这样的千亿参数大语言模型实际上都过度参数化,也就是说它们的参数量超过了实现良好的语言理解所需,并训练不足。

该团队的研究结论总结如下:

  1. 对于给定的FLOP预算,损失函数有明显的谷底值:

    a. 模型太小时,在较少数据上训练较大模型将是一种改进;

    b. 模型太大时,在更多数据上训练的较小模型将是一种改进。

    也就是说,在给定的计算量下,数据量和模型参数量之间的选择平衡存在一个最优解。

  2. 在计算成本达到最优情况下,模型大小和训练数据 (token) 的数量应该等比例进行缩放,即:**如果模型的大小加倍,那么训练数据的数量也应该加倍。对于给定参数量的模型,最佳的训练数据集大小约为模型中参数量的20倍。**比如,对于一个7B的模型,理想的训练数据集大小应该约为140B tokens。

  3. 大模型训练需要更加关注数据集的扩展,但是只有数据是高质量的时候,更大数据集的益处才能体现出来。

3. 总结

  • Scaling Law 定义:

    • 用计算量、数据集规模和模型规模,来预测模型最终能力。
  • OpenAI 关于 Scaling Law 的主要观点:

    • 三个要素之间,每个参数会受到另外两个参数的影响。当没有其他两个瓶颈时,性能会急剧上升,影响程度为计算量 > 参数 >>数据集大小。
  • DeepMind 关于 Scaling Law 的主要观点:

    • 三个要素之间,应该按相等的比例进行扩展。

http://www.ppmy.cn/news/1544753.html

相关文章

鸢尾博客项目开源

1.博客介绍 鸢尾博客是一个基于Spring BootVue3 TypeScript ViteJavaFx的客户端和服务器端的博客系统。项目采用前端与后端分离,支持移动端自适应,配有完备的前台和后台管理功能。后端使用Sa-Token进行权限管理,支持动态菜单权限,服务健康…

基于Spring Boot的信息学科平台系统开发与优化

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时,其核心的逻辑就是拖拽方块放入到地图中,这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手,具体的实现逻辑就是下面 public void On…

springboot yml文件数据源出现警告/报黄/数据库配置警告问题

1、看一下数据源的依赖是不是都引入完整了 2、看一下数据源是否有拼写错误 上图就是数据源拼写错误

23使用APT/YUM/DNF等工具管理软件包

每天五分钟学Linux | 第二十三课:使用APT/YUM/DNF等工具管理软件包 大家好!欢迎再次来到我们的“每天五分钟学Linux”系列教程。在前面的课程中,我们学习了如何编写带有控制结构的Shell脚本。今天,我们将探讨如何使用Linux中的软…

「Mac畅玩鸿蒙与硬件27」UI互动应用篇4 - 猫与灯的互动应用

本篇将带领你实现一个趣味十足的互动应用,用户点击按钮时猫会在一排灯之间移动,猫所在的位置灯会亮起(on),其余灯会熄灭(off)。应用会根据用户的操作动态更新灯光状态和文本提示当前亮灯的位置&…

网页中嵌入Unity并传参给Unity

要在网页中嵌入Unity并传参给Unity,你可以使用JavaScript和Unity的SendMessage函数进行通信。以下是实现步骤: 第一步:配置Unity的WebGL构建 1. 在Unity中,将项目设置为WebGL平台: 打开文件 > 构建设置&#xf…

AI开发-三方库-torch-torchvision

1 需求 数据集:torchvision.datasets torchvision.datasets.MNIST数据变换:torchvision.transforms torchvision.transforms.Composetorchvision.transforms.ToTensortorchvision.transforms.Normalize模型:torchvision.models可视化工具&…