当前位置: 首页 > news >正文

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

相关文章:

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. 最低票价 动态规划

原题链接&#xff1a;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是一个能够支持高并发以及流式消息处理的消息中间件&#xff0c;并且Kafka天生就是支持集群的&#xff0c;今天就主要来介绍一下如何搭建Kafka集群。 Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式&#xff08;即无Zookeeper&#xff09;模式这两种模式搭…...

springboot使用websocket

文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述 1、简介 简介略&#xff0c;附上官方文档&#xff0c;spring5和spring6的官方文档内容大致是一样的&#xff1a; https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framewo…...

Redis的安装和配置、基本命令

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

Rnote:Star 8.6k,github上的宝藏项目,手绘与手写画图笔记,用它画图做笔记超丝滑,值得尝试!

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Rnote是一款开源的基于矢量的绘图应用&#xff0c;专为学生、教师以及绘图板用户设计。它支持草图绘制、手写笔记以及对文档和图片进行注释。Rnote提供…...

python如何解析word文件格式(.docx)

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

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了

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

使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址

从http切换至https 许多不同ip的图片地址需要统一进行代理 部分图片地址是重定向地址 nginx配置 主站地址&#xff1a;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日&#xff0c;拉斯维加斯&#xff0c;2025年国际消费电子展——想象一下&#xff0c;当您步入一辆汽车&#xff0c;它不仅能响应您的指令&#xff0c;更能理解您的需求、适应您的偏好&#xff0c;并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…...

猫贫血吃什么能快速补血?

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

微服务拆分

微服务拆分 接下来&#xff0c;我们就一起将黑马商城这个单体项目拆分为微服务项目&#xff0c;并解决其中出现的各种问题。 熟悉黑马商城 首先&#xff0c;我们需要熟悉黑马商城项目的基本结构&#xff1a; 大家可以直接启动该项目&#xff0c;测试效果。不过&#xff0c…...

Android SystemUI——车载CarSystemUI加载(八)

Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…...

2025年编程语言热度分析:Python领跑,Go与Rust崛起

TIOBE Index&#xff08;TIOBE 编程语言指数&#xff09;是一个衡量编程语言流行度的排名系统。它通过分析多种搜索引擎、在线编程社区、技术论坛、问答网站&#xff08;如 Google、Bing、Yahoo、Wikipedia、Stack Overflow&#xff09;等的搜索和讨论数据&#xff0c;评估不同…...

前缀和 (一维 二维)

前缀和作用&#xff1a; 快速求出原数组中一段数组的和 思路 1.预处理前缀和数组 2.用公式求区间和 公式&#xff1a; 二维前缀和&#xff1a; s [ i ] [ j ] s[ i - 1 ] [ j ] s[ i ] [ j - 1 ] - s [ i - 1 ] [ j - 1]; 题型 一维 二维 题解 一维 #include <iost…...

精选算法合集

一、BFS相关 1.1 最小步骤 给定一个数组&#xff0c;从第一个开始&#xff0c;正好走到数组最后&#xff0c;所使用的最少步骤数。要求&#xff1a; 第一步从第一元素开始&#xff0c;第一步小于<len/2&#xff08;len为数组的长度&#xff09;。从第二步开始&#xff0c…...

HackMyVM-Klim靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 CVE-2008-0166 四、结论 一、测试环境 1、系统环境 渗透机&#xff1a;kali2021.1(192.168.159.127) 靶 机&#xff1a;debian(192.168.159.27) 注意事…...

C++内存分布

小试牛刀&#xff1a; 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步&#xff0c;1.1/1.3结合实际环境操作。 1.1 如果从库只读开启了&#xff0c;要先关闭只读 show variables like %read_only%; set global super_read_onlyoff; set global read_onlyoff; 1.2 discart/import tablespace ALTER TABLE 表名 DISC…...

混合求解器:用神经网络增强传统微分方程数值方法

