预训练工程模块四 · 训练精度概念约 12 分钟
训练精度:FP32 / FP16 / BF16 与混合精度
用更少的比特,省显存又提速
学完这节你能:
- 区分单精度/半精度
- 理解 BF16 与 FP16 的差别
- 说清混合精度训练的做法
| 格式 | 位数 | 特点 |
|---|---|---|
| FP32 单精度 | 32 位 | 精度高、显存大、慢 |
| FP16 半精度 | 16 位 | 省显存快,但动态范围小、易溢出 |
| BF16 | 16 位 | 指数位与 FP32 相同、动态范围大、更稳(大模型偏爱) |
混合精度训练:前向/反向用 16 位(省显存、算得快),但保留一份 FP32 的主权重和用于更新,兼顾速度与稳定。FP16 还常配「损失缩放」防下溢。
🔑 FP16 vs BF16:位数一样,但 BF16 把更多位给了指数(动态范围),尾数(精度)少一点。大模型看重范围与稳定,所以现代训练多用 BF16。
自测关于 BF16 与 FP16,正确的是:
// 带走一句话
混合精度=16 位算(省显存快)+FP32 主权重(稳);BF16 范围大更稳,是大模型主流。
独立练习
做到这些,才算完成本节
- 合上正文,用自己的话解释核心概念。
- 写出一个相似概念,并说明两者最关键的区别。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。