LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/145188660

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


Scaling Laws (缩放法则) 是大模型领域中,用于描述 模型性能(Loss) 与 模型规模N、数据量D、计算资源C 之间关系的经验规律,揭示在大模型中,随着模型参数数量、数据集大小和计算资源的增加,模型性能的变化模式,指导更高效地分配资源,优化模型训练过程,实现更好的性能。这些规律不仅有助于预测不同规模模型的表现,还能为模型设计和训练提供理论依据,是推动大模型发展和应用的重要理论基础。

论文:ESM3 - Simulating 500 million years of evolution with a language model

在 蛋白质大语言模型(Protein Language Model, PLM) 方向,使用数据集约 200B Tokens (AA氨基酸),基于 C=6ND,以及 Loss 与 模型规模(N) 的 IsoFLOPs 曲线,确定 FLOPs 与 模型规模(N)、FLOPs 与 数据量(D) 之间的关系,构建 ScalingLaws 公式,验证不同目标 CLM(Causal Language Model) 与 MLM(Masked Language Model) 的系数差异,即给定计算量C的情况下,确定最优模型规模N、最优数据量D。其中,计算出的公式:

C C L M = 6.45 × N × D C M L M = 5.98 × N × D \begin{align} C_{CLM} &= 6.45 \times N \times D \\ C_{MLM} &= 5.98 \times N \times D \end{align} CCLMCMLM=6.45×N×D=5.98×N×D

参考:大模型 ScallingLaws 的 C=6ND 公式推导

1. 数据集(D)

数据扩展(Scaling up data),构建蛋白质序列的数据集 200B Tokens ,即 UniMeta200B,其中序列 939M (即9亿),Tokens 是194B (即1940亿),即平均序列长度 215,用于验证 Scaling Laws 以及预训练。

  • UR50/S:Uniref50 默认数据集,以最大相似度 50% 聚类。
  • Uniref90/50:Uniref90 默认数据集,以最大相似度 90% 聚类,去除 Uniref50 数据。
  • ColabFoldDB: 宏基因组数据源,以最大相似度 30% 聚类,c 表示 cluster,聚类中心,m 表示 member,聚类成员。

即:

Data

参考:GitHub - Availability of UR50/S, UR50/D also UR100/S and UR100/D

UR50/S 是从 Uniref 下载的 UR50 数据集。UR50/D 对于 UR50/S 中的每个聚类进行采样,然后在每个训练迭代中,对聚类中的每个序列进行采样,可以从聚类成员文件中,创建。因此,UR50/D 的数据量大于 UR50/S。

通过实验可知,证明数据量对于不同模型参数量的影响:

  • 使用 UR50/S 数据集(即 54M Seq., 5.2B Tokens) 与 3B 模型, 即小数据和大模型,在 MLM 模型导致严重的过拟合。
  • 其余均表现出,模型越大,数据越多,性能(Loss 和 PPL) 越好。

Data

2. Scaling Law (MLM & CLM)

标准的 Scaling Law 公式,其中 C C C 是计算量(FLOPs), N N N 是模型尺寸, D D D 是数据量(Tokens 数量),即:
C = 6 × N × D C=6 \times N \times D C=6×N×D

实验条件:

  • C: FLOPs 计算量从 1 × 1 0 18 ∼ 1 × 1 0 21 1 \times 10^{18} \sim 1 \times 10^{21} 1×10181×1021,累计 7 个计数,间隔大约 3 倍;
  • N: 模型参数量,累计使用 39 个模型 ( 4 M ∼ 10.7 B 4M \sim 10.7B 4M10.7B);
  • D: 数据集,使用之前构建的 200B Tokens 蛋白质序列数据集。

