热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >一文揭秘|预训练一个72b模型需要多久?

一文揭秘|预训练一个72b模型需要多久?

来源:互联网 更新时间:2026-08-23 13:44

设想一下,某天大老板突然把你拉进会议室,一群人围着你问:给你一个千卡集群,让你训一个类似Qwen、百灵、凤凰、ChatGLM甚至ChatGPT级别的模型,能不能干?有什么困难?要多久?

结论当然是能训,此时此刻非我莫属。但第二个问题怎么答——需要多少数据、多少人力、多少工程组来搞定千卡架构?第三个问题才是核心:到底需要多久才能训好一个大模型?日常训练中大家习惯直接拉上去跑,看tqdm进度条和loss曲线预估。但开会时总不能说“让我先准备数据、组好工程队,跑几个step试试”。

这篇文章就是来回答这个核心问题的:预训练一个模型,到底需要多长时间。

结论先行

1. 预训练一个Qwen2-72B,给定7T tokens数据集,6000张A100,一个完整epoch最多需要30天。训练语料长度在预训练最后阶段才从4096扩展到32768,因此本文估算的算力需求会适当高估,但不超过1.6倍。
2. 计算量需求公式为:3 × T × (2.6×10⁶×s + 2P),其中T为数据集token数,P为模型参数量,s为序列长度。序列长度较短时退化为6TP。若使用全部重计算技术,系数由3变成4。
3. 大模型计算量主要与矩阵乘法有关,反向传播计算量是正向的2倍,不同优化器影响可忽略。
4. Attention对seq长度的平方复杂度,拉到32768长度后总算力需求仅增加0.6倍。
5. Batch size对计算量没有影响,超过某个阈值后对训练时间也无影响。

基础概念科普

FLOPS

定义:floating point operations per second,每秒浮点运算次数,即硬件性能(计算速度/算力)。

注1:GPU算力通常打不满,受框架、并行、通信、内存等影响。正常记住几个结论对算法就够用了:A100单卡单精度利用率MFU一般在25%~75%之间(FlashAttention2能拉到上限),取居中50%约300 TFLOPS。H100算力是A100三倍多,MFU一般可取1000 TFLOPS。

注2:同一GPU对不同精度运算性能不同,这与硬件架构有关,此处不赘述。
参考:不同产品计算能力:https://developer.nvidia.com/cuda-gpus
计算能力解释:https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capability-9-0

FLOPs

定义:floating point operations,浮点运算数量,即训练一个大模型需要的算力,用来衡量算法/模型复杂度。乘法和加法混同看待。
1 MFLOPS = 10⁶次每秒,1 GFLOPS = 10³ MFLOPS,1 TFLOPS = 10³ GFLOPS,1 PFLOPS = 10³ TFLOPS,1 EFLOPS = 10³ PFLOPS,1 ZFLOPS = 10³ EFLOPS。这也是本文的主要内容。

MACs

定义:Multiply-Accumulate Operations,乘法加法累积操作次数。1 MACs ≈ 2 FLOPs。大模型计算中乘法和加法比例1:1,所以MACs用得不多。

硬件上矩阵乘法的算力需求

假设矩阵A: a1×a2,矩阵B: b1×b2,计算C=A×B。由定义a2=b1=h,输出C: a1×b2。每个输出元素需要h次乘法加h次加法,即2h FLOPs。总计算量:2×h×a1×b2 FLOPs。

大模型FLOPs计算

先放Qwen2-72B模型架构图:
一文揭秘|预训练一个72b模型需要多久?

参数如下:

{
  "architectures": ["Qwen2ForCausalLM"],
  "attention_dropout": 0.0,
  "hidden_size": 8192,
  "intermediate_size": 29568,
  "max_position_embeddings": 32768,
  "num_attention_heads": 64,
  "num_hidden_layers": 80,
  "num_key_value_heads": 8,
  "vocab_size": 152064
}

前向计算过程

核心结论:

大模型算力需求基本只看矩阵乘法。

抽取参数:batch size(假设4)、seq length(32768)、hidden_size(8192)、num_hidden_layers(80)、vocab_size(152064)。

Embedding层(参数量1.7%,算力占比≈0%)

输入序列映射为embedding序列,计算量极小,忽略不计。

Transformer层(参数量96.6%,计算量占99%)

每个Transformer包含Attention块和FFN块。

单个Attention块(参数量16%,计算量占48%)

输入输出形状均为[batch size, seq length, hidden size]。拆解步骤:
1. QKV映射:Q计算量约17.6 TFLOPs,K和V各2.2 TFLOPs(因GQA)。
2. 旋转向量:计算量很小。
3. KV矩阵扩展:计算量很小。
4. Q×K:约70 TFLOPs。
5. 除以head_dim^0.5:约0.25 TFLOPs。
6. Softmax:约0.75 TFLOPs。
7. 注意力矩阵×V:约70 TFLOPs。
8. 输出线性层:约17.6 TFLOPs。
合计80层约14 PFLOPs。化简公式:num_hidden_layers × batch size × seq length × hidden_size × (4.5×hidden_size + 4×seq length)。

单个FFN块(参数量80%,计算量占51%)

三次矩阵乘法:
- up_proj:约63 TFLOPs
- gate_proj:63 TFLOPs
- down_proj:63 TFLOPs
加上激活函数和点乘(很小)。合计80层约15 PFLOPs。化简公式:6×batch size×seq length×hidden_size×intermediate_size×num_hidden_layers。

其他杂项(参数量≈0%,计算量≈0%)

RMSNorm等计算量约1 TFLOPs,可忽略。

输出层(参数量1.7%,计算量占1%)

先Norm再解码矩阵乘法:约0.3 PFLOPs。

公式推导

总算力:batch size × seq length × hidden_size × (2×vocab_size + num_hidden_layers×(4.5×hidden_size + 4×seq length + 6×intermediate_size))。代入得约30 PFLOPs。
简化形式:T × (2.6×10⁶×s + 144B),其中T为数据集token数,P为模型参数量(约72B)。注意Attention的平方复杂度只有当s长度超过三位数才明显影响。

数据验证

官方部署效率:两张A100 BF16,理论算力1248 TFLOPS。代入公式bs=1, s=1000,正向输出时间约0.115秒/次,约8.67 qps,与官方8.48 qps一致。

拓展:为什么扩大batch size,输出速度先提高后不变

小batch时受内存带宽限制,每次需加载完整模型参数;计算完成后需等待数据转移,导致算力利用率低。当batch size足够大,算力完全发挥,训练时间与batch size无关。

反向传播过程

结论:反向传播算力需求通常是前向的2倍。实验证据来自之前实验。理论:矩阵乘法Y=W×X,反向需计算dL/dW和dY,每次矩阵乘法对应两次反向矩阵计算,因此是2倍。

梯度更新过程

梯度更新计算量相对前向传播可忽略。例如SGD每个参数2 FLOPs,Adam每参数常数级别,与72B参数量相比完全可忽略。

数据验证

官方数据集7T tokens,seq最长32768,集群MFU 50%。总计算量需求:3×7e12×(2.6e6×32768 + 144e9) FLOPs。单卡算力300 TFLOPS,约需15.93×10⁹卡秒 ≈ 4,426,000卡小时 ≈ 180,000卡天。即6000张卡30天完成一轮训练。注:训练语料长度在最后阶段从4096拓展到32768,因此估算高估,不超过1.6倍。

对比Meta训练LLaMA2(70B,1720320卡小时,上下文4096,2T数据集),结论基本一致。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc