从FP32降到FP16/BF16,训练吞吐量提升40%~60%,显存占用减半,等于GPU成本直接打六折;FP8在Hopper架构上再翻倍,但有精度和兼容性限制。
一、各种精度格式对比
| 精度 | 位宽 | 显存占用 | 计算速度 | 精度损失 | 支持硬件 |
|---|---|---|---|---|---|
| FP32 | 32位 | 基准 | 基准 | 无 | 所有GPU |
| TF32 | 19位 | 同FP32带宽 | ~8倍 | 极小 | A100/H100 |
| FP16 | 16位 | ~50% | ~2倍 | 极小 | 所有现代GPU |
| BF16 | 16位 | ~50% | ~2倍 | 极小 | A100/H100 |
| FP8 | 8位 | ~25% | ~4倍 | 1%~3% | H100/B200 |
二、混合精度怎么省钱
混合精度训练的成本优势体现在两个方面:
1. 吞吐量提升直接降本
同样的训练任务,FP32需要100小时,BF16混合精度可能只需要60小时。按GPU时价计算,成本直接降40%。
2. 显存减少允许用更小的卡
70B模型FP32需要140GB显存,BF16降到70GB,INT4进一步降到35GB。原本需要2张A100的任务,用BF16可能1张A100就够,成本减半。
三、FP16 vs BF16怎么选
| 对比项 | FP16 | BF16 |
|---|---|---|
| 指数位 | 5位(范围小) | 8位(范围大) |
| 尾数位 | 10位(精度高) | 7位(精度低) |
| 溢出风险 | 有(需要loss scaling) | 几乎无 |
| 推荐使用 | 旧GPU(V100等) | 新GPU(A100/H100) |
结论:有A100或更新的GPU,直接用BF16,省心且稳定。旧GPU用FP16+梯度缩放。
四、FP8:新一代的成本杀手
FP8是Hopper架构(H100)和Blackwell(B200)的新特性:
- 训练吞吐量相比BF16再提升约1.5~2倍;
- 显存占用减半,可以训练更大的batch;
- 但需要框架支持(PyTorch 2.1+、Transformer Engine);
- 对超大规模训练(千亿+模型)效果最明显。
五、各精度的实际成本对比(70B微调)
| 精度方案 | GPU配置 | 训练时间 | 估算成本 |
|---|---|---|---|
| FP32全量 | 8×A100 | ~10天 | ~3.5万元 |
| BF16混合 | 4×A100 | ~3.5天 | ~1.2万元 |
| BF16+LoRA | 2×A100 | ~2天 | ~1700元 |
| FP8+LoRA | 2×H100 | ~1.2天 | ~2600元 |
六、使用建议
- 默认开混合精度:几乎所有场景都应该用BF16或FP16,FP32只用于数值验证;
- 先试BF16:在A100/H100上直接用BF16,不需要调loss scaling,稳定性好;
- FP8谨慎使用:只有H100/B200且框架支持时才用,注意精度评估;
- 推理用INT4/INT8:推理场景用量化精度,成本再降70%。
需要高性能GPU做混合精度训练,可以选择GPU混合精度训练服务,A100/H100实例开箱即用。
七、总结
混合精度是零成本的性能提升——代码改几行,速度快一倍,成本降一半。不用混合精度训练等于自动放弃40%的预算节约。