数据量预估 D = C 6 ∗ N D = \frac{C}{6*N} D=6NC,例如,在 计算量是 1 × 1 0 21 1 \times 10^{21} 1×1021 下:

  • 1.2B 的模型 (MLM的最优模型),计算量是 1 × 1 0 21 1 \times 10^{21} 1×1021,数据量是 D = 1 × 1 0 21 6 × 1.2 × 1 0 9 = 1.388 × 1 0 11 = 133.8 B D=\frac{1 \times 10^{21}}{6 \times 1.2 \times 10^{9}}=1.388 \times 10^{11}=133.8B D=6×1.2×1091×1021=1.388×1011=133.8B
  • 1.7B 的模型 (CLM的最优模型),计算量是 1 × 1 0 21 1 \times 10^{21} 1×1021,数据量是 D = 1 × 1 0 21 6 × 1.7 × 1 0 9 = 0.9803 × 1 0 11 = 98.03 B D=\frac{1 \times 10^{21}}{6 \times 1.7 \times 10^{9}}=0.9803 \times 10^{11}=98.03B D=6×1.7×1091×1021=0.9803×1011=98.03B

训练过程,确保模型经过完整的余弦学习率衰减周期,通过 最小二乘法(least_squares) 拟合得到模型参数。

IsoLoss 在探索不同的模型参数和数据规模组合时,发现一些组合下,最终损失的差异非常小,即被定义为 IsoLoss (Isometric Loss) 条件,即等距损失,因为在训练效果上是相近的。参考:Demystify Transformers: A Guide to Scaling Laws

IsoFLOPs(等距计算量) 曲线图中,模型尺寸(Model Size) 最大的点 是 7.2 B = 7.2 × 1 0 9 7.2B=7.2 \times 10^9 7.2B=7.2×109,黄线最低点是 1.2 B = 1.2 × 1 0 9 1.2B=1.2 \times 10^9 1.2B=1.2×109,黄线的计算量是 1 × 1 0 21 1 \times 10^{21} 1×1021,参考:

IsoFLOPs

2.1 Scaling Laws for MLM and CLM

通过 IsoFLOPs,拟合模型参数量 N N N,与数据量 D D D,与计算量 C C C 之间的曲线:

N = a × C α D = b × C β \begin{align} N &= a \times C^{\alpha} \\ D &= b \times C^{\beta} \\ \end{align} ND=a×Cα=b×Cβ

通过 IsoFLOPs,计算 CLM 与 MLM 的 Scaling Laws 参数:

Para

使用 Latex 计算数值,可以使用 SymboLab 工具

例如:

CLM 模型在 1 × 1 0 21 1 \times 10^{21} 1×1021 计算量下的 最优参数量(N)1.73B,与实验近似,参考:

N = ( 1.26 × 1 0 − 3 ) × C 0.578 N = 1.26 × 1 0 − 3 × ( 1 × 1 0 21 ) 0.578 = 1.26 × 1 0 − 3 × 1 0 12.138 = 1.26 × 1 0 9.138 = 1.7313 × 1 0 9 ≈ 1.73 B \begin{align} N &= (1.26 \times 10^{-3}) \times C^{0.578} \\ N &= 1.26 \times 10^{-3} \times (1 \times 10^{21})^{0.578} \\ &= 1.26 \times 10^{-3} \times 10^{12.138} \\ &= 1.26 \times10^{9.138} \\ &= 1.7313 \times 10^{9} \\ &\approx 1.73B \\ \end{align} NN=(1.26×103)×C0.578=1.26×103×(1×1021)0.578=1.26×103×1012.138=1.26×109.138=1.7313×1091.73B

同时,反推 C 的公式:

C = ( N 1.26 ∗ 1 0 − 3 ) 1 0.578 = ( N 1.26 ∗ 1 0 − 3 ) 1.73 C = ( 1.73 ∗ 1 0 9 1.26 ∗ 1 0 − 3 ) 1.73 = ( 1.37 ∗ 1 0 12 ) 1.73 = 1 ∗ 1 0 21 \begin{align} C &= (\frac{N}{1.26*10^{-3}})^\frac{1}{0.578} = (\frac{N}{1.26*10^{-3}})^{1.73} \\ C &= (\frac{1.73 * 10^{9}}{1.26*10^{-3}})^{1.73} \\ &= (1.37*10^{12})^{1.73} \\ &= 1*10^{21} \end{align} CC=(1.26103N)0.5781=(1.26103N)1.73=(1.261031.73109)1.73=(1.371012)1.73=11021

