训练资源估算题
一、核心公式
1.1 FLOPs 估算
训练 FLOPs = 6 x N x D
- N = 模型参数量
- D = 训练 token 数
- 6 = 前向 (2) + 反向 (4) 的系数
推理 FLOPs (单 token) = 2 x N
- 大致为 2 倍参数量
1.2 GPU 时间估算
GPU Hours = Total FLOPs / (GPU_FLOPS x MFU)
- GPU_FLOPS:GPU 理论算力(TFLOPS)
- MFU(Model FLOPs Utilization):通常 30-50%
1.3 显存估算
训练显存 = 模型参数 + 梯度 + 优化器状态 + 激活值
| 组件 | BF16 混合精度 + Adam |
|---|---|
| 模型参数 | 2N bytes |
| 梯度 | 2N bytes |
| 优化器状态 | (2+2)N = 4N bytes (动量+方差, FP32) |
| 激活值 | 取决于 batch_size x seq_len x hidden x layers |
| 总计约 | ~16N bytes(含激活值) |
二、GPU 算力参考
| GPU | BF16 算力 | 显存 | 适用场景 |
|---|---|---|---|
| A100 80GB | 312 TFLOPS | 80 GB | 训练 + 推理 |
| H100 80GB | 990 TFLOPS | 80 GB | 训练 + 推理 |
| H200 141GB | 990 TFLOPS | 141 GB | 大模型推理 |
| B200 192GB | 2250 TFLOPS | 192 GB | 最新训练 |
| A6000 | 38 TFLOPS | 48 GB | 中小模型训练 |
| RTX 4090 | 82 TFLOPS | 24 GB | LoRA 微调 |
三、典型估算练习
练习 1:训练 7B 模型需要多少资源?
条件:7B 参数,1T token,A100 GPU
计算:
- FLOPs = 6 x 7e9 x 1e12 = 4.2e22
- A100 BF16 = 312 TFLOPS = 3.12e14 FLOP/s
- GPU Hours = 4.2e22 / (3.12e14 x 0.4) = 336,538 小时
- 约 14,022 天 / 38.4 年(单卡)
- 256 卡集群约 55 天
显存估算(全参数训练):
- 参数:14 GB (BF16)
- 梯度:14 GB
- 优化器:28 GB (FP32)
- 激活值:~50-100 GB
- 总计:~106-156 GB -> 需要 2x A100 80GB(使用 ZeRO-2)
练习 2:QLoRA 微调 70B 模型需要什么?
条件:70B 参数,LoRA rank=64,10K 条数据
显存估算:
- 基座模型(4-bit):~35 GB
- LoRA 参数(BF16):~160 MB
- 梯度 + 优化器:~320 MB + ~640 MB
- 激活值:~20-40 GB
- 总计:~56-76 GB -> 单张 A100 80GB 可行
训练时间:
- 数据量小(10K x 2048 token = ~20M token)
- FLOPs 很小(只算 LoRA 参数部分)
- 预计 1-4 小时
练习 3:推理服务 70B 模型需要什么?
显存需求:
- BF16 权重:140 GB -> 2x A100 80GB 或 1x H200 141GB
- KV Cache(2048 context, batch=32):~40-80 GB
- 总计:~180-220 GB -> 3-4x A100
INT4 量化后:
- 权重:~35 GB -> 1x A100 80GB
- KV Cache + 运行时:~20-30 GB
- 总计:~55-65 GB -> 1x A100 80GB
四、面试快速估算技巧
4.1 记住关键数字
- 训练 7B 模型(1T token):
336K A100 小时($1M 云计算成本) - LoRA 微调 7B:1-4 小时,单卡 A100
- 全参数微调 70B:需要 8+ A100,数天到数周
- 推理 7B (BF16):~14 GB 显存
- 推理 70B (INT4):~35 GB 显存
4.2 快速公式
- 模型大小 (BF16) = 2N bytes -> 7B 约 14 GB
- 模型大小 (INT4) = 0.5N bytes -> 7B 约 3.5 GB
- 训练显存 ≈ 16N bytes -> 7B 约 112 GB
- QLoRA 显存 ≈ 0.5N (基座) + LoRA 参数 + 激活值 -> 7B 约 16-20 GB
4.3 成本估算
- A100 云服务:~$2-3/小时
- H100 云服务:~$3-5/小时
- 训练 7B 模型(1T token,256 A100):~$160K-240K
- 推理 7B(1000 RPS):~$5K-10K/月
五、常见面试问题
Q: "如何减少训练显存?" "A: 四个方法:1) Gradient checkpointing(用计算换显存,省 60-70% 激活值显存);2) ZeRO 优化(分片参数/梯度/优化器状态到多 GPU);3) FlashAttention(减少注意力计算的临时内存);4) QLoRA(量化基座 + LoRA 微调)。"
Q: "预训练 GPT-3 (175B) 大概花了多少钱?" "A: 按 Chinchilla 公式估算,175B 模型训练 300B token 的 FLOPs 约 3.15e23。在 V100 (125 TFLOPS) 上以 40% MFU 需约 630 万 GPU 小时。按 V100 约 1900 万。实际总成本可能 $10M-50M(含基础设施和人力)。"