(2024,缩放定律,信息论,模型大小与数据的线性关系)神经缩放定律的信息论基础

news2025/1/9 22:44:07

Information-Theoretic Foundations for Neural Scaling Laws

公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

1. 简介

3. 缩放定律

4. 一个例子

5. 结论


0. 摘要

神经网络缩放定律(Neural scaling laws)旨在描述样本外误差作为模型和训练数据集大小的函数的行为。这些缩放定律指导计算资源在模型和数据处理之间的分配,以最小化误差。然而,现有的神经网络缩放定律理论支持缺乏严谨性和清晰性,混淆了信息和优化的角色。在这项工作中,我们开发了神经网络缩放定律的严谨信息理论基础。这使我们能够描述由无限宽度的两层神经网络生成的数据的缩放定律。我们观察到,数据和模型大小之间的最佳关系是线性的,最多有对数因子,这与大规模的实证研究一致。我们所建立的简明而普遍的结果可能为这一主题带来清晰度,并为未来的研究提供参考。

1. 简介

近年来,基础模型的规模增长迅猛,有些模型包含数万亿个可训练参数。尽管较大的模型通常产生更好的结果,但它们也需要更多的计算资源来进行训练。在这些现代模型的规模下进行超参数调优变得不切实际。这需要绕过通过广泛的试验和错误来调整超参数的做法,这在深度学习中曾经是很常见的。

除其他事项外,超参数控制 1)神经网络模型的大小,以参数数量 p 来衡量,2)训练 token 的数量 T。如果每个参数都响应每个 token 进行调整,那么训练的计算需求将按这两个数量的乘积来扩展。对于任何计算预算 C,应仔细平衡 p 和 T 之间的关系。训练 token 太少会导致模型估计误差,而参数太少则会导致错误指定误差。由于在多个 p 和 T 选择下评估性能在大规模上计算不可行,需要采用替代分析方法来指导计算资源的分配。

Kaplan等人 [2020] 和 Hoffmann等人 [2022] 提出了以下用于分配大型计算预算的程序:1)评估使用不同参数 p 和训练 token T 分配的各种小计算预算 C 所产生的模型的测试误差。2)外推(extrapolate)以估计大计算预算 C 下 p 和 T 之间的关系。

为了给出涉及的规模感,Hoffmann等人 [2022] 评估了 “较小” 模型的测试误差,其中 p×T 范围大约从 10^18 到 10^22,并外推到大约 10^24 的 “较大” 模型。Kaplan等人 [2020] 和 Hoffmann等人 [2022] 都基于假设的支架函数(scaffolding function)进行外推。Kaplan等人 [2020] 基于小规模实验中观察到的结果猜测支架函数。Hoffmann等人 [2022] 进行了一种非正式且有些推测性的数学分析来指导他们的选择(见其附录 D)。

Hoffmann等人 [2022] 的分析是通用的,而不是专门针对该论文中使用的特定神经网络架构。在本文中,我们基于 Jeon 和 Van Roy [2022a,b] 的工作,建立了严格的信息论基础,并使用它们推导出类似的缩放规律。为了保持简洁和具体,我们使用一种适合神经网络的数据生成过程进行分析。Hoffmann等人 [2022] 提出的论点在这种情况下与在语言模型中一样相关。

Hoffmann等人 [2022] 建议,参数数量与训练 token 数量之间的计算最优权衡是线性的,尽管作者表达了一些怀疑,并考虑了其他接近线性的可能性。我们建立了最小信息论可实现期望误差的上限作为 p 和 T 的函数,并推导出每个计算预算下最小化该上限所需的关系。对于大的计算预算,这种关系是线性的,正如 Hoffmann等人[2022] 所建议的。

【各种定理和推论及其证明见原文】

3. 缩放定律

对于 FLOP 约束 C = p · T,很明显在最小化定理 3.1 中的误差上界时,p 和 T 之间存在紧张关系。这可以通过首先固定一个 FLOP 数 C 并替换 T = C/p 来看到。上界变为:

注意,第一项随着 p 的增加而增加,而第二项随着 p 的增加而减少。因此,在固定的 FLOP 预算下,设计者应选择一个能够有效平衡这两种误差来源的 p 值。

4. 一个例子

