数值精度选择是平衡计算效率、内存占用和模型精度的关键技术决策。BF16 统治训练,INT8 主导部署。
浮点精度对比
| 格式 | 结构 | 数值范围 | 适用场景 |
|---|---|---|---|
| FP32 | 1+8+23 | ±3.4e38 | 科学计算、主权重存储 |
| FP16 | 1+5+10 | ±65504 | 推理加速、混合精度训练 |
| BF16 | 1+8+7 | ±3.4e38 | 大模型训练标配 |
| FP8 | E4M3/E5M2 | 变体不同 | 边缘 AI、下一代硬件 |
FP32:传统黄金标准
结构:1位符号 + 8位指数 + 23位尾数
适用:科学计算、混合精度训练主权重存储、精度敏感任务
FP16:推理加速利器
优势:内存占用减半,计算速度提升
挑战:数值范围有限,易梯度下溢
解决方案:混合精度训练 + 动态损失缩放
| |
BF16:大模型训练标配
设计:牺牲精度换范围,指数位与 FP32 对齐
优势:数值范围与 FP32 相当,避免梯度溢出/下溢
硬件支持:NVIDIA A100+、TPU v3+
| |
整数量化
INT8:部署主流
压缩率:模型大小减少 75%
量化方案:
| 方案 | 说明 |
|---|---|
| 动态量化 | 推理时实时计算缩放因子 |
| 静态量化 | 训练后校准,性能最优 |
| 量化感知训练 | 训练中模拟量化,精度损失最小 |
INT4:极致压缩
前沿技术:
- GPTQ:后训练量化,175B 模型量化为 3/4-bit
- AWQ:激活感知权重量化
- QLoRA:4-bit 微调,低成本大模型调优
精度选择决策
| 场景 | 推荐精度 |
|---|---|
| 大模型训练(>7B) | BF16 |
| 小模型训练 | FP32 或 FP16 混合精度 |
| 云服务器推理 | FP16 |
| 边缘设备部署 | INT8 |
| 资源极度受限 | INT4/GPTQ |
验证检查清单
| |
未来趋势
- 精度自适应训练:动态选择不同层精度
- 混合精度推理:关键层高精度,其余低精度
- FP8 硬件:NVIDIA H100 原生支持
关键洞察:没有"最好"的精度,只有"最适合"的精度。
张芷铭的个人博客
Comments