openai 论文Scaling Laws for Neural Language Models学习

devtools/2024/11/19 17:21:29/

2001.08361 (arxiv.org)

论文研究语言模型在交叉熵损失下的性能经验缩放定律:模型损失(性能)随模型大小、数据集大小和用于训练的计算量呈现缩放为幂律的关系,有些趋势跨越超过 7 个数量级。其他模型架构细节 (如网络宽度或深度) 在很宽的范围内影响最小,使用简单方程来控制过拟合对模型/数据集大小的依赖性以及训练速度对模型大小的依赖性,这些依赖关系使我们能够计算预算固定的情况下确定最佳分配方案。较大的模型明显具有更高的样本效率,因此最佳计算效率的训练需要在相对少量的数据上训练非常大的模型,并在收敛之前显著停止。

主要发现如下:
性能高度取决于规模,弱于模型形状: 模型性能最强依赖于规模,规模由三个因素组成:模型参数的数量 N (不包括 embeddings),数据集的大小 D,以及计算量 C 用于训练。在合理的范围内,性能对其他架构超参数(如深度与宽度)的依赖性非常弱。(第3)

平滑幂律: 性能与三个比例因子中的每一个都有幂律关系 N, D, C 当不被其他两个瓶颈所限制时,趋势跨度超过 6 个数量级 (见图1)。我们没有观察到上端偏离这些趋势的迹象,尽管业绩在达到零损失之前最终必须趋于平稳。(第3)
过拟合的普遍性: 只要我们扩大规模,性能就会得到可预期的改善 N 和 D 同时,但进入收益递减的制度,如果其中之一 N 或 D 是固定的,而另一个是增加的。性能损失可预测地取决于比率N0.74/D 意味着每当我们将模型大小增加 8 倍时,我们只需要将数据增加大约 5 倍就可以避免损失。(第4)
培训的普遍性: 训练曲线遵循可预测的幂律,其参数大致与模型大小无关。通过外推训练曲线的早期部分,我们可以大致预测如果我们训练更长的时间,将获得的损失。(第5)
传输性能随测试性能的提高而提高: 当我们在文本上评估模型的分布不同于它们在其上训练的分布时,结果与训练验证集上的结果强相关,损失的偏移大致恒定——换句话说,转移到不同的分布会招致恒定的惩罚,但其他方面的改进大致与训练集上的性能一致。(第3.2.2)
样品效率: 大模型比小模型的样本效率更高,只需更少的优化步骤就能达到相同的性能水平 (图2)和使用较少的数据点 (图4).
收敛效率低: 在固定计算预算范围内工作时 C 但对模型大小没有任何其他限制 N 或可用数据D,我们通过训练获得最佳性能非常大的模型并停止收敛性明显不足 (参见图3)。因此,最大计算效率的训练将远比基于训练小模型收敛的预期的样本效率要高得多,数据需求增长非常缓慢,随着D ∼ C0.27 使用训练计算。(第6)
最佳批量: 训练这些模型的理想批量大小大致是损失的幂,并且可以通过测量梯度噪声规模来确定 [MKAT18]对于我们可以训练的最大模型,它在收敛时大约是 1-2 百万个令牌。(第5.1)
综上所述,这些结果表明,随着我们适当地扩大模型大小、数据和计算,语言建模性能可以平滑和可预测地提高。我们预计,与当前模型相比,更大的语言模型将表现更好,并具有更高的样本效率。

1.2 标度定律总结
当性能仅受非嵌入参数数量的限制时,可以使用幂律预测训练为自回归模型语言的 Transformer 的测试损失 N,数据集大小 D,或最佳分配的计算预算 Cmin (参见图1):
1. 对于参数数量有限的模型,在足够大的数据集上训练为收敛:

2. 对于使用有限数据集训练的大型模型,提前停止:

3. 当使用有限的计算量进行训练时,一个足够大的数据集、一个最优大小的模型和一个足够小
的批处理大小 (使最优3 计算的使用):

等式(1.1) 和(1.2) 建议当我们增加模型大小时,我们应该根据 事实上,我们发现
有一个单一的方程结合(1.1) 和(1.2) 控制着同时依赖 N 和 D 并控制过拟合的程度:

