大语言模型的Scaling Law【Power Low】

NLP-大语言模型学习系列目录

一、注意力机制基础——RNN,Seq2Seq等基础知识
二、注意力机制【Self-Attention,自注意力模型】
三、Transformer图文详解【Attention is all you need】
四、大语言模型的Scaling Law【Power Low】

文章目录

  • NLP-大语言模型学习系列目录
  • 一、什么是 Scaling Law
  • 二、 Scaling Law的应用
  • 三、未来挑战
  • 参考资料


一、什么是 Scaling Law

Scaling Law(缩放法则)是人工智能和机器学习中一类理论,它描述了随着模型规模(例如参数数量)、训练数据量、计算资源的增加,模型性能如何提升的规律。简单来说,Scaling Law 研究的是模型性能与模型规模之间的关系

定义【Scaling Law】1

在生成模型中被广泛观察到的现象,对于计算量C,模型参数量N和数据大小D,当不受另外两个因素影响时,模型的性能与每个因素都呈幂律关系:

  • 性能 ∝ N α \propto N^{\alpha} Nα
  • 性能 ∝ D β \propto D^{\beta} Dβ
  • 性能 ∝ C γ \propto C^{\gamma} Cγ

这些公式中的 α、β、γ 是对应维度的缩放指数。通常模型性能可以用Test Loss来表示,Loss越小说明模型性能越好。

截屏2024-10-19 10.54.28

Scaling Law背后的基本思想是:模型的性能可以通过简单的扩展(例如增加模型参数、训练数据或计算资源)来不断提升,并且这种提升往往遵循一定的幂律关系。通过研究这种关系,研究者可以预测模型在不同规模下的性能表现,指导大模型的设计和训练。

二、 Scaling Law的应用

Scaling Law总结出来的一个规律是:
C ≈ 6 N D C\approx6ND C6ND

其中C是计算量,N是参数量,D是训练数据量。举个例子:

假设一个模型有 10亿个参数( N = 1 0 9 N=10^9 N=109 ), 并且训练数据集的规模是 D = 1 0 12 \mathrm{D}=10^{12} D=1012 (1万亿个 token).使用公式 C = 6ND, 总的计算量就是:

C = 6 × 1 0 9 × 1 0 12 = 6 × 1 0 21 F L O P s C=6 \times 10^9 \times 10^{12}=6 \times 10^{21} \mathrm{FLOPs} C=6×109×1012=6×1021FLOPs
这表明要训练这个模型, 大约需要 6 × 1 0 21 6\times 10^{21} 6×1021 次浮点运算。

截屏2024-09-25 19.46.14
这个规律有什么用呢?通过前面的Scaling Law我们知道,训练大模型时,增加模型的参数量或者训练的数据量,模型性能会得到提升。但是我们并不能无止境的增加,因为现实训练模型收到计算量的制约,训练一个语言大模型是很费钱的。所以当给定一个计算量budget,我们怎么分配N和D得到一个最好的模型呢

这个问题可以建模为如下的优化问题:

N o p t ( C ) , D o p t ( C ) = argmin ⁡ N , D s.t. FLOPs ( N , D ) = C L ( N , D ) , L ^ ( N , D ) ≜ E + A N α + B D β . N_{opt}(C),D_{opt}(C)=\underset{N,D\text{ s.t. FLOPs}(N,D)=C}{\operatorname*{argmin}}L(N,D),\\ \hat{L}(N,D)\triangleq E+\frac A{N^\alpha}+\frac B{D^\beta}. Nopt(C),Dopt(C)=N,D s.t. FLOPs(N,D)=CargminL(N,D),L^(N,D)E+NαA+DβB.

这个多变量问题怎么解呢?主要有三种方法:

  1. 固定模型大小,改变训练数据
  2. 固定计算量,改变模型大小
  3. 拟合幂律曲线

截屏2024-09-26 10.00.51

根据上表的结果,得出a=0.5,b=0.5

截屏2024-09-26 10.33.08

image-20240926103233403根据图3右边两图所得到的点,向外延伸,可以得到给定计算量C最佳的N、D.

