LLM - 大模型 ScallingLaws 的 C=6ND 公式推导 教程(1)

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


Scaling Laws

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

  • Paper: Scaling Laws for Neural Language Models
  • 其他参考:计算 大语言模型(多模态) 的参数量

系列文章:

  1. 大模型 ScallingLaws 的 C=6ND 公式推导
  2. 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数
  3. 大模型 ScallingLaws 的迁移学习与混合训练

对于 Decoder-Only 模型,计算量 C C C (Flops)、模型参数量 N,数据大小 D D D (Tokens),三者近似满足 C ≈ 6 N D C \approx 6ND C6ND

1. 模型参数量 (N)

假设 Decoder 堆叠层数是 l l lAttention 隐藏层维度是 d d dFeedForward 维度是 4 d 4d 4d,其中,忽略 Embedding、Norm 和 Bias。

Transformer 的每 1 层包括 Self-AttentionMLP 等 2 个部分:

  • Self-Attention 的 参数量,包括 W Q , W K , W V , W O W_{Q},W_{K},W_{V},W_{O} WQ,WK,WV,WO 等 4个部分,维度均是 R d × d \mathbb{R}^{d \times d} Rd×d,整体参数量是 4 d 2 4d^2 4d2 (暂时忽略 MQA)
  • MLP 的参数量,只包括 W u p , W d o w n W_{up},W_{down} Wup,Wdown,维度均是 R d × 4 d \mathbb{R}^{d \times 4d} Rd×4d,整体参数量 2 ∗ 4 ∗ d 2 = 8 d 2 2*4*d^{2}=8d^{2} 24d2=8d2,(暂时忽略 W g a t e W_{gate} Wgate)
  • 全部层数 l l l 参数量,即 12 l d 2 12ld^{2} 12ld2

2. 模型计算量 (C)

模型的前向推理的计算量:

计算量的单位是 FLOPs (Floating Point Operations),对于矩阵 A ∈ R m × n , B ∈ R n × p A \in \mathbb{R}^{m \times n},B \in \mathbb{R}^{n \times p} ARm×n,BRn×p A B AB AB相乘的计算量为 2 m n p 2mnp 2mnp,计算每个元素 c i , j c_{i,j} ci,j 包括 1 次加法 1 次乘法,即每个点积运算都有 n n n 次 乘法和 n − 1 n-1 n1 次加法,即 2 × m n p 2 \times mnp 2×mnp

模型的反向推理的计算量是前向推理的 2 倍,即:

前向只需要结果往后传递,反向除了需要梯度往前传递,还需要计算当前参数 W W W 的梯度,更新当前的参数 W W W,因此计算量是 2 倍。

Decoder 的输入是 X ∈ R b × s × d X \in \mathbb{R}^{b \times s \times d} XRb×s×d,其中 b b b 是 batch size, s s s 是序列长度, d d d 是模型维度。

