跳转至

MicroMix: Efficient Mixed-Precision Quantization with Microscaling Formats for Large Language Models

会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=P5OKoZdwlB
代码: https://github.com/lwy2020/MicroMix
领域: 模型压缩 / LLM 量化
关键词: 混合精度量化, Microscaling (MX) 格式, MXFP4/6/8, Blackwell FP4 Tensor Core, 算子-算法协同设计

一句话总结

MicroMix 把 LLM 的权重-激活量化建在 NVIDIA Blackwell 的 MXFP4/MXFP6/MXFP8 微缩放格式上,按"量化误差阈值"逐层自适应地给激活通道分配 4/6/8 比特,并配套一个融合了重排-量化与去量化的 CUTLASS GEMM 算子,以约 5 比特的平均精度做到近 FP16 精度且相比 FP16 加速 2.3–3.4 倍。

研究背景与动机

领域现状:LLM 量化已从 W8A8 一路推进到 W4A4,主流走的是 INT4 路线(QuaRot、Atom、FlatQuant 等),靠旋转、平滑、混合精度等手段压制激活离群值。

现有痛点:INT4 路线撞上两堵墙。其一,分组整数量化要把每个整数组先去量化成浮点再做部分和累加,而 INT8 Tensor Core 只支持 INT32 累加,去量化只能落到更慢的 CUDA Core 上执行,拖累吞吐。其二,Blackwell 架构新出的 FP4 Tensor Core 吞吐是 FP16 的 4 倍、是 FP8/INT8 的 2 倍,但现有 INT 量化算子和它的数据格式根本不兼容,白白浪费了这块硬件红利。

核心矛盾:要吃到 FP4 Tensor Core 的速度,就得用 FP 类(MX)格式而非 INT;但纯 MXFP4 精度不够,而 MX 格式下的训练后量化(尤其是"离群值该在多大幅度上被约束"这个阈值)几乎没人研究过——已有的混合精度方法(如 Atom)又是所有层固定同样数量的高精度通道,无法适配各层差异巨大的激活分布。

本文目标:做一套算法与算子协同设计的混合精度量化,在 Blackwell 上用 MX 格式同时拿到精度和速度。

核心 idea误差阈值驱动的逐层自适应位宽分配 —— 用一个显式量化阈值把激活通道切成"低位够用 / 需要中位 / 必须高位"三组,逐层算出 4/6/8 比特各自占比,再把同精度通道重排进同一块,配一个把重排、量化、去量化全融进 MMA 的 GEMM 算子。

方法详解

整体框架

MicroMix 把每个线性层的激活通道分成 \(G_4, G_6, G_8\) 三组,分别量化到 MXFP4/MXFP6/MXFP8,对应权重通道按相同位宽量化;分组依据是离线标定得到的"量化阈值"。算法侧负责"哪些通道该用几比特",算子侧负责"把异构精度通道高效算出来",两者协同。

flowchart LR
    A[激活 X] --> B[按通道绝对均值<br/>升序排列 σ]
    B --> C{量化阈值<br/>T·4· / T·6·}
    C -->|小值| D[G4 → MXFP4]
    C -->|中值| E[G6 → MXFP6]
    C -->|大值离群| F[G8 → MXFP8]
    D & E & F --> G[融合 reorder+quantize 算子]
    G --> H[CUTLASS MXFP GEMM<br/>去量化融进 MMA]
    H --> I[BFloat16 输出]

关键设计

1. 误差阈值:把"离群值边界"显式定义出来。 这是全文的支点。给定块内最大值 \(\max(|X_i|)\),MX 的块共享缩放因子是 \(s = 2^{\lfloor \log_2(\max(|X_i|))\rfloor - b}\),单元素量化误差为 \(E(X_j) = \gamma \cdot s\)\(\gamma\) 是舍入误差)。作者的设计目标是让低位格式的误差不超过 INT8 的误差上界,即 \(E(X)_{\text{MXFP}\{4,6\}} \le E(X)_{\text{INT8}}\)。由此反解出位宽为 \(n\) 时通道能容忍的最大幅度阈值

