一次讲清 FP32 / FP16 / BF16 / INT8 / INT4

一次讲清 FP32 / FP16 / BF16 / INT8 / INT4

目标 :让你3 分钟读懂格式原理,5 分钟学会选型

只记一句:"指数定范围,尾数定精度;位宽定显存,硬件定成本"


1 | 为什么要有这么多格式?

时代 典型位宽 驱动力
早期科学计算 FP32 精度第一
深度学习训练 FP16 / BF16 显存 & 带宽瓶颈
推理上云 / 上端 INT8 降本、提速
边缘 & 移动 INT4 极限压缩,离线运行

2 | 浮点格式:尺子比喻

复制代码
┌─符号(S)──┬─────指数(E)─────┬──────────尾数(M)──────────┐
    决定正负      决定"尺子长度"            决定"刻度密度"
格式 总位 指数位 尾数位 范围大小* 刻度数量**
FP32 32 8 23 ★★★★★ ★★★★★
BF16 16 8 7 ★★★★★ ★★☆
FP16 16 5 10 ★★ ★★★★
INT8 8 --- 8 (补码) 取决于缩放 ★★
INT4 4 --- 4 同上

* 归一化可表示的最大/最小值(Dynamic Range)

** 一个数量级内可分多少格(Precision)

口诀

  • FP16 = "刻度更密,尺子变短"
  • BF16 = "舍刻度,保尺子"
  • FP32 = "密+长,最豪华"
  • INT8/4 = "把刻度记成整数,再配一支比例尺(缩放因子)"

3 | 每种格式到底什么时候用?

场景 首选 理由
预训练 / 大梯度 BF16 与 FP32 同范围,梯度不溢出;显存减半
显存吃紧训练 (LoRA、SFT) BF16 + FP32 累加 省显存又保稳定
云端推理(>=20 GB GPU) FP16 硬件 TensorCore 2× 加速;误差可接受
成本敏感推理(<10 GB) INT8 量化后体积 ↓75%,吞吐 ↑2‑3×
移动 / 浏览器 INT4 + GPTQ/AWQ 模型 < 2 GB,可跑在 Mac M‑series / Android
科学模拟 / 金融回测 FP32 需极高累计精度

4 | 硬件支持一览

芯片 FP32 FP16 BF16 INT8 INT4
NVIDIA A100 ✅ TensorCore ---
NVIDIA H100 ✅ TensorCore 🚧 (B100)
Google TPU v4 --- ✅ 原生 ---
AMD MI300 ---
Apple M3 软件模拟 ✅ (MetalLLM)

5 | 精度 & 性能实测示例(Llama‑2‑7B, Alpaca Eval)

格式 ppl ↓ BLEU ↑ 推理 tokens/s (A100) 显存
FP32 5.85 28.6 45 14 GB
BF16 5.86 28.5 90 7 GB
FP16 5.87 28.5 92 7 GB
INT8 (RTN) 6.02 28.1 130 4 GB
INT4 (GPTQ) 6.25 27.8 160 2.3 GB

差距 < 0.2 ppl / 1 BLEU 在多数应用感知有限


6 | 快速选型流程(训练 / 推理)

① 你正在做什么?

  • 训练
  • 推理

▍训练路线

梯度是否容易溢出? 建议精度 说明
是(频繁出现 Inf/Nan) BF16 + GradScaler 保留 FP32 级范围,显存减半
否(训练稳定) FP16 半精度省显存、TensorCore 加速

▍推理路线

显存预算 能接受 ≤ 1‑2 % 精度损失? 建议精度
≥ 16 GB ------ FP16(或 BF16)
< 16 GB INT8 / INT4
FP16

额外提示

  • 移动 / 浏览器:优先 INT4(GPTQ / AWQ 量化)。
  • 高精度金融 & 科研:仍用 FP32 或混合 BF16+FP32。
  • INT 量化后如指标下降,可用 LoRA 微调追回。

7 | 常见误区 Q&A

问题 正解
FP16 ≈ BF16? No. FP16 精度高但范围窄;BF16 范围大但刻度粗。
INT8 总会掉精度? 用 GPTQ / AWQ + 校准数据,掉点 < 1%;对话模型体感差异极小。
手机真能跑 INT4 LLM? M2/M3、骁龙 X Elite 已实测 7B INT4 达 10‑20 tokens/s。
训练一定要 FP32? 混合精度早已主流。BF16 TensorCore 训练可比 FP32 快 2‑3×。

8 | 记忆三板斧

  1. 指数位 = 尺子长度
    ‑ 大梯度就要长尺子(8 bit) → BF16
  2. 尾数位 = 刻度密度
    ‑ 推理要细腻回答 → FP16
  3. 位宽 = 钱包厚度
    ‑ 显存贵但要求快 → INT8 / INT4

结语

格式选对,显存省一半,速度翻一番。

  • 训练:优先 BF16;显存充足再混 FP32 累加器。
  • 推理:优先 FP16;显存不足进 INT8;边缘 & 移动用 INT4。
  • 永远记得:先测指标,再定精度。

至此,FP32/FP16/BF16/INT8/INT4 的来龙去脉、优势劣势、硬件匹配与典型场景已全部说清。祝你的模型 又准又快又省钱

相关推荐
wang_yb43 分钟前
集成学习中的多样性密码:量化学习器的多样性
ai·databook
pumpkin8451420 小时前
DeepSeek-R1-Distill-Qwen-1.5B代表什么含义?
ai
码观天工1 天前
.NET 原生驾驭 AI 新基建实战系列(七):Weaviate ── 语义搜索的智能引擎创新者
ai·c#·.net·向量数据库·weaviate
带刺的坐椅1 天前
jFinal 使用 SolonMCP 开发 MCP(拥抱新潮流)
java·ai·solon·jfinal·mcp
探索云原生1 天前
一文搞懂 GPU 共享方案: NVIDIA Time Slicing
ai·云原生·kubernetes·gpu
菜鸟分享录1 天前
MCP 入门实战:用 C# 开启 AI 新篇章
ai·c#·semantic kernel·mcp
wang_yb1 天前
集成学习常用组合策略:让多个模型“合作”得更好
ai·databook
江鸟19981 天前
AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式
人工智能·gpt·ai·chatgpt·github