CLM 模型在 1 × 1 0 21 1 \times 10^{21} 1×1021 计算量下的 最优数据量(D)89.5B,与实验近似,参考:

D = ( 1.23 × 1 0 2 ) × C 0.422 D = 1.23 × 1 0 2 × ( 1 × 1 0 21 ) 0.422 = 89.5 × 1 0 9 ≈ 89.5 B \begin{align} D &= (1.23 \times 10^{2}) \times C^{0.422} \\ D &= 1.23 \times 10^{2} \times (1 \times 10^{21})^{0.422} \\ &= 89.5 \times 10^9 \\ &\approx 89.5B \end{align} DD=(1.23×102)×C0.422=1.23×102×(1×1021)0.422=89.5×10989.5B

C = 1 × 1 0 21 C=1 \times 10^{21} C=1×1021 时,在蛋白质生成领域 CLM 的 Scaling Laws,满足:

C = α × N × D α = C N × D = 1 × 1 0 21 1.7313 × 1 0 9 × 89.5 × 1 0 9 = 6.45363 C = 6.45 × N × D \begin{align} C &= \alpha \times N \times D \\ \alpha &= \frac{C}{N \times D} \\ &= \frac{1 \times 10^{21}}{1.7313 \times10^{9} \times 89.5 \times 10^9} \\ &= 6.45363 \\ C &= 6.45 \times N \times D \end{align} CαC=α×N×D=N×DC=1.7313×109×89.5×1091×1021=6.45363=6.45×N×D

同理,推理 MLM 模型,在 1 × 1 0 21 1 \times 10^{21} 1×1021 计算量的 Scaling Laws:

N = ( 6.19 × 1 0 − 8 ) × C 0.776 = ( 6.19 × 1 0 − 8 ) × ( 1 × 1 0 21 ) 0.776 = 1.224 × 1 0 9 D = ( 2.02 × 1 0 6 ) × C 0.230 = ( 2.02 × 1 0 6 ) × ( 1 × 1 0 21 ) 0.230 = 136.57 × 1 0 9 α = C N × D = 1 × 1 0 21 1.224 × 1 0 9 × 136.57 × 1 0 9 = 5.98 C = 5.98 × N × D \begin{align} N &= (6.19 \times 10^{-8}) \times C^{0.776} = (6.19 \times 10^{-8}) \times (1 \times 10^{21})^{0.776} = 1.224 \times 10^9 \\ D &= (2.02 \times 10^{6}) \times C^{0.230} = (2.02 \times 10^{6}) \times (1 \times 10^{21})^{0.230} = 136.57 \times 10^9 \\ \alpha &= \frac{C}{N \times D} = \frac{1 \times 10^{21}}{1.224 \times 10^9 \times 136.57 \times 10^9} = 5.98 \\ C &= 5.98 \times N \times D \end{align} NDαC=(6.19×108)×C0.776=(6.19×108)×(1×1021)0.776=1.224×109=(2.02×106)×C0.230=(2.02×106)×(1×1021)0.230=136.57×109=N×DC=1.224×109×136.57×1091×1021=5.98=5.98×N×D

如果 计算量C 预算增加 10 倍:

  • 对于 CLM 模型的大小增加 4 倍,训练数据增加 3 倍,近似等比例缩放。
  • 对于 MLM 模型的大小增加 6 倍,训练数据增加 1.7 倍。

通过 IsoLoss,构建损失值 Loss,与 C 、 N 、 D C、N、D CND 之间的 Scaling 关系:

L ( x ) = β x × x α x L(x) = \beta_{x} \times x^{\alpha_{x}} L(x)=βx×xαx

进而推导,数据量D 与 参数量N 的关联公式:

