一次讲清 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 的来龙去脉、优势劣势、硬件匹配与典型场景已全部说清。祝你的模型 又准又快又省钱

相关推荐
躺柒6 小时前
读大语言模型08计算基础设施
人工智能·ai·语言模型·自然语言处理·大语言模型·大语言
Elastic 中国社区官方博客10 小时前
将 agents 连接到 Elasticsearch 使用模型上下文协议 - docker
大数据·数据库·人工智能·elasticsearch·搜索引擎·docker·ai
CoderJia程序员甲10 小时前
GitHub 热榜项目 - 日榜(2025-08-28)
ai·github·开源项目·github热榜
即兴小索奇11 小时前
AI智能物流仓储新变革:从自动分拣到动态路径规划,破解仓储运营效率难题
人工智能·ai·商业·ai商业洞察·即兴小索奇
九仞山1 天前
LangChain4j入门一:LangChain4j简介及核心概念
java·ai·langchain·agents
猫头虎1 天前
什么是AI+?什么是人工智能+?
人工智能·ai·prompt·aigc·数据集·ai编程·mcp
武子康1 天前
AI-调查研究-59-机器人 行业职业地图:发展路径、技能要求与薪资全解读
人工智能·gpt·程序人生·ai·职场和发展·机器人·个人开发
TDengine (老段)2 天前
TDengine IDMP 5 个实测场景让监控变简单
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
MicrosoftReactor2 天前
技术速递|Model Context Protocol (MCP) 支持已上线 JetBrains、Eclipse 和 Xcode
ai·eclipse·copilot·xcode·mcp
赵康2 天前
使用 LLM + MCP 在过早客论坛冲浪🏄‍♀️
ai·llm·mcp