1. 项目概述&#xff1a;当数值方法遇到机器学习在科学计算和工程仿真领域&#xff0c;求解常微分方程&#xff08;ODE&#xff09;和偏微分方程&#xff08;PDE&#xff09;是绕不开的核心任务。无论是模拟电路中的电流变化、预测天气系统的演变&#xff0c;还是分析机械结构的…...

从分立逻辑到单片机:基于ATmega8的MIDI通道分析仪设计与实现

1. 项目概述&#xff1a;从分立逻辑到单片机的MIDI通道分析仪进化史二十年前&#xff0c;当我在《Elektor》杂志上发表第一版MIDI通道分析仪时&#xff0c;整个数字音乐世界还处于一个相当“硬核”的阶段。那个版本的设计&#xff0c;用今天的话来说&#xff0c;简直就是一场“…...

搞定这 5 个全栈电商项目,面试别再用 Todo-List 凑数了

找独立开发练手项目或者写简历项目时&#xff0c;最忌讳两件事&#xff1a;一是太简单&#xff08;纯前端 Mock 数据&#xff0c;点两下就没了&#xff09;&#xff0c;二是太假&#xff08;一上来就硬套微服务、消息队列、高并发&#xff0c;结果自己根本Hold不住&#xff09;…...

Spring Security OAuth2 /oauth/token 401原因与Content-Type规范

1. 问题现场还原&#xff1a;一个看似简单却让开发停摆两小时的/oauth/token请求刚接手一个老项目做安全加固&#xff0c;第一件事就是验证OAuth2密码模式的token获取流程。我照着文档写了一条curl命令&#xff1a;curl -X POST http://localhost:8080/oauth/token回车执行&…...

如何快速解锁艾尔登法环帧率限制:终极性能优化指南

如何快速解锁艾尔登法环帧率限制&#xff1a;终极性能优化指南 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/EldenR…...

航空发动机叶片三维扫描-诺斯顿

航空发动机叶片作为发动机的核心动力部件&#xff0c;其精度与性能直接决定发动机的推力、燃油效率及运行安全性&#xff0c;三维扫描技术作为航空制造领域的核心数字化手段&#xff0c;已广泛应用于叶片全生命周期的多个关键环节。其应用涵盖叶片研发设计阶段的逆向工程&#…...

特定任务需求场景下的过约束并联机构构型设计与控制方法【附代码】

✨ 长期致力于曲面加工、构型综合、运动学和动力学建模、性能评价、多目标优化、滑模控制、鲁棒控制、视觉传感技术研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;…...

我们公司全员把 Cursor 换成了自研的 全开源AtomCode

【引子】这是一篇实录——一位 CTO 用 28 天,用 Claude GLM 双模型调度,造出了一个让全公司放弃 Cursor 的工具。然后我意识到我们正在经历的事情,比"换工具"大得多。【读者承诺】接下来 15 分钟,你会拿到三件东西:一个真实案例(28 天 1,146 commits 是怎么做出来的…...

Unity/Unreal开发者必看:用手机和陀螺仪实验,5分钟搞懂万向节死锁(附避坑指南)

Unity/Unreal开发者实战指南&#xff1a;用手机陀螺仪5分钟破解万向节死锁当你调试第一人称视角时&#xff0c;角色突然卡在墙面无法转动&#xff1b;当无人机模型在俯冲90度时失控乱转——这些很可能都是万向节死锁(Gimbal Lock)在作祟。作为实时3D开发中最恼人的数学陷阱之一…...

LoRa物联网与动态基线算法在养殖体温监测中的实战应用

1. 项目概述&#xff1a;为什么我们需要一个智能体温监测系统&#xff1f;在规模化养殖场里干了十几年&#xff0c;我见过太多因为体温异常没被及时发现而导致的损失。一头育肥猪突然不吃食&#xff0c;等饲养员第二天巡栏发现时&#xff0c;可能已经高烧好几天&#xff0c;继发…...