NLP大语言模型的缩放定律

一、简述

        ​论文《神经语言模型的缩放定律》包含对交叉熵损失的语言模型性能的经验缩放定律的研究,重点关注Transformer架构。

https://arxiv.org/pdf/2001.08361.pdficon-default.png?t=N7T8https://arxiv.org/pdf/2001.08361.pdf        实验表明,测试损失与模型大小、数据集大小和用于训练的计算量呈幂律关系,某些趋势跨越超过七个数量级。这意味着简单的方程控制着这些变量之间的关系,这些方程可用于创建最有效的训练配置,以训练非常大的语言模型。此外,网络宽度或深度等其他架构细节似乎在很大范围内影响甚微。

        从实验和推导的方程可以看出,更大的模型具有更高的样本效率,即最佳计算效率训练涉及在相对适量的数据上训练非常大的模型,并在收敛之前显著停止。 ​ 

二、实验

为了研究语言模型的扩展,人们利用不同的因素训练了各种模型,包括:

  • 模型大小(N):大小范围从 768 到 15 亿个非嵌入参数。
  • 数据集大小(D):范围从 2200 万到 230 亿个标记。
  • 模型形状:包括深度、宽度、注意头、前馈维度。
  • 上下文长度:大多数运行为 1024,但也有一些实验使用较短的上下文。
  • 批次大小:大多数运行的批次大小为 2^19,但有一些变化来衡量临界批次大小。以临界批次大小进行训练可在时间和计算效率之间实现大致最佳的折衷。

我们还定义以下训练变量:L为测试交叉熵损失。C为训练模型所使用的计算量。

三、主要发现

  • 性能在很大程度上取决于模型规模,而与模型形状的关系较弱:模型性能在很大程度上取决于规模,它由三个因素组成:模型参数数量N(不包括嵌入)、数据集大小D以及用于训练的计算量C。在合理的范围内,性能对其他架构超参数(例如深度与宽度)的依赖性非常弱。
  • 平滑幂律:当不受其他两个因子的瓶颈影响时,性能与三个比例因子NDC中的每一个都具有幂律关系,趋势跨越六个数量级以上。

        随着我们增加用于训练的计算量、数据集大小和模型大小,语言建模性能会平稳提升。为了获得最佳性能,必须同时扩大这三个因素。

        论文区分了嵌入参数和非嵌入参数,因为它们的大小与模型性能的相关性不同。当包含嵌入参数时,性能似乎除了参数数量外,还在很大程度上取决于层数。当排除嵌入参数时,不同深度的模型的性能会收敛到单一趋势。

        左图:当包含嵌入参数时,性能似乎除了参数数量外,还在很大程度上取决于层数。右图:当排除嵌入参数时,不同深度的模型的性能收敛到单一趋势。

  • 过度拟合的普遍性:只要我们同时扩大ND ,性能就会可预测地提高,但如果ND保持不变而另一个增加,就会进入收益递减的阶段。

        早期停止测试损失可预测地取决于数据集大小 D 和模型大小 N。左图:对于较大的 D,性能是 N 的直接幂律。对于较小的固定 D,随着 N 的增加,性能停止改善,模型开始过拟合。右图:过拟合的程度主要取决于 N 和 D 之间的关系。

  • 训练的普遍性:训练曲线遵循可预测的幂律,其参数大致与模型大小无关。通过推断训练曲线的早期部分,可以粗略地预测如果训练更长时间将产生的损失。
  • 样本效率:大型模型比小型模型具有更高的样本效率,可以用更少的优化步骤和使用更少的数据点达到相同的性能水平。

        一系列语言模型训练运行,模型大小从 10^3 到 10^9 个参数(不包括嵌入)。