与图中左图所示的配合4. 我们推测,这种函数形式也可以参数化其他生成式建模任务的训练对数似然。
当对给定模型进行有限数量的参数更新步骤训练时 S 在无限大的数据极限中,经过一个初始的瞬态周期后,学习曲线可以通过(见右图)精确拟合4)

其中是优化步骤(参数更新)的最小可能数量使用等式估算(5.4).  在固定计算预算范围内进行培训时 C,但没有其他约束,方程(1.6) 导致预测最优模型大小 N,最佳批量大小 B,最佳步数 S 和数据集大小 D 应生长为

这与经验上的最优结果非常吻合  作为计算预算 C 增加,它应该主要用于更大的模型,而不会大幅增加训练时间或数据集大小 (见图3)。这也意味着,随着模型的规模越来越大,它们的样本效率越来越高。在实践中,由于硬件限制,研究人员通常训练较小的模型的时间比最大计算效率要长。最佳性能取决于作为幂律的总计算量 (参见等式(1.3)).   我们为方程提供了一些基本的理论动因(1.5)、对学习曲线拟合及其对训练时间的影响的分析,以及对每个 token 的结果的细分。我们还对 LSTM 和 Rejection Transformer 做了一些简单的比较 [DGV+18].


http://www.ppmy.cn/devtools/135251.html

相关文章

Go语言跨平台桌面应用开发新纪元:LCL、CEF与Webview全解析

开篇寄语 在Go语言的广阔生态中,桌面应用开发一直是一个备受关注的领域。今天,我将为大家介绍三款基于Go语言的跨平台桌面应用开发框架——LCL、CEF与Webview,它们分别拥有独特的魅力和广泛的应用场景。通过这三款框架,你将能够轻…

java小练习

小练1.用while语句计算11/2!1/3!1/4!...1/20!的和 public class test_11_17_2 {public static void main(String[] args) {double sum 0;double item 1;int n 20;int i 1;while(i<n){sum item;i i1;item item*(1.0/i);}System.out.println(sum);} } 小练2.计算88888…

Linux系统Centos设置开机默认root用户

目录 一. 教程 二. 部分第三方工具配置也无效 一. 教程 使用 Linux 安装Centos系统的小伙伴大概都知道&#xff0c;我们进入系统后&#xff0c;通常都是自己设置的普通用户身份&#xff0c;而不是 root 超级管理员用户&#xff0c;导致我们在操作文件夹时往往爆出没有权限&am…

力扣(leetcode)题目总结——辅助栈篇

leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏&#xff1a;点击进入 leetcode题目分类 关注走一波 前言&#xff1a;本系列文章初衷是为了按类别整理出力扣&#xff08;leetcode&#xff09;最经典题目&#xff0c…

VLOOKUP函数的使用

一、根据一个表去另一个表中找相同的数据 &#xff08;一&#xff09;资源名称&#xff1a;匹配两表中的不同数据.xlsx &#xff08;二&#xff09;表B去匹配表A ​​​​​​ IFERROR(VLOOKUP(C2,表A!$C$2:$F$10,1,0),"")IFERROR函数表示出错时不报乱码&#xf…

html+js+css实现拖拽式便签留言

前些日子在网上冲浪时&#xff0c;看到一个便签式留言墙&#xff0c;让人耳目一新。心想这个看着不错&#xff0c;额想要。于是便开始搜寻是否有相应开源插件&#xff0c;想将其引入自己的博客中。但是搜寻了一圈&#xff0c;都没有符合预期的,要么功能不符合。有的功能符合&am…

制作图片木马

图片文件通常有称作幻数的头字节&#xff0c;我们来看一下几种图片文件的幻数&#xff1a; &#xff08;注意&#xff01;下面是二进制而不是文本格式的数据&#xff09; 通过检查头几位字节&#xff0c;可以分辨是否是图片文件&#xff01; 通过检查头几位字节&#xff0c;可…

Python蓝桥杯刷题1

1.确定字符串是否包含唯一字符 题解&#xff1a;调用count函数计算每一个字符出现的次数&#xff0c;如果不等于1就输出no&#xff0c;并且结束循环&#xff0c;如果等于1就一直循环直到计算到最后一个字符&#xff0c;若最后一个字符也满足条件&#xff0c;则输出yes import…