LLM - 大模型 ScallingLaws 的 C=6ND 公式推导 教程(1)
欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/145185794
Scaling Laws (缩放法则) 是大模型领域中,用于描述 模型性能(Loss) 与 模型规模N、数据量D、计算资源C 之间关系的经验规律,揭示在大模型中,随着模型参数数量、数据集大小和计算资源的增加,模型性能的变化模式,指导更高效地分配资源,优化模型训练过程,实现更好的性能。这些规律不仅有助于预测不同规模模型的表现,还能为模型设计和训练提供理论依据,是推动大模型发展和应用的重要理论基础。
- Paper: Scaling Laws for Neural Language Models
- 其他参考:计算 大语言模型(多模态) 的参数量
系列文章:
- 大模型 ScallingLaws 的 C=6ND 公式推导
- 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数
- 大模型 ScallingLaws 的迁移学习与混合训练
对于 Decoder-Only 模型,计算量 C C C (Flops)、模型参数量 N,数据大小 D D D (Tokens),三者近似满足 C ≈ 6 N D C \approx 6ND C≈6ND 。
1. 模型参数量 (N
)
假设 Decoder
堆叠层数是 l l l,Attention
隐藏层维度是 d d d,FeedForward
维度是 4 d 4d 4d,其中,忽略 Embedding、Norm 和 Bias。
Transformer
的每 1 层包括 Self-Attention
和 MLP
等 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} 2∗4∗d2=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} A∈Rm×n,B∈Rn×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 n−1 次加法,即 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} X∈Rb×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} X′WO,计算过程是 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 s≪6d,那么:
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
相关文章:

LLM - 大模型 ScallingLaws 的 C=6ND 公式推导 教程(1)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145185794 Scaling Laws (缩放法则) 是大模型领域中,用于描述 模型性能(Loss) 与 模型规模N、数据量D、计算资源C 之间关系的经验规律…...

Leetcode 983. 最低票价 动态规划
原题链接:Leetcode 983. 最低票价 class Solution { public:int mincostTickets(vector<int>& days, vector<int>& costs) {int n days.size();int last days[n - 1];int dp[last 1];map<int, int> mp;for (auto x : days)mp[x] 1;dp…...
Kafka——两种集群搭建详解 k8s
1、简介 Kafka是一个能够支持高并发以及流式消息处理的消息中间件,并且Kafka天生就是支持集群的,今天就主要来介绍一下如何搭建Kafka集群。 Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式(即无Zookeeper)模式这两种模式搭…...
springboot使用websocket
文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述 1、简介 简介略,附上官方文档,spring5和spring6的官方文档内容大致是一样的: https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framewo…...

Redis的安装和配置、基本命令
一、实验目的 本实验旨在帮助学生熟悉Redis的安装、配置和基本使用,包括启动Redis服务、使用命令行客户端进行操作、配置Redis、进行多数据库操作以及掌握键值相关和服务器相关的命令。 二、实验环境准备 1. JAVA环境准备:确保Java Development Kit …...

Rnote:Star 8.6k,github上的宝藏项目,手绘与手写画图笔记,用它画图做笔记超丝滑,值得尝试!
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Rnote是一款开源的基于矢量的绘图应用,专为学生、教师以及绘图板用户设计。它支持草图绘制、手写笔记以及对文档和图片进行注释。Rnote提供…...

python如何解析word文件格式(.docx)
python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…...

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了
「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了,欢迎广大GISer朋友关注,一起探索GIS奥秘,分享GIS价值! 本专栏以实战案例的形式,深入浅出地介绍了GRASS GIS的基本使用方法,用一个个实例讲…...

使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址
从http切换至https 许多不同ip的图片地址需要统一进行代理 部分图片地址是重定向地址 nginx配置 主站地址:https://192.168.123.100/ 主站nginx配置 server {listen 443 ssl;server_name localhost;#ssl证书ssl_certificate ../ssl/ca.crt; #私钥文件ssl_ce…...

零基础构建最简单的 Tauri2.0 桌面项目 Star 88.4k!!!
目录 预安装环境 安装nodejs windows下安装 linux下安装 nodejs常遇问题 安装C环境 介绍 下载 安装 安装Rust语言 Tauri官网 安装 vscode 安装 rust 插件 安装 Tauri 插件 运行成果 预安装环境 安装nodejs windows下安装 NodeJs_安装及下载_哔哩哔哩_bilibi…...

智能科技与共情能力加持,哈曼重新定义驾乘体验
2025年1月6日,拉斯维加斯,2025年国际消费电子展——想象一下,当您步入一辆汽车,它不仅能响应您的指令,更能理解您的需求、适应您的偏好,并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…...

猫贫血吃什么能快速补血?
各位铲屎官们,看到自家猫咪无精打采、小脸苍白,是不是特别心疼?贫血可是猫咪健康的大敌,今天就来给大家支支招,哪些食物和方法能让猫咪快速补血,恢复活力! 一、红肉及内脏类 红肉是补血的“主力…...

微服务拆分
微服务拆分 接下来,我们就一起将黑马商城这个单体项目拆分为微服务项目,并解决其中出现的各种问题。 熟悉黑马商城 首先,我们需要熟悉黑马商城项目的基本结构: 大家可以直接启动该项目,测试效果。不过,…...
Android SystemUI——车载CarSystemUI加载(八)
Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…...

2025年编程语言热度分析:Python领跑,Go与Rust崛起
TIOBE Index(TIOBE 编程语言指数)是一个衡量编程语言流行度的排名系统。它通过分析多种搜索引擎、在线编程社区、技术论坛、问答网站(如 Google、Bing、Yahoo、Wikipedia、Stack Overflow)等的搜索和讨论数据,评估不同…...

前缀和 (一维 二维)
前缀和作用: 快速求出原数组中一段数组的和 思路 1.预处理前缀和数组 2.用公式求区间和 公式: 二维前缀和: s [ i ] [ j ] s[ i - 1 ] [ j ] s[ i ] [ j - 1 ] - s [ i - 1 ] [ j - 1]; 题型 一维 二维 题解 一维 #include <iost…...
精选算法合集
一、BFS相关 1.1 最小步骤 给定一个数组,从第一个开始,正好走到数组最后,所使用的最少步骤数。要求: 第一步从第一元素开始,第一步小于<len/2(len为数组的长度)。从第二步开始,…...

HackMyVM-Klim靶机的测试报告
目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 CVE-2008-0166 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.159.127) 靶 机:debian(192.168.159.27) 注意事…...
C++内存分布
小试牛刀: int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(sizeof(int)…...
mysql主从复制sql进程中断,报错Tablespace is missing for table ……
一 解决办法 关键执行1.2步,1.1/1.3结合实际环境操作。 1.1 如果从库只读开启了,要先关闭只读 show variables like %read_only%; set global super_read_onlyoff; set global read_onlyoff; 1.2 discart/import tablespace ALTER TABLE 表名 DISC…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...