截屏2024-09-26 10.35.43

image-20240926103557968

如下图所示,是LLaMA3.1中的Scaling Law,LLaMA3.1发布了3个模型,分别是8B,70B,405B.这个405B是怎么定下来的呢,难道是领导拍脑袋想出来的吗(国内可能是hh).显然他们做了实验,先在小数据和小模型上进行实验(左图),然后根据实验结果画出Scaling Law曲线,找到对应计算量的最优模型大小和最优训练数据量。
截屏2024-09-26 10.42.58

例:

  • 假设你有1000张H100显卡,并且可以用6个月。
  • 假设你有10T的数据。
  • 那么你应该训练多大的模型?

image-20240927145027916

另一种更快的估计方法:

image-20240927145042459

三、未来挑战

尽管 Scaling Law 提供了重要的理论指导,仍然存在一些挑战:

  • 计算成本问题:大规模扩展模型的参数和训练数据通常需要极高的计算成本。虽然 Scaling Law 提供了理论依据,但大规模训练的实际成本可能难以承受。
  • 数据质量:Scaling Law 假设数据量的增加会提升模型性能,但在实际应用中,数据的质量同样至关重要,低质量数据可能会导致性能下降甚至模型偏差。
  • 性能饱和:Scaling Law 研究表明,性能提升并不是无限的,通常会在某个点达到瓶颈。因此,研究者需要找到其他方法(如新架构、知识蒸馏)来进一步提高性能。

参考资料


  1. Scaling Laws for Neural Language Models ↩︎

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

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

相关文章

华为HarmonyOS实现实时语音识别转文本