D ( N ) = ( β N β D ) 1 α D × N α N α D D(N)=(\frac{\beta_{N}}{\beta_{D}})^{\frac{1}{\alpha_{D}}} \times N^{\frac{\alpha_{N}}{\alpha_{D}}} D(N)=(βDβN)αD1×NαDαN

参数:

Para

例如:1.7B 模型的参数量是 76.19B,注意通过 IsoLoss 与 IsoFLOPs 计算的公式,略有差别,即:

D ( N ) = ( 4.835 7.904 ) 1 − 0.051 × ( 1.7 × 1 0 9 ) − 0.037 − 0.051 = 76.19 B D(N)=(\frac{4.835}{7.904})^{\frac{1}{-0.051}} \times (1.7 \times 10^{9})^{\frac{-0.037}{-0.051}}=76.19B D(N)=(7.9044.835)0.0511×(1.7×109)0.0510.037=76.19B

2.2 Scaling Laws 训练 2 个模型

在相同模型参数下,需要 同时(Simultaneously) 训练 CLM 与 MLM 两个模型,需要总投入的计算资源 C 确定,提高训练效率和效果,避免计算资源的不合理分配或浪费。

N ( C M L M ) = N ( C C L M ) N(C_{MLM})=N(C_{CLM}) N(CMLM)=N(CCLM) 的预估计算量 C M L M C_{MLM} CMLM C C L M C_{CLM} CCLM r ( N ) r(N) r(N) 表示训练令牌的分配比例,即:

C s u m ( N ) = C M L M ( N ) + C C L M ( N ) = ( N 6.19 × 1 0 − 8 ) 1 0.776 + ( N 1.26 × 1 0 − 3 ) 1 0.578 r ( N ) = D M L M ( N ) D C L M ( N ) C_{sum }(N)=C_{MLM}(N)+C_{CLM}(N)=(\frac{N}{6.19 × 10^{-8}})^{\frac{1}{0.776}}+(\frac{N}{1.26 × 10^{-3}})^{\frac{1}{0.578}} \\ r(N) = \frac{D_{MLM}(N)}{D_{CLM}(N)} Csum(N)=CMLM(N)+CCLM(N)=(6.19×108N)0.7761+(1.26×103N)0.5781r(N)=DCLM(N)DMLM(N)

求解公式得到:

N ( C s u m ) = 1.497 × 1 0 − 6 × C s u m 0.703 r ( N ) = 8.449 × 1 0 3 × N − 0.392 N(C_{sum})=1.497 \times 10^{-6} \times C_{sum}^{0.703} \\ r(N) = 8.449 \times 10^{3} \times N^{-0.392} N(Csum)=1.497×106×Csum0.703r(N)=8.449×103×N0.392

在模型 参数量N 是10B 时,数据量的比例是1:1。即

r ( 10 B ) = 8.449 × 1 0 3 × ( 10 × 1 0 9 ) − 0.392 = 1 r(10B)=8.449 \times 10^{3} \times (10 \times 10^9)^{-0.392}=1 r(10B)=8.449×103×(10×109)0.392=1

例如:模型大小 1.7B 需要的计算量,即:

C s u m ( N ) = ( 1.7 × 1 0 9 6.19 × 1 0 − 8 ) 1 0.776 + ( 1.7 × 1 0 9 1.26 × 1 0 − 3 ) 1 0.578 = 2.496 × 1 0 21 C_{sum}(N)=(\frac{1.7 \times 10^9}{6.19 × 10^{-8}})^{\frac{1}{0.776}}+(\frac{1.7 \times 10^9}{1.26 × 10^{-3}})^{\frac{1}{0.578}}=2.496 \times 10^{21} Csum(N)=(6.19×1081.7×109)0.7761+(1.26×1031.7×109)0.5781=2.496×1021

例如:计算量C是 2.5 × 1 0 21 2.5 \times 10^{21} 2.5×1021,最优模型规模是 1.65 B 1.65B 1.65B,最优数据量是 252 B 252B 252B,即:

