AI 术语表 · 基础 · 效率与基础设施
精度(FP32、BF16、FP8)
精度指 AI 模型用多少位来存储和计算一个数字,如 FP32、BF16、FP8,位数越少,内存和计算量越少,但表示也越粗糙。
工作原理
FP 表示浮点数(floating point),后面的数字是位数。FP32 每个数字占 4 字节,FP16、BF16 占 2 字节,FP8 占 1 字节,FP4 占 0.5 字节。这些位分为负责“数值大小范围”的部分和负责“精细程度”的部分。BF16 与 FP16 大小相同,但范围与 FP32 一样宽,训练中数值溢出的问题较少,因此如今几乎成为训练和推理的默认选择。
每个数字占用的字节
在哪里会看到
可以在 Hugging Face 模型 config.json 中的 torch_dtype 字段(例:bfloat16)、模型卡、推理引擎的 dtype 设置中看到。GPU 规格书会列出不同精度下的每秒运算次数,越新的 GPU 越会在硬件上支持 FP8、FP4 等低精度。量化模型名称中标注的 4bit、8bit 也是同一回事。
为什么重要
把精度降低一半,权重内存就减少一半,在支持的 GPU 上计算也会变快。因此可以把大模型放到更小的 GPU 上,或处理更多请求。训练中常用“混合精度”,即用低精度计算,而重要的值保持高精度。最近,尝试连训练也用 FP8、FP4 完成的研究十分活跃。
注意事项
精度降得过低,可能导致准确率下降或训练不稳定。同为 8 位,FP8 与 INT8(整数)的方式不同,需要确认引擎和 GPU 支持哪一种。较旧的 GPU 不在硬件上支持 BF16 或 FP8,可能达不到预期速度。原本以 BF16 发布的模型若特意以 FP32 加载,只会让内存翻倍,质量上几乎没有收益。
示例
本站的“TRACE”论文新闻介绍了一种方法:为减少用 FP4 对 MoE 语言模型进行强化学习时产生的误差,在训练过程中预先考虑量化。实际工作中,可以在模型的 config.json 里确认 torch_dtype 是否为 bfloat16;如果 GPU 支持 FP8,再考虑是否在推理引擎设置中改为 FP8 以节省内存。
本站出现过的地方
- 论文 STEPQuant:在 Delta-rule 循环状态量化中,误差何时、何处重要 2026-10-09
- 论文 TRACE:面向 MoE 语言模型 FP4 强化学习、基于 Rollout 的 QAT(量化感知训练) 2026-10-08