左图:早期停止测试损失 L(N, D) 随数据集大小 D 和模型大小 N 可预测地变化。右图:在初始过渡期之后,当以大批量进行训练时,所有模型大小 N 的学习曲线都可以用以步数 (Smin) 为参数的方程拟合。

  • 收敛效率低下:在固定的计算预算C内工作,但没有对模型大小N或可用数据D进行任何其他限制时,我们通过训练非常大的模型并在收敛前明显停止来获得最佳性能。

        随着可用的计算能力不断增强,可以选择将多少资源分配给训练更大的模型、使用更大的批次以及训练更多步骤。此图说明了计算能力增加十亿倍的情况。为了实现计算效率最高的训练,大部分增加的资源应该用于增加模型大小。需要相对较少的数据增加以避免重复使用。在增加的数据中,大部分可用于通过更大的批次大小来增加并行性,而只需要非常小的增加串行训练时间。

        综合这些结果表明,随着我们适当扩大模型规模、数据和计算能力,语言建模性能会平稳且可预测地提高。相反,我们发现对许多架构和优化超参数的依赖性非常弱。预计更大的语言模型将比当前模型表现更好,样本效率更高。

四、结论和后续步骤

        在训练大型语言模型时,可以使用NDL之间的关系来推导计算缩放、过度拟合的程度、早期停止步骤和数据要求。

        ​导出的缩放关系可用作预测框架。人们可能将这些关系解释为理想气体定律的类似物,该定律以通用方式关联气体的宏观属性,而不受其微观成分的大多数细节影响。 ​

        研究这些缩放关系是否适用于具有最大似然损失的其他生成建模任务,以及是否也适用于其他设置和领域(例如图像、音频和视频模型)将会很有趣。

        在本文中,我们了解了语言模型性能与模型大小、模型形状和计算预算之间的关系。这些关系可用于推导出我们想要训练的固定大型语言模型的最佳效率计算预算,反之亦然,用于在给定固定计算预算的情况下推导出最佳效率模型(就模型大小和形状而言)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已解决VirtualMachineError: 虚拟机错误的正确解决方法,亲测有效!!!

已解决VirtualMachineError: 虚拟机错误的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 分析错误日志 优化代码 内存泄漏排查 优化递归调用 调整JVM参数 使用监控工具 增加物理内存或升级硬件…

优选免单模式:电商销售的新篇章

随着电商市场的日益繁荣,各种创新销售模式层出不穷。其中,优选免单模式以其独特的运作方式和激励机制,吸引了大量消费者的目光。该模式的核心在于通过降低商品售价、引入社交元素以及设计阶梯式奖励,激发消费者的购买热情&#xf…

【C++知识点】类和对象:友元,运算符重载,多态

今天来继续了解类和对象! PS.本博客参考b站up黑马程序员的相关课程,老师讲得非常非常好! 封装 深拷贝与浅拷贝 浅拷贝:简单的赋值拷贝操作 深拷贝:在堆区重新申请空间,进行拷贝操作 首先&#xff0c…

「动态规划」如何求最长湍流子数组的长度?

78. 最长湍流子数组https://leetcode.cn/problems/longest-turbulent-subarray/description/ 给定一个整数数组arr,返回arr的最长湍流子数组的长度。如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。更正式地来说,…

VBA技术资料MF164:列出文件夹中的所有文件和创建日期

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

JAVA大型医院绩效考核系统源码:​医院绩效考核实施的难点痛点

JAVA大型医院绩效考核系统源码:​医院绩效考核实施的难点痛点 绩效考核数字化综合管理系统是一个基于数字化技术的管理平台,用于帮助企业、机构等组织进行绩效考评的各个环节的管理和处理。它将绩效考评的各个环节集成到一个系统中,包括目标…

Appium Android 自动化测试 -- 元素定位

自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。 Appium 定位方式和 selenium 一脉相承,selenium 中的定位方式Appium 中都支持,而 Appium 还增加了自己…

ciscn_2019_n_1