(左侧)FLOP 约束 C = p · T,参数 p 增加,token T 减少。对于每条曲线,

  • 在一定范围内token T 是充足的,则增加模型参数有助于减小误差
  • 当模型参数继续增大,token T 不足,则增加模型参数将增大误差

(右侧)我们展示了参数数量和数据集大小之间的计算最优权衡。虚线表示斜率为 1 的直线。因此,最优参数数量和数据集大小之间的关系最终呈现线性(如定理 4.3 所建议的)。 

5. 结论

我们的结果为分析基础模型的缩放法则提供了第一个严格的数学步骤。我们希望这将激发对该主题的进一步理论研究。我们的分析基于误差上界,并且仅限于单隐藏层前馈神经网络。将结果推广到处理最新的架构仍然是一个开放的问题。此外,我们只考虑了预训练计算的分配。在现代应用领域中,最新的性能依赖于通过人类反馈进行强化学习的后续微调(参见,例如,[Ziegler et al., 2019])。如何在预训练和微调之间最佳分配资源是另一个值得关注的领域。一个将预训练、微调和决策统一并连贯处理的信息论框架,或许类似于 [Lu et al., 2023],可能会促进这方面的理论发展。

论文地址:https://arxiv.org/abs/2407.01456

相似工作

(2024,模型规模vs序列长度)Transformer 何时可以数到 n?

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

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

相关文章

EasyExcel - table写入复杂表头及内容

需求:在一个工作簿中,需要填充固定字段信息,并写入多个不同的标题列的表格及内容。 常规Excel写入一般是一个工作簿一个表头。 目录 一、复杂表单分析1.表单示例2.复杂表单拆解3.准备模板 二、EasyExcel文档1.最简单的填充Excel2.使用table去…

[Linux安全运维] Nginx安装部署以及LNMP框架搭建保姆级教程