N = 1.497 × 1 0 − 6 × ( 2.5 × 1 0 21 ) 0.703 = 1.652 × 1 0 9 ≈ 1.652 B r = 8.449 × 1 0 3 × ( 1.652 × 1 0 9 ) − 0.392 = 2.057 D ≈ C 6 × N = 2.5 × 1 0 21 6 × 1.652 × 1 0 9 = 252 × 1 0 9 ≈ 252 B D M L M = 252 × 2 3 × 1 0 9 = 168 B D C L M = 252 × 1 3 × 1 0 9 = 84 B \begin{align} N &= 1.497 \times 10^{-6} \times (2.5 \times 10^{21})^{0.703} = 1.652 \times 10^{9} \approx 1.652B \\ r &= 8.449 \times 10^{3} \times (1.652 \times 10^{9})^{-0.392} = 2.057 \\ D &\approx \frac{C}{6 \times N} = \frac{2.5 \times 10^{21}}{6 \times 1.652 \times 10^{9}} = 252 \times 10^{9} \approx 252B \\ D_{MLM} &= 252 \times \frac{2}{3} \times 10^{9} = 168B \\ D_{CLM} &= 252 \times \frac{1}{3} \times 10^{9} = 84B \end{align} NrDDMLMDCLM=1.497×106×(2.5×1021)0.703=1.652×1091.652B=8.449×103×(1.652×109)0.392=2.0576×NC=6×1.652×1092.5×1021=252×109252B=252×32×109=168B=252×31×109=84B

C 与 N 的相关性,参考:

sum

其他,Decoder 的不同模型参数,用于计算 Scaling Laws,即:

Params

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

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

相关文章

杰盛微 IRS2336STRPBF 700V带使能和故障报告的三相反逻辑驱动芯片 SOP28封装

IRS2336STRPBF 700V带使能和故障报告的三相反逻辑驱动芯片 IRS2336是 N型高压、高速功率 MOSFET/IGBT高低侧三相栅极驱动芯片,包含三路独立的半桥驱动电路。内部集成了欠压保护和过流保护功能,出现异常时立即关断六通道输出。提供外部使能控制可同时关断…

深入理解第三范式(3NF):数据库设计中的重要性与实践

title: 深入理解第三范式(3NF):数据库设计中的重要性与实践 date: 2025/1/17 updated: 2025/1/17 author: cmdragon excerpt: 在数据库设计中,规范化是确保数据完整性、减少冗余和提高查询效率的关键过程。第三范式(3NF)作为关系数据库设计的高级规范,建立在前两范式…

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…

RK3576 Android14 状态栏和导航栏增加显示控制功能

问题背景: 因为RK3576 Android14用户需要手动控制状态栏和导航栏显示隐藏控制,包括对锁屏后下拉状态栏的屏蔽,在设置功能里增加此功能的控制,故参考一些博客完成此功能,以下是具体代码路径的修改内容。 解决方案&…

C#高级:通过 Assembly 类加载 DLL 和直接引用DLL的方法大全

