常见精度 — 每个数值占多少 Bytes?

S = 符号位  |  ■ E = 指数位 (决定数值范围)  |  ■ M = 尾数位 (决定精度) FP32 4 B 训练精度,推理基本不用 1-8-23 S E (8) M (23) FP16 / BF16 2 B 推理默认,公式中 B=2 1-5-10 S E (5) M (10) FP8 (E4M3) 1 B H100/H200 原生支持 1-4-3 S E (4) M (3) INT8 1 B 整数量化,需 calibration 8-bit integer INT (8) INT4 0.5 B 极致量化 4-bit integer INT (4) 浮点数 value = (−1)S × 2(E−bias) × 1.M 1.M 的 "1" 是隐含前导位 (隐藏位),实际有效数字 = 1 + M 的二进制小数部分 整数 value = (int_val − zero_point) × scale 精度对 KV Cache 的影响 (Qwen2.5-7B, T=2048, L=28, H_kv=4, D=128) 精度 Bytes/元素 单 token KV T=2048 总 KV vs FP16 节省 HW 支持 FP16 / BF16 2 56 KiB 112 MiB 基准 全系列 GPU FP8 (E4M3) 1 28 KiB 56 MiB ↓ 50% H100/H200+ INT8 1 28 KiB 56 MiB ↓ 50% 全系列 GPU INT4 0.5 14 KiB 28 MiB ↓ 75% B200+ KV Cache 存的是 Attention 的中间结果,对精度不敏感。FP8 几乎无损 (< 0.1% 困惑度上升),INT4 per-channel 也在 1% 以内。 所以 B 是最容易优化的参数 — 改一行配置 (kv-cache-dtype: fp8),显存直接减半。