前戏--------checksec,运行查看 进入就可以发现这段代码 很浅显易懂 我们要得到的后面是 这里 我们要利用的漏洞是 get函数 0x30大小 加上8 exp: from pwn import * ghust remote("node5.buuoj.cn",28777) addr 0x4006BE payload bA * 0x30 bB*0x8 p64(addr…

细说MCU输出两路PWM波形及改变占空比的实现方法

目录 一、硬件及工程 二、建立工程 三、代码修改 四、下载运行 五、改变PWM波形占空比 1、定义两个全局变量 2、启动定时器 3、重写TIM3中断回调函数 六、下载并运行 一、硬件及工程 文章依赖的硬件及工程配置参考本文作者的其他文章:细说ARM MCU的串口接…

3D开发工具HOOPS为BIM应用提供支持:复杂大模型实现Web端轻量化!

在数字化转型的浪潮中,Tech Soft 3D以其HOOPS SDK工具包,为软件开发人员提供了强大的支持。这一工具包不仅支持Windows、Linux、OSX和移动平台等多样化的操作系统,还使得开发人员能够构建出庞大而复杂的建筑和BIM应用程序。HOOPS SDK的多格式…

26.2 Django简介

1. Python三大主流框架 根据当前的信息和流行度, Python的三大框架可以归纳为Django, Flask和FastAPI, 以下是对它们的清晰分点表示和归纳:* 1. Django: 一个高级的Python Web框架, 以快速开发和实用简洁的设计出名.它遵循MVC设计模式(但更倾向于MTV模式), 并提供了许多内置的…

让全栈AI的旗帜猎猎作响:“逆行者”华为云

如果有人问,AI大模型行业,最近的风向是什么?相信很多人都会说,是“内卷”。 近段时间,“降价”成了大模型的第一关键词。各大云服务商争相加入AI降价潮,甚至有公司模型降价达到了97%的惊人幅度。加上厂商抢…

数据库精选题(三)(SQL语言精选题)(按语句类型分类)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据库 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 创建语句 创建表 创建视图 创建索引…

汽车销售系统

摘 要 在现代社会,电脑是企业运作和管理必不可少的工具。我们过去用手记下卖出的商品的年代已一去不复返了。在我国,汽车销售行业的竞争日趋激烈的情况下,如何提高企业的管理水平,提高企业的工作效率,提高企业的服务质…

(vue3)基于vite+vue3+element-plus项目创建

(vue3)基于vitevue3element-plus项目创建 vue.js官方中文文档:https://cn.vuejs.org/guide/quick-start.html vite官方中文文档:https://cn.vitejs.dev/guide/ element-plus官网:https://element-plus.org/zh-CN/guide/installation.html 第…

经典机器学习方法(7)—— 卷积神经网络CNN

参考:《动手学深度学习》第六章 卷积神经网络(convolutional neural network,CNN)是一类针对图像数据设计的神经网络,它充分利用了图像数据的特点,具有适合图像特征提取的归纳偏置,因而在图像相…

show/hide信号演示

代码&#xff1a; #include <gtk-2.0/gtk/gtk.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <glib-2.0/glib.h> #include <stdio.h>gint delete_event(GtkWidget *window, GdkEvent *event, gpointer data) {gtk_widget_hide(window);return TRU…

SpringBoot + Vue 实现 AES 加密和 AES 工具类总结

目录 一、加密知识回顾 AES加密模式 二、Java 自定义 AES 工具类 三、SpringBoot 实现 AES 加密登陆 controller 层 server 层 四、Vue 实现 AES 加密登陆 五、前端AES工具类 六、实现结果 一、加密知识回顾 密钥是AES算法实现加密和解密的根本。对称加密算法之所以…

基于MATLAB仿真LFM线性调频信号

基于MATLAB仿真LFM线性调频信号 目录 前言 一、LFM信号简介 二、LFM信号基本原理 三、LFM信号仿真 四、代码 总结 前言 仿真中的接收信号&#xff0c;有时为了简单会直接用一个正弦波代替&#xff0c;但实际中接收到的信号极少是点频信号&#xff0c;一般都是PSK信号、OF…

MySQL事务、数据库的存储引擎

目录 1. 事务的概念 1.1事务的 ACID 2. 存储引擎 2.1 存储引擎 2.2 常用存储引擎 3.MyISAM 3.1 MyISAM 表支持 3 种不同的存储格式​编辑 3.2 适用的生产场景 4. InnoDB 4.1 InnoDB特点 4.2 适用生产场景分析 5. MyISAM 和 InnoDB 的区别 6. 命令操作 7. 死锁 7.…