场景介绍 将一段音频信息(短语音模式不超过60s,长语音模式不超过8h)转换为文本,音频信息可以为pcm音频文件或者实时语音。 开发步骤 在使用语音识别时,将实现语音识别相关的类添加至工程。 import { speechRecogni…

练习LabVIEW第十九题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第十九题: 创建一个程序把另外一个VI的前面板显示在Picture控件中 开始编写: 在前面板放置一个二…

第二十七节 图像的卷积操作

图像的卷积操作 图像的卷积操作可以看成是一个窗口区域在另一个大的图像上移动,对每个窗口覆盖的区域都进行点成得到的的值作为像素点的输出值,窗口的移动是从左到右,从上到下,窗口可以理解成一个指定大小的二维矩阵,…

iOS AVAudioSession 详解【音乐播放器的配置】

前言 在 iOS 音频开发中,AVAudioSession 是至关重要的工具,它控制着应用的音频行为,包括播放、录音、后台支持和音频中断处理等。对于音乐播放器等音频需求强烈的应用,设计一个合理的 AVAudioSession 管理体系不仅能保证音频播放…

MyBatis 配置详解

在项目中经常会用到 mybatis 相关的一些配置,而在启动类项目工程中,一般会把 mybatis 配置文件单独写到 mybatis,yml 中,如下简单介绍下常用的 mybatis 配置 mybatis:configuration:call-setters-on-nulls: truemap-underscore-to-camel-case…

一文详解高光谱数据python处理包spectral(SPy)

一、基本操作 读取高光谱数据文件 import spectral # 读取ENVI格式的高光谱图像 # image的后缀可以是.raw、.spe、.lan等 # 代码里img对象,类似于rasterio库的dataset对象,可以用它来读取高光谱数据 img spectral.envi.read_envi(filemy_data.hdr, im…

【LeetCode】修炼之路-0008- String to Integer (atoi)【python】

题目 基本思路 其实题目已经说了如何实现了,我们按照给定的思路实现即可 1. 问题四大要求详解 1.1 处理空格 (Whitespace) 忽略字符串开头的任何空格字符 (" ")例如: " 123" 应该被处理为 “123”Python实现: 可以使用 strip() 方法或循环处…

【Spring】控制反转 依赖注入(本文内容由大模型生成)

控制反转 & 依赖注入 1.依赖注入就是控制反转吗2.能通俗易懂地解释一下 IOC 吗示例:老板、秘书、员工 3.怎么理解反转这个概念的3.1 传统方式3.2 使用依赖注入(DI)3.3 示例:Spring 框架中的控制反转 4.什么是 Java 中的 Bean5…

Python浪漫之星星与文字构造的错位图

效果图: 完整代码: import tkinter as tk import random import math from tkinter.constants import *width 888 height 500 heartx width / 2 hearty height / 2 side 11class Star:def __init__(self, canvas, x, y, size):self.canvas canvas…

超简单!spring 微服务之远程服务调用实战

Spring微服务架构概览 微服务是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。Spring Cloud作为构建微服务应用的解决方案之一,提供了丰富的…

在Selenium中有哪些元素对象操作方法?( ̄﹃ ̄)

在Selenium中,driver.find_element() 方法用于定位页面上的单个元素。一旦你定位到了一个元素,你可以对这个元素执行多种操作。此外,driver.find_element() 只是定位元素的方法之一,它还有其他一些相关的方法和属性,但…

精准医疗沟通新体验:开源语音识别(ASR)如何提升医生与患者对话

需求背景:一家远程医疗公司在为偏远地区提供在线医疗服务的过程中,发现传统手动记录方式效率太低,无法满足需求,影响就诊的效率。 解决方案:使用思通数科的ASR平台,公司可以实现多话者对话转录和自动病历生…

MySql中的事务、MySql事务详解、MySql隔离级别

文章目录 一、什么是事务?二、事务四大特性ACID2.1、原子性(Atomicity)2.2、一致性(Consistency)2.3、隔离性(Isolation)2.4、持久性(Durability) 三、事务操作/事务的用…

MySQL-27.多表查询-案例

一.数据准备 -- 分类表 create table category (id int unsigned primary key auto_increment comment 主键ID,name varchar(20) not null unique comment 分类名称,type tinyint unsigned not null comment 类型 1 菜品分类 2 套餐分类,sort …

【VUE】Vue2中extends方法

允许声明扩展另一个组件 (可以是一个简单的选项对象或构造函数),和mixins有点类似。 在 Vue.js 2.x 中,extends API 可以用于混合一个对象到组件的选项中。它可以很方便地将多个对象混合成一个对象,并传递给 Vue.js 组件。语法如下&#xff1…

今日所学1024和1026

1 简便方法: 在文件夹里找到dll的文件路径,然后在系统变量里添加对应路径, 就不会报错了。 2关于报Qt插件的错,解决办法如下 1026Github的2FA 超级详细的github双重验证密码忘记或者获取不了了怎么办&github recovery code忘记怎么办…

计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议

文章目录 IPv4地址与MAC地址的封装位置IPv4地址与MAC地址的关系地址解析协议ARP工作原理ARP高速缓存表 IPv4地址与MAC地址的封装位置 在数据传输过程中,每一层都会添加自己的头部信息,最终形成完整的数据包。具体来说: 应用层生成的应用程序…

洛谷 P3130 [USACO15DEC] Counting Haybale P

原题链接 题目本质:线段树 感觉我对线段树稍有敏感,线段树一眼就看出来了,思路出来得也快,这道题也并不是很难。 解题思路: 这道题能看出来是线段树就基本成功一半了,区间修改区间查询,就基…

「二叉树进阶题解:构建、遍历与结构转化全解析」

文章目录 根据二叉树创建字符串思路代码 二叉树的层序遍历思路代码 二叉树的最近公共祖先思路代码 二叉搜索树与双向链表思路代码 从前序与中序遍历序列构造二叉树思路代码 总结 根据二叉树创建字符串 题目: 样例: 可以看见,唯一特殊的就…

深度学习-循环神经网络-LSTM对序列数据进行预测

项目简介: 使用LSTM模型, 对文本数据进行预测, 每次截取字符20, 对第二十一个字符进行预测, LSTM层: units100, activationrelu Dense层: units输入的文本中的字符种类, 比如我使用的文本有644个不同的字符, 那么units64 激活函数: 因为是多分类, 使用softmax 因为这是最…