一、主项目不添加引用 (主项目不添加引用,而是通过路径获取指定dll) 1.打印类的属性名称 namespace ReflectionDemo {class Program{static void Main(string[] args){// 指定【编译输出】的项目类库dll(启动项目编译输出目录下…

【k8s面试题2025】1、练气期

主要通过呼吸吐纳等方法,将外界的天地灵气吸入体内,初步改造身体,使身体素质远超常人。 文章目录 docker 和虚拟机的不同Kubernetes 和 docker 的关系Kube-proxy IPVS 和 iptables 的异同蓝绿发布Kubernetes中常见的数据持久化方式关于 Docke…

音视频入门基础:RTP专题(4)——FFmpeg源码中,判断某文件是否为SDP文件的实现

一、引言 执行《音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流》中的“媒体文件转推RTP的FFmpeg命令”会生成一个SDP文件,该文件内容如下: v0 o- 0 0 IN IP4 127.0.0.1 sNo Name t0 0 atool:libavformat 61…

【大数据2025】Hadoop 万字讲解

文章目录 一、大数据通识大数据诞生背景与基本概念大数据技术定义与特征大数据生态架构概述数据存储数据计算与易用性框架分布式协调服务和任务调度组件数仓架构流处理架构 二、HDFSHDFS 原理总结一、系统架构二、存储机制三、数据写入流程四、心跳机制与集群管理 安全模式&…

电脑换固态硬盘

参考: https://baijiahao.baidu.com/s?id1724377623311611247 一、根据尺寸和缺口可以分为以下几种: 1、M.2 NVME协议的固态 大部分笔记本是22x42MM和22x80MM nvme固态。 在京东直接搜: M.2 2242 M.2 2280 2、msata接口固态 3、NGFF M.…

回顾2024年在CSDN的成长

文章目录 我与CSDN的初次邂逅初学阶段的阅读CSDN:编程新手的避风港初学者的福音:细致入微的知识讲解考试复习神器:技术总结的“救命指南”曾经的自己:为何迟迟不迈出写博客的第一步兴趣萌芽:从“读”到“想写”的初体验…

抖音ip属地不准是什么原因?可以改吗

在数字化时代,社交媒体平台如抖音已成为人们日常生活的重要组成部分。随着各大平台对用户隐私和数据安全的日益重视,IP属地的显示功能应运而生。然而,不少抖音用户在使用过程中发现,显示的IP属地与实际位置存在偏差,这…

Win11 安装与配置 Java环境 JDK(以JDK11为例)

0,下载JDK 访问JDK官网:Java Downloads | Oracle 选择对应版本进行下载,目前21和23都是可以直接下载的 但是如果需要下载旧版本,往下拉找到要下载的版本,不过这时候下载就需要登录账号了,注册一个就成 2&…

LabVIEW串口通信调试与数据接收问题

在使用LabVIEW进行串口通信时,常常会遇到无法接收数据的情况。这可能与串口设置、连接、设备响应等多方面因素相关。本文将详细讨论如何使用LabVIEW进行串口通信,并提供常见问题的排查与解决方法,帮助用户更高效地进行数据接收调试。通过调整…

概率扩散去噪模型DDPM

文章目录 摘要abstract高斯噪声扩散模型正向过程逆向过程 论文阅读论文创新点解决的问题 总结参考文献 摘要 本周主要学习了高斯噪声在扩散模型中的应用及相关算法实现。扩散模型受到自然现象的启发,通过在图像中引入高斯噪声,模拟出扩散效果&#xff0…

Python操作Excel——openpyxl使用笔记(3)

3 单元格基本操作 3.1 访问单元格和读写其内容 在前面的例子中,已经简单演示过了向单元格中写入和读取数据。这里进一步提供访问单元格的一些方法。和前面一样,使用工作表的索引方式,可以快速定位一个单元格: import openpyxl w…

2025.1.18机器学习笔记:PINN文献精读

第三十周周报 一、文献阅读题目信息摘要Abstract创新点物理背景网络框架实验实验一:直道稳定流条件实验二:环状网络中的非稳定流条件 结论缺点及展望 二、代码实践总结 一、文献阅读 题目信息 题目:《Enhanced physics-informed neural net…

CSS 的基础知识及应用

前言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现,使页面不仅实现功能,还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Linux shell zip 命令实现不切换当前终端的工作目录打包另一个路径下的文件和文件夹

如图&#xff0c;我想在当前目录 ~/Bypasser 下打包 src 文件夹&#xff0c;使得生成的 zip 压缩包中具有 src 文件夹下的所有文件夹、所有文件夹中的所有子项目、所有文件&#xff0c;保留层次结构但压缩包中最外面不包含 src 这一层。执行命令时&#xff0c;不要改变当前终端…

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一&#xff0c;基本概念 二&#xff0c;connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三&#xff0c;自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四&#xff0c;信号和槽的意义 五&#xff0c;信号和槽断开连接 六&…