\[T(n) = \frac{2^b \cdot 2^{n-1}}{q_{\max}} \cdot E(X)_{\text{INT8}}\]

其中 \(q_{\max}\) 是目标格式的最大可表示值、\(b\) 是指数偏置。于是分组规则一目了然:\(G_4=\{X \le T(4)\}\)\(G_6=\{T(4)<X\le T(6)\}\)\(G_8=\{T(6)<X\}\)——幅度越大的元素被"提级"到更高精度,从而把 MXFP4 带来的误差压在可控范围内。这正补上了此前工作"没说清 MXFP4/6 离群阈值到底设多少"的空白。

2. 排列 + 逐层自适应占比:用通道均值排序换来规整的低误差分组。 由式 \(E(X_j)=\gamma s\) 可知,降误差的本质是降低每个块内的最大值,所以最好把大值聚在一起、小值聚在一起。作者按通道绝对均值 \(M^k_i = \frac{1}{L}\sum_i |X^k_{:,i}|\) 升序排列得到排列 \(\sigma^k\),再用阈值切出各层的占比 \(p_4^k, p_6^k, p_8^k\)。统计 Llama3.1-8B 发现三点:占比逐层动态变化(验证了固定分配不合理)、\(p_4\) 普遍超过 50%(FP4 主导算力)、且占比在不同数据集/采样下高度稳定。正因为稳定,作者把 \(\{p_4^k, p_6^k, p_8^k, \sigma^k\}\) 用标定数据离线预计算,避免在线评估带来的运行时开销。

3. 融合的 reorder-and-quantize 与 MXFP GEMM 算子:让异构精度在硬件上跑得规整。 相邻通道被分到不同位宽后,若直接做混合精度量化会造成不规则访存、开销巨大。MicroMix 仿照 Atom/RPTQ 的思路把同精度通道重排进同一块,但更进一步——把重排和量化融进同一个 kernel(权重的重排+量化可离线一次性完成,激活则在线动态做)。GEMM 侧采用 CUTLASS 的 MXFP GEMM:输出矩阵分块、沿 K 维迭代,把输入片段和 scale factor load 进 Shared/Tensor Memory 后,去量化操作直接融进 MMA 指令在 Tensor Core 上连续执行,FP32 部分和累加进 BFloat16 结果。不同数据类型调用各自对应的 GEMM kernel,类别和比例可灵活调整,去量化几乎零额外开销。

实验关键数据

主实验表格

Llama3.1-8B 与 Qwen2.5-32B 上,与六个基线对比(lm-eval):

模型 方法 Avg.Bits 0-shot 平均(↑) MMLU 5-shot(↑) WikiText2 PPL(↓)
Llama3.1-8B FP16 16.00 73.03 65.24 6.24
QuaRot 4.12 68.00 55.23 6.98
Atom 4.25 68.76 58.05 6.79
FlatQuant 4.19 70.97 61.33 6.95
AMXFP4 5.00 66.34 53.79 7.49
MicroMix 5.51 71.56 62.65 6.72
Qwen2.5-32B FP16 16.00 75.55 83.32 5.02
FlatQuant 4.71 74.72 81.52 5.74
AMXFP4 5.00 73.64 79.96 5.85
MicroMix 5.22 75.20 81.79 5.56

MicroMix 是唯一在两个模型上 0-shot 都保住 ≥98% FP16 精度的方法;MMLU 上至少保 96% FP16,且在 Llama 上比所有对手高 ≥1.32 分。值得注意的是 QUIK、INT6 用了更多比特反而精度更低——高位宽不必然换来高精度。

