Back to blog

Four Over Six: More Accurate NVFP4 Quantization with Adaptive Block Scaling

NVFP4 量化精度提升的自适应块缩放方法

Four Over Six: More Accurate NVFP4 Quantization with Adaptive Block Scaling

一、论文概述

项目内容
标题Four Over Six: More Accurate NVFP4 Quantization with Adaptive Block Scaling
作者Jack Cook, Junxian Guo, Guangxuan Xiao, Yujun Lin, Keith Wyss, Mahdi Nazemi, Asit Mishra, Carlo del Mundo, Tijmen Blankevoort, Song Han
论文arXiv:2512.02010
代码GitHub
发布2025年12月1日(v5: 2026年5月9日)

二、核心思想

问题定义

随着 LLM 规模不断增大,低精度数值格式(如 NVFP4)成为提升速度和减少内存使用的关键。然而,将模型量化到 NVFP4 仍然具有挑战性:

NVFP4 的局限:

  • FP4 只有 16 个可表示值:{-6, -4, -3, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 3, 4, 6}
  • 浮点格式的非均匀步长导致大值的量化误差更大
  • 步长在 0-2 之间为 0.5,在 2-4 之间为 1,在 4-6 之间为 2

误差来源分析:

  • 缩放因子的 FP8 量化误差(影响整个块)
  • FP4 值的舍入误差(主要来自接近最大值的值,约 5 附近)

解决方案概述

本文提出 Four Over Six (4/6),一种修改 NVFP4 块缩放量化算法的方法:

  • 核心思想:自适应地将某些块缩放到较小的 FP4 值(4 而非 6),使可表示值的分布更均匀
  • 优势:减少接近最大值的值的量化误差
  • 实现效率:在现代硬件上高效实现,量化操作开销 <15%

关键创新

创新点说明效果
自适应块缩放每个块可选择缩放到 4 或 6减少接近最大值的量化误差
MSE 选择规则比较 M=4 和 M=6 的量化误差,选择 MSE 更小的PTQ 性能最优
MAE 选择规则使用 MAE 选择缩放因子预训练性能最优
减少 FP32 张量缩放降低全局缩放因子,允许更多块缩放到 4预训练性能提升
仅激活量化4/6 仅应用于激活量化预训练中效果最佳

三、技术架构

NVFP4 量化基础

NVFP4 是一种块缩放量化格式:

  • 值格式:FP4 E2M1(4 位浮点,2 位指数,1 位尾数)
  • 块缩放因子:FP8 E4M3,每 16 个值一个
  • 张量缩放因子:FP32,整个张量一个

量化公式:

Q(X)=FP4(Xstensor⋅sblock)⋅stensor⋅sblockQ(X) = \text{FP4}\left(\frac{X}{s_{\text{tensor}} \cdot s_{\text{block}}}\right) \cdot s_{\text{tensor}} \cdot s_{\text{block}}

其中:

  • stensor=Nmax⁡(∣X∣)s_{\text{tensor}} = \frac{N}{\max(|X|)}(NN 为 FP4 最大值,通常为 6)
  • sblock=FP8(max⁡(∣Xblock∣)N)s_{\text{block}} = \text{FP8}\left(\frac{\max(|X_{\text{block}}|)}{N}\right)

Four Over Six 核心机制

问题:当缩放到 M=6 时,接近最大值的值(如 5)的量化误差很大,因为步长为 2。

解决方案:允许块选择缩放到 M=4:

  • 缩放到 6:值分布在 [-6, 6],步长不均匀
  • 缩放到 4:值分布在 [-4, 4],大值区域步长更小

示例:

原始值M=6 量化值M=4 量化值M=6 误差M=4 误差
5.0641.01.0
4.5440.50.5
3.5440.50.5
5.5640.51.5

对于某些块,缩放到 4 可以减少大值的量化误差。

缩放因子选择规则

MSE 选择(PTQ 最优): 选择标准=arg⁡min⁡M∈{4,6}∑i(xi−QM(xi))2\text{选择标准} = \arg\min_{M \in \{4,6\}} \sum_i (x_i - Q_M(x_i))^2

MAE 选择(预训练最优): 选择标准=arg⁡min⁡M∈{4,6}∑i∣xi−QM(xi)∣\text{选择标准} = \arg\min_{M \in \{4,6\}} \sum_i |x_i - Q_M(x_i)|

实现细节

PTX 指令:使用 NVIDIA Blackwell GPU 的 cvt 指令族执行 FP4 量化和反量化。