其中 Self-Attention 的 计算量:

  • 输入层计算: Q = X W Q , K = X W K , V = X W V Q=XW_{Q},K=XW_{K},V=XW_{V} Q=XWQ,K=XWK,V=XWV,即 3 × b × ( 2 × s × d × d ) = 6 b s d 2 3 \times b \times (2 \times s \times d \times d) = 6bsd^{2} 3×b×(2×s×d×d)=6bsd2
  • Attention 计算 Score: A = Q K ⊤ A=QK^{\top} A=QK ,使用 bmm (批次矩阵乘法),batch size 不变,计算过程是 b × R s × d × R d × s = b × R s × s b \times \mathbb{R}^{s \times d} \times \mathbb{R}^{d \times s} = b \times \mathbb{R}^{s \times s} b×Rs×d×Rd×s=b×Rs×s,计算量即 b × ( 2 × s × d × s ) = 2 b s 2 d b \times (2 \times s \times d \times s) = 2bs^{2}d b×(2×s×d×s)=2bs2d
  • Score 与 V 计算: X ′ = A V X^{'}=AV X=AV,计算过程是 b × R s × s × R s × d = b × R s × d b \times \mathbb{R}^{s \times s} \times \mathbb{R}^{s \times d} = b \times \mathbb{R}^{s \times d} b×Rs×s×Rs×d=b×Rs×d,计算量即 b × ( 2 × s × s × d ) = 2 b s 2 d b \times (2 \times s \times s \times d)=2bs^{2}d b×(2×s×s×d)=2bs2d
  • 输出层计算: X ′ W O X^{'}W_{O} XWO,计算过程是 b × R s × d × R d × d = b × R s × d b \times \mathbb{R}^{s \times d} \times \mathbb{R}^{d \times d} = b \times \mathbb{R}^{s \times d} b×Rs×d×Rd×d=b×Rs×d,计算量即 b × ( 2 × s × d × d ) = 2 b s d 2 b \times (2 \times s \times d \times d)=2bsd^{2} b×(2×s×d×d)=2bsd2
  • 合计: C A t t e n t i o n = 8 b s d 2 + 4 b s 2 d = b s d ( 8 d + 4 s ) C_{Attention}=8bsd^{2}+4bs^{2}d=bsd(8d+4s) CAttention=8bsd2+4bs2d=bsd(8d+4s)

其中 MLP 的 计算量,升维和降维的计算量相同:

  • 升维 X W u p XW_{up} XWup,计算过程是 b × R s × d × R d × 4 d = b × R s × 4 d b \times \mathbb{R}^{s \times d} \times \mathbb{R}^{d \times 4d} = b \times \mathbb{R}^{s \times 4d} b×Rs×d×Rd×4d=b×Rs×4d,计算量 b × ( 2 × s × d × 4 d ) = 8 b s d 2 b \times (2 \times s \times d \times 4d)=8bsd^{2} b×(2×s×d×4d)=8bsd2
  • 同理,降维也是一样。
  • 合计: C M L P = 16 b s d 2 C_{MLP}=16bsd^{2} CMLP=16bsd2

则每层的计算量:

C L a y e r = C A t t e n i o n + C M L P = 24 b s d 2 + 4 b s 2 d = b s d ( 24 d + 4 s ) C f o r w a r d = l b s d ( 24 d + 4 s ) C_{Layer}=C_{Attenion}+C_{MLP}=24bsd^{2}+4bs^{2}d=bsd(24d+4s) \\ C_{forward}=lbsd(24d+4s) CLayer=CAttenion+CMLP=24bsd2+4bs2d=bsd(24d+4s)Cforward=lbsd(24d+4s)

反向传播是正向传播的 2 倍,合计是 3 倍,即:

C = 3 × C f o r w a r d = 72 l b s d 2 + 12 l b s 2 d = 12 l b s d ( 6 d + s ) C= 3 \times C_{forward} = 72lbsd^{2} + 12lbs^{2}d = 12lbsd(6d + s) C=3×Cforward=72lbsd2+12lbs2d=12lbsd(6d+s)

1.3 合计

模型参数量是 N = 12 l d 2 N=12ld^{2} N=12ld2,计算量是 C = l b s d ( 72 d + 12 s ) C=lbsd(72d + 12s) C=lbsd(72d+12s),假设 s ≪ 6 d s \ll 6d s6d,那么:

C = 12 l d 2 × b s × ( 6 + s d ) = 6 × b s × 12 l d 2 × ( 1 + s 6 d ) = 6 × b s × N C = 12ld^{2} \times bs \times (6+\frac{s}{d}) = 6 \times bs \times 12ld^{2} \times (1+\frac{s}{6d}) = 6 \times bs \times N C=12ld2×bs×(6+ds)=6×bs×12ld2×(1+6ds)=6×bs×N

那么每个 Token 的计算量,即 除以 b s bs bs,整体计算量再 乘以 全部数据集(Token) D D D,即:

C = 6 × N × D C=6 \times N \times D C=6×N×D

参考:

  • 知乎 - 为什么反向计算是前向耗时的两倍?
  • GitHub - backprop_FLOPs.py
  • 知乎 - 腾讯算出 MoE 模型的 Scaling Law
  • 知乎 - 解析大模型中的 Scaling Law

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

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

相关文章

数组常见解决方案

数组常见解决方案 1.快慢指针(双指针) 慢指针记录当前位置 快指针寻找下一个符合条件的数 当符合条件时,此数将slow位置的数覆盖,slow指针指向下一个位置. 最后slow的位置就是符合条件的数组的长度. 80. 删除有序数组中的重复项 II - 力扣(LeetCode) …

智能学习平台系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装智能学习平台系统软件来发挥其高效地信息处理的作用&#…

前端项目搭建和基础配置

这个模块主要是介绍从零开始搭建项目的一些操作,包含一些前端常用的配置,这里只是一部分,会在后续的文章中逐步进行补充和完善 一、创建项目 在项目路径下使用以下命令生成前后端项目 npm create vite输入项目名称,框架选择Vue…

RC2在线加密工具

RC2是由著名密码学家Ron Rivest设计的一种传统对称分组加密算法,它可作为DES算法的建议替代算法。RC2是一种分组加密算法,RC2的密钥长度可变,可以从8字节到128字节,安全性选择更加灵活。 开发调试上,有时候需要进行对…

Qt Desiogn生成的ui文件转化为h文件

1.找到这个工具 2.查找到ui文件以及要转化为的h文件的路径。 3.在1中的工具输入uic /xx/xxx.ui -o /xx/xxx.h即可得到结果。

多元线性回归分析

介绍: 回归分析是一种强大的统计方法,用于研究变量之间的关系,特别是一个或多个自变量与一个因变量之间的定量关系。 总结就是研究X和Y之间的相关性的分析 First:相关性: 相关性不代表因果性, Eg:统计数据表明:游泳死亡人数越高,雪糕卖得…

移动端布局 ---- 学习分享

响应式布局实现方法 主流的实现方案有两种: 通过rem \ vw/vh \ 等单位,实现在不同设备上显示相同比例进而实现适配. 响应式布局,通过媒体查询media 实现一套HTML配合多套CSS实现适配. 在学习移动端适配之前,还需要学习移动端适配原理: 移动端适配原理(Viewport) 了解VSCo…

【大数据2025】Hadoop 万字讲解

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

彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构

目录 什么是系统架构 单体架构 介绍 示例图 优点 缺点 集群架构 介绍 示意图 优点 缺点 分布式架构 示意图 优点 缺点 生态扩展 介绍 示意图 优点 缺点 扩展:分布式服务解析 纵切拆服务 全链路追踪能力 循环依赖 全链路日志(En…

Typora + PowerShell 在终端打开文件

最近在用 Hexo 搭我人生中的第一个博客,Hexo 新建帖子的时候需要在终端用命令hexo n,然后再用 Typora 打开,用鼠标感觉很麻烦,因此直接用终端一键启动了。 发现 Typora 的一个 bug🐛,在 YAML 后面写第一个字…

【RAG落地利器】向量数据库Qdrant使用教程

TrustRAG项目地址🌟:https://github.com/gomate-community/TrustRAG 可配置的模块化RAG框架 环境依赖 本教程基于docker安装Qdrant数据库,在此之前请先安装docker. Docker - The easiest way to use Qdrant is to run a pre-built Docker i…

设计模式-单例模式

定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 类图 类型 饿汉式 线程安全,调用效率高,但是不能延迟加载。 public class HungrySingleton {private static final HungrySingleton instancenew HungrySingleton();private …

初学stm32 --- CAN

目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…

OpenHarmony 4.1 SDK11 北向应用开发笔记

目录 声明 1、开启其他应用 2、延时切换页面 3、设置页面切换效果 4、设置背景图片和背景铺满屏幕 5、设置隐藏状态和导航条 6、设置组件大小和对齐方式 7、设置按钮类型改变按钮边框圆角半径 8、常用布局方式 9、布局技巧 声明 本笔记基于OpenHarmony 4.1 SDK11&am…

leetcode707-设计链表

leetcode 707 思路 本题也是用了虚拟头节点来进行解答,这样的好处是,不管是头节点还是中间的节点都可以当成是中间节点来处理,用同一套方法就可以进行处理,而不用考虑太多的边界条件。 下面题目中最主要的实现就是添加操作addA…

高效实现 Markdown 转 PDF 的跨平台指南20250117

高效实现 Markdown 转 PDF 的跨平台指南 引言 Markdown 文件以其轻量化和灵活性受到开发者和技术写作者的青睐,但如何将其转换为易于分享和打印的 PDF 格式,是一个常见需求。本文整合了 macOS、Windows 和 Linux 三大平台的转换方法,并探讨…

汽车网络信息安全-ISO/SAE 21434解析(上)

目录 概述 第四章-概述 1. 研究对象和范围 2. 风险管理 第五章-组织级网络安全管理 1. 网络安全治理(cybersecurity governance) 2. 网络安全文化(cybersecurity culture) 3. 信息共享(Information Sharing) 4. 管理体系…

计算机网络 (50)两类密码体制

前言 计算机网络中的两类密码体制主要包括对称密钥密码体制(也称为私钥密码体制、对称密码体制)和公钥密码体制(也称为非对称密码体制、公开密钥加密技术)。 一、对称密钥密码体制 定义: 对称密钥密码体制是一种传…

PCL K4PCS算法实现点云粗配准【2025最新版】

目录 一、算法原理1、算法概述2、算法流程3、参考文献二、 代码实现1、原始版本2、2024新版三、 结果展示本文由CSDN点云侠原创,原文链接,首发于:2020年4月27日。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 博客长期更新,本文最近一次更新时间为…

消息队列实战指南:三大MQ 与 Kafka 适用场景全解析

前言:在当今数字化时代,分布式系统和大数据处理变得愈发普遍,消息队列作为其中的关键组件,承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品&#xff0…