消融/专项实验表格

  • MoE 模型 (Mixtral-8x7B-Instruct):平均分 78.58→78.20(仅降 0.38),执行时间 5m18s→2m03s。
  • 数学 (Qwen2.5-Math-7B-Instruct,Avg.Bits 5.16):平均 87.2→83.8,GSM8K/MATH/CMATH 保留 ≥98.4% FP16。
  • 代码 (Qwen2.5-Coder-14B/32B):精度与 INT8 相当甚至更好,相对 FP16 退化 ≤1.5%。

关键发现

  • 效率:相比 TensorRT-FP16,算子级在 RTX 5070Ti 笔记本上加速 2.45–2.93×、在 RTX 5090 上 2.29–3.38×;接入 Transformer 后端到端比 FP16 快 1.98–2.02×;在 RTX PRO 6000 上解码吞吐至少是 INT4 基线的 1.82×。
  • 近无损:Qwen2.5-32B(Base 与 Coder)在零样本、代码、数学基准上以约 5.2 比特达到近乎无损。
  • 融合算子几乎零开销:fused reorder+quantize 相比仅做混合精度量化只增加极小延迟。

亮点与洞察

  • 把"该用几比特"变成可计算的误差不等式\(E_{\text{MXFP}\{4,6\}} \le E_{\text{INT8}}\) 反解出阈值 \(T(n)\),让位宽分配从启发式变成有明确判据,且补上了 MX 格式离群阈值的研究空白。
  • 算法红利源于硬件代际更替:作者敏锐抓住 Blackwell 的 FP4 Tensor Core + 原生块缩放支持,让"细粒度分组量化"从精度-开销的痛苦权衡变成真正实用的方案——去量化能直接在 Tensor Core 上做,这是 INT 路线吃不到的结构性优势。
  • 离线可预计算的稳定性\(p_4/p_6/p_8\) 跨数据集稳定这一观测,是把昂贵的在线分组省成离线标定的关键,工程上很务实。

局限与展望

  • 阈值推导以"INT8 误差上界"为锚,本质是把 INT8 当作可接受精度的代理;对那些 INT8 本身就吃力的极端分布,这个锚是否仍成立值得追问。
  • 方法与 Blackwell 的 MXFP Tensor Core 深度绑定,在没有原生 MX 支持的旧架构上收益会大打折扣,通用性受硬件代际限制。
  • 平均约 5.2 比特,相比纯 4 比特方案在存储/带宽上仍有差距;阈值与占比由标定数据离线确定,对标定集分布的敏感性、以及在线分布漂移下的鲁棒性论文着墨不多。

相关工作与启发

  • 权重-激活量化谱系:从 W8A8(LLM.int8、SmoothQuant)到 W4A4(QuaRot、Atom、FlatQuant)的旋转/平滑/裁剪路线,MicroMix 与它们的根本分歧是改用 MX 浮点格式吃 FP4 Tensor Core。
  • 混合精度分配:相比 Atom 的全层固定高精度通道数,MicroMix 的逐层自适应占比是直接改进。
  • MX 格式与算子:AMXFP4 是 MX 路线的对照基线,CUTLASS MXFP GEMM 与 Atom/RPTQ 的通道重排是其算子设计的来源。对后续工作的启发是:算法设计应紧贴硬件数值格式的演进——当硬件原生支持块缩放浮点后,很多"为绕开硬件限制而设计"的旧技巧可以被更直接的方案取代。

评分

  • 新颖性: ⭐⭐⭐⭐ — 把误差不等式反解成显式位宽阈值、并与 Blackwell MXFP 算子协同设计,填补了 MX 训练后量化的空白,思路清晰且切口准。
  • 实验充分度: ⭐⭐⭐⭐ — 覆盖 Llama/Qwen/Mixtral、零样本/数学/代码多任务,且给出三款 Blackwell GPU 的算子级与端到端加速,证据链完整。
  • 写作质量: ⭐⭐⭐⭐ — 动机-方法-实验逻辑顺畅,阈值推导和占比统计有图有据。
  • 价值: ⭐⭐⭐⭐ — 在 Blackwell 普及的当下提供了一条能真正吃到 FP4 算力的实用量化方案,代码开源,落地价值高。