CUDA 内核:

  • 所有量化值、反量化值和误差保持在寄存器中
  • 每个块量化两次(M=4 和 M=6)
  • 比较误差并选择更优的缩放因子
  • 开销 <15%

计算流程

NVFP4 量化线性层的计算流程

所有矩阵乘法(FPROP、DGRAD、WGRAD)都在 NVFP4 中执行:

  1. 权重:2D 块量化 + 4/6
  2. 激活:per-token 量化 + 4/6
  3. 梯度:per-token 量化 + 4/6(可选)

四、核心能力

预训练改进

  • 训练损失:比 NVFP4 基线降低 13.0%,更接近 BF16
  • 模型架构:Nemotron 3 Nano 30B-A3B
  • 训练数据:1 万亿 token
  • 仅激活量化:4/6 仅应用于激活时效果最佳

后训练量化改进

  • 通用方法:可与 AWQ、GPTQ、SmoothQuant 等现有 PTQ 方法结合
  • 一致改进:在所有测试的模型和方法上均带来性能提升
  • 无额外开销:PTQ 阶段无额外计算开销

硬件效率

  • Blackwell GPU 支持:利用原生 NVFP4 硬件加速
  • 低开销:4/6 量化操作开销 <15%
  • INT8 级速度:4-6× 快于 BF16 矩阵乘法

五、实验结果

WikiText-2 困惑度(W4A4 PTQ)

方法Llama 3 1BLlama 3 8BLlama 3 70BQwen 3 1.7BQwen 3 8BQwen 3 32B
BF1611.987.542.8621.0612.229.34
MXFP417.679.665.5326.9514.0811.92
NVFP4 (M=6)14.278.434.0023.0612.689.85
NVFP4 (M=4)14.758.634.4824.4312.9810.57

发现:MXFP4 性能最差,NVFP4 (M=6) 优于 NVFP4 (M=4)。但自适应选择(4/6)可以进一步提升。

PTQ 方法 + 4/6(WikiText-2 困惑度)

方法Llama 3 1BLlama 3 8BLlama 3 70BQwen 3 1.7BQwen 3 8BQwen 3 32B
BF1611.987.542.8621.0612.229.34
RTN14.278.434.0023.0612.689.85
RTN + 4/613.848.303.8323.6012.569.84
GPTQ13.738.33–21.4812.509.67
GPTQ + 4/613.678.30–22.7012.659.66
AWQ14.048.333.8622.2012.689.69
AWQ + 4/613.678.243.7121.6712.579.64
SmoothQuant14.178.383.8621.9912.649.65
SmoothQuant + 4/614.038.323.8021.9712.629.63

关键发现:

  • AWQ + 4/6 效果最好:Llama 3 8B 从 8.33 降至 8.24,Qwen 3 1.7B 从 22.20 降至 21.67
  • 4/6 在所有 PTQ 方法上均带来一致改进
  • Llama 3 70B 上 AWQ + 4/6 从 3.86 降至 3.71(接近 BF16 的 2.86)

下游任务性能(Llama 3)

方法BoolQ 1BBoolQ 8BArc-E 1BArc-E 8BArc-C 1BArc-C 8BHellaSwag 1BHellaSwag 8BAvg 1BAvg 8B
BF1663.783.261.882.537.055.064.379.356.775.0
RTN58.680.257.377.534.352.560.077.752.372.0
RTN + 4/657.780.956.980.233.052.660.078.051.972.2
AWQ59.881.358.078.434.251.760.977.553.272.2
AWQ + 4/661.080.458.880.235.553.661.278.254.173.1
SmoothQuant61.181.157.477.635.552.760.777.653.772.3
SmoothQuant + 4/661.680.458.078.635.652.261.680.454.272.9

下游任务性能(Qwen 3)

方法BoolQ 1.7BBoolQ 8BArc-E 1.7BArc-E 8BArc-C 1.7BArc-C 8BHellaSwag 1.7BHellaSwag 8BAvg 1.7BAvg 8B
BF1677.686.670.280.943.056.760.474.962.874.8
RTN73.185.559.978.635.354.158.073.256.672.3
RTN + 4/676.385.866.378.538.753.758.073.759.872.9
AWQ72.886.558.078.436.355.257.873.656.273.4
AWQ + 4/675.986.563.878.139.255.857.973.659.273.5