前言 LNMP:Linux 系统下 NginxMySQLPHP 网站服务器架构。因为四种软件均是免费开源网站,所有这是一个免费、高效的网站服务系统。 本章主要介绍的是Nginx相关的环境部署,以及LNMP框架的搭建,Nginx知识点介绍在文章:[…

昇思25天学习打卡营第23天|基于MindSpore的红酒分类实验案例:从数据准备到模型预测

目录 MindSpore 版本配置与红酒数据集下载 葡萄酒数据读取、处理与可视化分析 基于 KNN 算法的样本分类模型构建与预测函数定义 基于 KNN 模型的测试集预测与准确率计算 MindSpore 版本配置与红酒数据集下载 首先使用 %%capture captured_output 捕获后续代码的输出。然后&a…

【Django5】内置Admin系统

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理(Cookies&Session) 第八章 文件上传…

python中,jsonpath提取数据的时候出现TypeError: ‘bool‘ object is not subscriptable怎么解决

json格式如下: { success: True, result: { codeInfo: { code: 0, msg: 成功 }, uploadToken: { resId: rzJRpo, endpoint: https://sit-api-ypsx-resource.ypsx-internal.com/r…

知识分享|temu跨境选品师盈利一般要多久?

在成为一名跨境选品师,特别是在TEMU(The Easy Market University)平台上,盈利的速度取决于多种因素,包括个人技能、市场选择、产品定位和运营策略等。这些因素共同决定了一个选品师从初始阶段到稳定盈利的时间轨迹。 首先,对于新手…

vue3组件通信(一)

组件通信 一.props(父<>子)二.自定义事件&#xff08;子>父&#xff09;三.mitt(实现任意组件通信)四.v-model(父<>子)(1).v-model的本质(2).组件标签中v-model的本质(3).$event到底是什么 概况 一.props(父<>子) 使用频率最高 若 父传子&#xff1a;属性…

Redis结合Lua脚本的简单使用

我们就拿购物车举例子 现在有5个东西免费送&#xff0c;我们只能选择1个 例如 可乐 美年达 香蕉 苹果 薯片 我们选择后就放进redis里面 然后我们不能选重复&#xff0c;只能选不同 Lua脚本 我们redis使用lua脚本的时候&#xff0c;会传两个参数进去 一个是List<Strin…

(新)VMware虚拟机安装Linux教程(超详细)

创作不易&#xff0c;禁止转载抄袭&#xff01;&#xff01;&#xff01;违者必究&#xff01;&#xff01;&#xff01; 创作不易&#xff0c;禁止转载抄袭&#xff01;&#xff01;&#xff01;违者必究&#xff01;&#xff01;&#xff01; 创作不易&#xff0c;禁止转载抄…

PMP相关考点整理

PMP知识点整理 一、预测型4. 项目整合管理启动:4.1 制定项目章程规划:4.2 制定项目管理计划执行:4.3 指导与管理项目工作4.4 管理项目知识监控4.5监控项目工作4.6 实施整体变更控制【都是重点】收尾4.7 结束项目或阶段5. 项目范围管理启动:/规划:/5.1 规划范围管理5.2 收集…

36.【C语言】函数栈帧的创建和销毁

本文将解决以下问题 局部变量是怎么创建的&#xff1f; 为什么局部变量的值是随机值&#xff1f; 函数是怎么传参的&#xff1f;传参的顺序是怎样的&#xff1f; 形参和实参是什么关系&#xff1f; 函数调用是怎么做的&#xff1f; 函数调用是结束后怎么返回的&#xff1f; 本文…

电脑部分数据丢失?别担心,这里有恢复指南!

在数字化时代&#xff0c;电脑已成为我们日常生活中不可或缺的设备&#xff0c;存储着大量重要的工作文档、个人照片、视频回忆以及各类学习资料。然而&#xff0c;无论是由于误操作、系统故障、病毒攻击还是硬件损坏&#xff0c;电脑数据丢失的情况时有发生&#xff0c;令人焦…

JAVA(IO流-字节流)day 7.29

ok家人们今天继续学习IO流&#xff0c; 一.字节流 存储时&#xff0c;都是使用二进制来保存。 2.1 字节输出流OutputStream OutputStream是字节输出流的超类&#xff08;父类&#xff09;, 方法 public abstract void write(int b)&#xff1a; 一次写一个字节数据。pub…

如何实现无公网IP远程访问本地内网部署的Proxmox VE虚拟机平台

文章目录 1. 局域网访问PVE2. 安装Cpolar 工具3. 创建PVE公网地址4. 远程访问PVE5. 设置固定域名6. 固定地址访问 Proxmox VE是一个完全开源的平台&#xff0c;基于Debian Linux&#xff0c;用于运行虚拟机和容器。为了提供最大的灵活性&#xff0c;它支持两种虚拟化技术&#…

超简单!证件照换底色一分钟速成技巧

证件照的底色一般情况下分为&#xff1a;蓝色、红色、白色 证件照的尺寸也分为&#xff1a;一寸、两寸、大一寸、小二寸等 不同的文件或需求场景下对于证件照的底色和尺寸都有不同的要求&#xff0c;想要更方便的变更证件照可以先保存一版电子版&#xff0c;然后每次在初始版…

C++使用Boost库对时间的操作

0x00、获取当前时间&#xff0c;时间格式为yyyy-MM-dd hh:mm:ss.zzz std::string GetCurrentTime() {// 使用本地时间boost::posix_time::ptime now boost::posix_time::microsec_clock::local_time();// 获取毫秒部分boost::posix_time::time_duration td now.time_of_day(…

【数据结构】——双链表的实现(赋源码)

双链表的概念和结构 双链表的全称叫做&#xff1a;带头双向循环链表 它的结构示意图如下 注意&#xff1a;这⾥的“带头”跟前⾯我们说的单链表的“头结点”是两个概念&#xff0c;实际前⾯的在单链表阶段称呼不严谨&#xff0c;但是为了读者们更好的理解就直接称为单链表的头…

学习008-02-04-09 Assign a Standard Image(分配标准图像)

Assign a Standard Image&#xff08;分配标准图像&#xff09; This lesson explains how to associate an entity class with a standard image from the DevExpress.Images assembly. This image illustrates the entity class in the following sections of the UI: 本课介…

C# Unity 面向对象补全计划 之 访问修饰符

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列旨在通过补全学习之后&#xff0c;给出任意类图都能实现并做到逻辑上严丝合缝

LabVIEW安装DSC模块 转自三景页593

打开NI Package Manager&#xff0c;找到LabVIEW and Drivers 找到自己需要的版本进行下载 搜索需要的模块进行下载 以DSC模块为例&#xff0c;下载右边的安装即可 最后用激活工具激活即可使用