关键发现:

  • AWQ + 4/6 在 Qwen 3 1.7B 上平均提升 +3.0(56.2→59.2)
  • RTN + 4/6 在 Qwen 3 1.7B 上提升最大(56.6→59.8,+3.2)
  • 4/6 在小模型上改进更显著

预训练实验

4/6 改善 NVFP4 预训练性能

关键发现:

  • 4/6 将训练损失比 NVFP4 基线降低 13.0%,更接近 BF16
  • 仅在激活上使用 4/6 即可获得大部分收益
  • MAE 选择规则在预训练中优于 MSE

消融实验

缩放因子选择规则

MAE vs MSE 选择规则

发现:

  • MSE 在 PTQ 中更好
  • MAE 在预训练中更好

FP32 张量缩放

减少 FP32 张量缩放

发现:减少 FP32 张量缩放允许更多块缩放到 4,提升预训练性能。

激活 vs 全部张量

4/6 应用于不同张量

发现:仅在激活上使用 4/6 效果最佳,可能因为权重和梯度的分布特性不同。

六、实现细节

配置值
基础模型Nemotron 3 Nano 30B-A3B
训练数据1 万亿 token
序列长度8192
批量大小3072
优化器AdamW (β1=0.9, β2=0.95)
学习率Warmup-Stable-Decay
量化格式NVFP4 (FP4 E2M1 + FP8 E4M3)
块大小16 values
4/6 开销<15%
硬件NVIDIA Blackwell B200

训练配置

  • 随机舍入(梯度)
  • 随机 Hadamard 变换(权重梯度计算)
  • 2D 块量化(权重矩阵)
  • 注意力组件、输出投影和嵌入层保持高精度

七、与现有方法对比

方法类型适用场景改进方式效果
MXFP4块缩放 FP4通用固定缩放基线
NVFP4块缩放 FP4Blackwell GPU固定缩放到 6优于 MXFP4
AWQPTQ推理通道缩放与 4/6 兼容
GPTQPTQ推理二阶信息与 4/6 兼容
SmoothQuantPTQ推理平滑量化与 4/6 兼容
4/6量化算法训练+推理自适应块缩放一致改进

独特优势:

  • 通用方法,可与任何 PTQ 方法结合
  • 支持预训练和后训练量化
  • 硬件高效实现(<15% 开销)
  • 无需修改模型架构或训练流程

八、相关工作

方向代表工作与 4/6 的关系
低精度训练FP8, FP4 training4/6 改进 FP4 训练
块缩放格式MXFP4, NVFP44/6 修改 NVFP4 算法
PTQ 方法AWQ, GPTQ, SmoothQuant4/6 与之兼容
旋转方法SpinQuant, QuaRot互补方法
异常值处理Outlier suppression4/6 的替代方案

九、总结

核心贡献

  1. 自适应块缩放:允许块选择缩放到 4 或 6,减少大值量化误差
  2. 预训练改进:训练损失比 NVFP4 基线降低 13.0%,更接近 BF16
  3. PTQ 一致改进:与 AWQ、GPTQ、SmoothQuant 结合均带来性能提升
  4. 硬件高效:在 Blackwell GPU 上实现,开销 <15%
  5. 通用方法:适用于训练和推理,无需修改模型架构

技术影响

  • 为 NVFP4 量化提供了简单有效的改进方案
  • 预训练中仅需在激活上使用 4/6 即可获得大部分收益
  • PTQ 中 AWQ + 4/6 组合效果最好
  • 代码开源,可直接集成到现有训练和推理框架

局限性

  • 仅适用于 NVFP4,不兼容 MXFP4(FP8 缩放因子精度不足)
  • 需要 Blackwell GPU 的硬件支持
  • 某些模型(如 Qwen 3 1.7B + GPTQ)上 4/6 可能略有下降
  • 预训练实验仅在 30B-A3B 模型上验证

十、参考资源

  • 论文: arXiv:2512.02010
  • 代码: GitHub: inspire-group/four-over-six
  • 关键引用:
    • NVFP4 (NVIDIA et al., 2025a) — 基础量化格式
    • MXFP4 (Rouhani et al., 2023) — 替代块缩放格式
    • AWQ (Lin et al., 2024) — 权重量化方法
    • GPTQ (Frantar et al., 2023) — 二阶量化方法
    • SmoothQuant (Xiao et al., 2024a) — 平滑量化方法
    • Nemotron 3 (NVIDIA, 2025) — 预训练模型架构

分析日期: 2026-06-05