Paper Reading Notes · arXiv:2606.13233

ReSET:面向延迟敏感 NVFP4 推理的
步骤感知温度缩放

一篇从"量化后推理精度掉点"与"小 batch 解码延迟失控"两个痛点出发,同时给出解码算法修复与专用 CUDA 核的论文——算法与系统两手抓。
作者:Sihwa Lee*, Janghwan Lee*(共一), Jungwook Choi(通讯)· 汉阳大学 合作:Xenoscube Korean Inc. 论文:arXiv:2606.13233 [cs.LG] 代码:github.com/aiha-lab/ReSET
NVFP4 4-bit 量化 推理模型 LRM 步骤级熵 温度缩放 CUDA-core GEMV B200 / Blackwell
01 · Overview

速览:问题、方案与关键数字

大推理模型(LRM)靠生成超长思维链(CoT)提升准确率,代价是推理成本极高(单题平均生成约 1.2 万 token,可到 6.4 万)。NVFP4 是英伟达 Blackwell 上原生支持的 4-bit 微缩放浮点格式,标称峰值吞吐是 BF16 的约 4 倍、权重体积约 1/4,是"低延迟推理服务"最诱人的杠杆——但直接用,两道坎:

障碍一 · 精度
推理精度掉点量化扰动在长推理轨迹中累积,符号性 token(数字、运算符)的微小采样错误会逐级放大,最终答案错误
障碍二 · 延迟
峰值吞吐兑现不了NVFP4 靠 Tensor Core 拿 4× 吞吐,但 tile 在 token 维固定 M=128;真实服务的 SLO 只允许 M≤8,导致 <1% 利用率
方案 A · ReSET
步骤感知温度缩放不碰权重、不重训,解码期用"步骤级熵"自适应调节采样温度,每 token 开销 ~1.5%
方案 B · 专用内核
CUDA-core 小 M GEMV针对 M=1–8 解码形态的 NVFP4 反量化 + 半精度 FMA 内核,作者称是首个公开实现
一句话概括:ReSET 发现"token 级熵"这个传统控制信号被所在推理步骤的不确定性主导、不可靠,因此把阈值判断改到"步骤级";再补一个与真实解码形态匹配的小 batch 内核,让 NVFP4 的 4× 优势在真正重要的延迟敏感场景里落地。

最有分量的三个数字

02 · Background

背景:为什么 NVFP4 适合但不好用

2.1 NVFP4 到底是什么格式

NVFP4 属于"微缩放 FP4"格式家族:元素本身只有 4-bit(E2M1),靠共享的缩放因子恢复动态范围。和同家族的 MXFP4 相比,NVFP4 的块更细(16 元素一块)、块缩放用 FP8(E4M3)并额外叠加 FP32 全局缩放——低精度 W4A4 下量级校准更稳,这决定了它是英伟达在 B200 上主推的格式:

Table 7:MXFP4 与 NVFP4 两种微缩放 FP4 格式的配置对比(原文附录 A)
FormatElement TypeBlock ScaleGlobal ScaleBlock Size
MXFP4FP4 (E2M1)FP8 (E8M0)32
NVFP4FP4 (E2M1)FP8 (E4M3)FP3216

元素都是 E2M1 的 FP4;MXFP4 块大(32)且块缩放为纯指数格式(E8M0),元数据更紧凑;NVFP4 块小(16)+ 全局 FP32 缩放,精度控制更细,代价是略微多一点的缩放开销。

关于量化精度,论文点了一个重要的反直觉事实:现有 NVFP4 PTQ 方法(旋转、通道缩放、动态块缩放等)全都在压权重量化误差,但 NVFP4 在组大小 16 下权重误差本来就小,这些方法与推理准确率并不干净地相关——与其继续优化误差,不如直接看解码过程本身。这正是 ReSET 的出发点。

2.2 延迟崩塌:4× 优势为什么在最需要的地方消失

推理模型的成本维度是每 token 解码延迟而非聚合吞吐:R1 在 AIME 上平均生成约 12K token(最多 64K),TPOT 直接卡 SLO;再加上 KV-cache 压力、prefill 与 decode 互相干扰、生成停顿,SLO 能容忍的解码 batch 只有 M≤8(B200 上)。而 NVFP4 的 4× 峰值吞吐要靠 Blackwell 的 tcgen05.mma 指令兑现,该指令的 tile 沿 token 维固定为 M=128。下图是这两件事的实证(点击图片可看 300 DPI 原图):

Figure 1: Qwen3-32B 在单张 B200 上 batch 规模受限。(a) TPOT;(b) Tensor Core 利用率
Figure 1:Limited batch-size scaling in Qwen3-32B on a single B200.(a) TPOT at 32K context;(b) Tensor Core utilization of NVFP4 decode GEMMs. 左图:32K 上下文下,TPOT 随解码 batch 增长——代表性 SLO(虚线区)在中等的 batch 就被突破,SLO 可行域被压在 M≤8。右图:在这个区域,NVFP4 解码 GEMM 的 Tensor Core 利用率不到 1%。M=8 时逻辑激活被 pad 成 128 行,只有 6.25% 的行有效。之前的研究大多跑在大 batch 吞吐场景,把这个崩塌藏起来了——本文聚焦的正是 SLO 可行域。

💡 点击任意图片可查看原始高清大图,再次点击或按 Esc 关闭。

核心矛盾:NVFP4 是"吞吐利器",但 LRM 的成本主导维度是"小 batch 解码延迟"。于是全文两条主线展开:解码策略修精度(§3–4)、专用内核修延迟(§5)
03 · Observations

观察:量化错误到底错在哪

作者用 R1-Qwen-14B 在 90 道 AIME(2022–2024)题上生成的 150 万 token 做分析。第一步先把 token 按熵分类:低熵 = 数字、运算符这类"局部没得选"的符号决策;高熵 = "Alternatively" 这类语义灵活的分支点。下图(a)(b)两列就是这两类 token 的典型面孔,而(c)(d)(e)揭示了量化真正做错事的方式:

Figure 2: 低/高熵 token 示例、BF16 与 NVFP4 推理对比、符号位置的概率分布、熵条件温度控制的效果
Figure 2:Example of (a) low- and (b) high-entropy tokens. Example reasoning under (c) BF16 and (d) NVFP4 on R1-Qwen-7B. (e) Next-token probability distribution at the symbolic position in (d). (f) Effect of entropy-conditioned temperature control accuracy (R1-Qwen-7B, AIME 2022-2024). 三个要点:① (a)(b)低熵 token 是"符号",高熵 token 是"分支点";② (c)(d)同一道题,BF16 一路算到 x=73 正确收尾,NVFP4 在某个符号位置采错("three"→"four"),后续推理全部跑偏;③ (e)最关键——量化后正确 token 仍是 top-1,但某个非 top-1 的备选拿到了足够概率质量被偶发采到。错误来自采样层,不是分布主峰翻转

3.1 一个直觉修法:低熵位置降温——但只救回一半

既然错在低熵符号 token 的偶发误采样,最直接的办法就是对这些位置"降温",把分布压尖。用固定阈值 $\tau_0$(取全体 token 熵的 80 分位,约 0.6)把 token 分成两组:低熵组用低温 $T_{\text{low}}$,高熵组用 $T_{\text{high}}$(公式(1))。结果就是上图 (f) 的曲线:

$$T_t = \begin{cases} T_{\text{low}}, & \text{if } H_t < \tau_0 \\ T_{\text{high}}, & \text{if } H_t \geq \tau_0 \end{cases} \tag{1}$$

降 $T_{\text{low}}$(往左看曲线)稳定带来收益,但只能部分恢复准确率;而改 $T_{\text{high}}$ 收益很有限。这说明"低熵 token"这个干预目标找对了,但token 级熵不是正确的控制信号——用固定阈值看单个 token 的熵,会漏判。

3.2 关键发现:token 级熵被所在步骤的不确定性主导

为什么会漏判?作者发现粒度错位:现有熵感知解码在 token 级考虑不确定性,但推理中真正波动的不确定性活在 步骤级。所谓"推理步骤",指一段连贯的中间推理单元(实现上用双换行符 \n\n 切分),步骤熵 = 步内 token 熵的平均。下图是全篇最重要的诊断:

Figure 3: 步骤级熵动态。(a) 步骤熵轨迹;(b) 步骤熵与 token 熵的关系;(c)(d) 低/高熵步骤中的 token 熵分布
Figure 3:Step-level entropy dynamics. (a) Step-wise entropy trajectory. Relationship between step entropy and token entropy for (b) low- and high-entropy groups. Token entropy distributions in representative (c) low- and (d) high-entropy steps. 三点发现: ① (a) 单条轨迹里步骤熵剧烈波动:Step 45≈0.3、Step 70≈0.9——模型在"笃定"与"犹豫"间反复横跳; ② (b) 低/高熵两组 token 的平均 token 熵,都紧紧贴着所在步骤的步骤熵走(slope≈0.86/1.10):同一个符号 token,落在高不确定步骤里,绝对熵就被整体抬高; ③ (c)(d) 后果:低熵步骤里符号 token 在全局阈值之下,固定阈值能正确识别;高熵步骤里符号 token 被抬过 $\tau_0$,被误判为"分支点",跳过本该做的降温——该修的地方漏掉了。

3.3 量化的双向熵效应:既"膨胀"又"塌缩"

再往下挖一层,量化对熵的影响其实是双方向的(附录 B.2 的专门分析):低熵符号 token 的熵被系统性抬高(高不确定步骤里抬得更多)——这就是采样错误变多的直接原因;而极高熵 token($H_t$≥2.0)在高不确定步骤里熵反而下降,典型如 "Alternatively" 这类话语连接词的概率质量被量化压到更少的几个续写上,分支多样性被吃掉。这两个效应合起来,给后面的温度策略提供了完整依据:$T_{\text{low}}$ 压掉"假不确定性",$T_{\text{high}}$ 还回"被压缩的多样性":

Figure 8: 量化下的熵偏移(左)不同 token 熵区间的均值熵偏移;(右)代表性高熵 token 熵升/降概率
Figure 8:Entropy shift under quantization. (left) Mean entropy shift $\Delta H$=HPTQ − HFP16 across token entropy bins under low- and high-uncertainty steps. (right) Probability of entropy increase or decrease for representative high-entropy tokens under PTQ. 左图:低熵区间的 $\Delta H$ 系统性为正(熵膨胀),且高不确定步骤下抬得更高;极高熵区间($H_t$≥2.0)的 $\Delta H$ 在高不确定步骤下转为负(熵塌缩)。右图:以 "Alternatively" 为代表的高熵话语 token,在量化后更常出现熵缩减。这解释了为什么第 4 节的 $T_{\text{high}}$ 必须高于默认温度。
诊断结论:符号 token 的信号本身没错,错的是没有相对当前步骤来读取它——必须从 token 级熵升级到步骤级(步骤相对)熵。
04 · Method

方法:ReSET 的温度策略

ReSET = Reasoning Step Entropy-based Temperature scaling,两个组件:步骤感知阈值(SAT,§4.1)与在线步骤熵估计器(HSE,§4.2)。下面用原文 Figure 4 把整个判定流程走一遍:

Figure 4: (a) ReSET 在 R1-Qwen-14B AIME-120 轨迹上的温度分配;(b) 各在线步骤熵估计器相对离线 oracle 的 MAE
Figure 4:(a) ReSET temperature assignment on an R1-Qwen-14B AIME-120 trace. (b) Mean absolute error of online step-entropy estimators against the offline oracle of Sec. 3.3. (a) 完整展示 ReSET 的判定链:❶ 估计步骤熵 $\hat{H}_{\text{step}}$ > 全局均值 $\bar{H}$ → 判为高熵步骤;❷ 阈值改为 $\tau$ ← $\hat{H}_{\text{step}}$;❸ 单个 token 熵 $H_t$ < $\tau$ → 判为低熵 token;❹ 分配低温 T ← $T_{\text{low}}$。图中符号 "7" 越过了全局 $\tau_0$ 但仍低于本步 $\hat{H}_{\text{step}}$,被 SAT 正确识别并降温——这正是固定阈值漏掉的情形。

4.1 步骤感知阈值(Step-aware Threshold, SAT)

固定阈值只在一种情况下失手:高不确定步骤。因此把阈值改为"全局运行均值 $\bar{H}$ 对比 在线步骤熵估计 $\hat{H}_{\text{step}}(t)$"的择一选择:

$$\tau_t = \begin{cases} \tau_0, & \text{if } \hat{H}_{\text{step}}(t) \leq \bar{H} \; (\text{confident step}) \\ \hat{H}_{\text{step}}(t), & \text{if } \hat{H}_{\text{step}}(t) > \bar{H} \; (\text{uncertain step}) \end{cases} \tag{2}$$

为什么笃定步骤不能也走"步骤相对"路线?因为在笃定步骤里 $\hat{H}_{\text{step}}$ 退化得极小,相对阈值会反过来误伤正常符号 token——论文在附录里专门用下图说明了这个"退回分支"的必要性:

Figure 7: 只用 H_step 会误判低熵 token 的示意图
Figure 7:Using Hstep only can misclassify low-entropy tokens. 如果全程用步骤相对阈值($\tau$ = $\hat{H}_{\text{step}}$),在笃定步骤中 $\hat{H}_{\text{step}}$ 退化得很小,典型符号 token 的熵可能高于它,被误标为"高熵"而不降温。所以 SAT 在笃定步骤必须回退到全局 $\tau_0$,二者缺一不可。

4.2 在线步骤熵估计(Online Step-Entropy Estimation, HSE)

SAT 在每个解码位置都需要 $\hat{H}_{\text{step}}(t)$,但第 3 节的离线定义要平均"还没生成的 token",不满足自回归的因果性。难点在于步内有两种相反的偏差-方差权衡:步中后段,步内运行平均偏差最低(而且图 4b 显示它稳定优于 EMA——说明"步边界"比"时间近因"信息量大);步开头 w 个位置,样本太少且常是"步开场"话语 token,用最近 w 个 token 的滑动窗口初始化,容忍一点跨步偏差换方差。混合估计器:

$$\hat{H}_{\text{step}}(t) = \begin{cases} \frac{1}{|W_t|} \sum_{i \in W_t} H_i, & \text{if } t - t_0 < w \; (\text{initialization}) \\ \frac{1}{t - t_0 + 1} \sum_{i=t_0}^{t} H_i, & \text{if } t - t_0 \geq w \; (\text{within-step}) \end{cases} \tag{3}$$

图 4b 的横轴正是这几条曲线的对比:窗口初始化(Init)在步前段显著降低方差,步内平均(Causal)在后期偏差最低,EMA 两者都不占优。

4.3 温度与校准

Table 8:各模型的全局熵阈值 $\tau$(80 分位,附录 B.5:用 NuminaMath-1.5 随机抽 5 题生成响应后统计)
ModelR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32B
$\tau$0.64460.64880.55050.48630.5363

$\tau_0$ ≈ 0.5–0.65:Qwen3 系列的熵分位略低,与模型自身输出习惯相关;部署时无需任务级数据即可标定。

每 token 的计算量:一次熵归约 + 两次标量更新($\hat{H}_{\text{step}}$、$\bar{H}$)+ 一次分支——相比完整解码步可忽略,具体开销计入第 6 节的端到端测量。

直觉类比:固定阈值像"全公司统一报销标准";ReSET 像"按部门平均工资定标准"——在大家都很有钱(高不确定)的部门,一个中等的开销也得按本部门标准审。量化把"本应确定的符号"变得不确定时,按步骤内部的标准去甄别才能不漏判。
05 · System

系统侧:CUDA-core 小 M 解码内核

5.1 为什么 Tensor Core 在小 M 下低效(配 Figure 5a)

第 2.2 节已经看到<1% 的利用率,机制在这里:Blackwell 的 NVFP4 GEMM 路径(vLLM / CUTLASS / MR-GPTQ)都走 tcgen05.mma,tile 沿 token 维固定 M=128。看 figure 5a:逻辑激活 X∈ℝM×K 无论 M 是多少都要被填充(pad)成 128×K,只有 M 行输出是真正有用的——M=8 时 6.25% 的 tile 是有效行,其余全是"浪费输出"。吞吐导向的框架靠上千的大 batch 把填充摊薄,但 SLO 可行域里优势归零。

Figure 5: (a) Tensor Core 固定 M=128 tile 的浪费;(b) CUDA-core 内核的三个设计选择
Figure 5:CUDA-core NVFP4 kernel design for small-M decoding. (a) Tensor-Core GEMM underutilization from the required 128-row M tile. (b) CUDA-core design choices. (a) 左:逻辑形状 M×K → 被填充为 128×K → 输出 128×N,浪费面积一目了然(BLOCK_M=128 / Wasted Output / Padded)。(b) 右:三个设计选择——① 多 token CTA 融合:一个线程块服务多个解码 token,权重瓦片只流式加载一次;② 每线程多累加器:两条权重行 + 两条独立 hfma2 累加链提供指令级并行;③ 纯寄存器反量化:K 迭代里 CVT/MUL/FMA 重叠,不经过共享内存。

CUDA-core 路径可以在线程级灵活暴露 M,不需要固定 tile——但现有框架并没有 NVFP4 的 CUDA-core 实现,这个空白正是本文要填的。要攻克的难点有三个:(C1) 复用流式加载的权重瓦片——所有 token 共享同一个 W,逐个 token 处理会把同一块权重反复从 HBM 拉取;(C2) 足够的并行线程与独立累加链——朴素映射会让 half2 FMA 沿 K 串成一条依赖链,小 M 下 CUDA core 空转;(C3) FP4 解包 + 共享缩放反量化既不能落地到中间 buffer,也不能在内层 K 循环里插同步。

5.2 三个设计选择如何逐一解决 C1–C3

运行时调度:M=1–2 恒用 CUDA-core 核;M≥128 走自研 Tensor-Core GEMM;中间形状按 (M, shape) 实测延迟二选一。因为 vLLM 按 batch 大小抓 CUDA graph,选择在抓图时固定,回放零分支开销。

5.3 两个关键量化收益

Table 3:Qwen3-32B 上 M=1 时各层投影流水线延迟(µs,↓)。Q:激活量化;R:旋转。
Layer TypevLLMMR-GPTQOurs
QGEMMQ+RGEMMQGEMV
QKV1.8113.414.6511.841.656.62
Out2.0412.404.8711.901.817.73
Gate-Up1.8325.894.5525.901.6713.25
Down2.8033.265.0833.871.7915.00

旋转融合激活量化(Q+R)在 M=1 时每层要 4.55–5.08µs,约为普通激活量化(Q)的 2.3 倍;本文流水线吃非交错缩放布局,激活量化保持在 1.65–1.81µs,投影主体 GEMM→GEMV 后延迟砍半以上。

第一,量化开销是被减少而不是被增加。MR-GPTQ 这类旋转方案的代价是解码步里每层多花 2.3× 的激活量化时间;ReSET 体系里 CUDA-core 核吃非交错缩放布局、ReSET 采样器本身又不做旋转,所以从系统层面直接省掉了这笔开销(Table 3)。第二,M=1 的投影延迟全面优于 vLLM(Table 4,见下节)。设计选择的贡献量在附录 C 里做了消融——C1(CTA 融合)随 M 增大越来越重要,C2(多累加器)在 M=1 也有效:

Table 14:CUDA-core 小 M 内核消融(Qwen3-32B down_proj,N=5120,K=25600,µs,B200 + CUDA-graph 回放)
ConfigM=1M=4M=8
Ours: full kernel (C1+C2+C3)15.027.558.3
without C1 (no CTA fusion)15.335.970.9
without C2 (single-row threading)16.832.464.6
without C1 and C218.739.476.5

C1 在 M=8 时把 70.9µs 拉回 58.3µs(权重瓦片复用);C2 在 M=1 时也有 1.8µs 的收益(ILP);两者都去掉则 M=8 慢 1.31×。C3 因会改变内核流水结构(共享内存分配、同步位置、流水深度)而不做单独消融。

06 · Experiments

实验:精度与延迟的完整证据

6.1 设置

6.2 精度:ReSET 主导 PTQ 前沿(配 Table 1)

主结果是下表:三个 benchmark × 五种方法 × 五个模型,ReSET 在每一个 benchmark 的平均分上都排第一,且是唯一在每个任务上都超过 RTN 基线的方法:

Table 1:与 NVFP4 PTQ 方法在推理 benchmark 上的对比(加粗行为 ReSET)
TaskMethodR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
AIME-120BF16 Baseline45.757.470.476.175.865.1
RTN39.652.462.570.474.459.9
BRQ41.449.853.866.973.057.0
4/641.153.164.070.174.860.6
MR-GPTQ39.650.665.271.073.360.0
ReSET43.854.064.972.177.562.5
GPQA-DiamondBF16 Baseline48.358.454.461.364.157.3
RTN47.153.750.757.462.854.3
BRQ45.556.753.558.260.855.0
4/644.655.451.957.664.654.8
MR-GPTQ43.457.452.460.960.654.9
ReSET46.057.653.258.562.955.6
LiveCodeBenchBF16 Baseline28.238.543.246.549.941.3
RTN29.537.136.446.746.539.2
BRQ27.637.736.239.045.137.1
4/627.036.435.845.345.738.0
MR-GPTQ27.234.942.947.245.139.5
ReSET28.437.942.146.146.740.2

几个值得注意的细节: 先进 PTQ(BRQ、4/6、MR-GPTQ)在大模型上并不稳定超过朴素 RTN(如 AIME-120 上 MR-GPTQ 只在 Qwen3 系列略好、R1 系列反而不如 RTN),佐证了"NVFP4 下再压权重误差收益甚微"的判断; ReSET 的最大增益在 AIME-120:AIME 平均 +2.6(Qwen3-32B +3.1、R1-Qwen-7B +4.2),而且 Qwen3-32B 的 77.5 反超了 BF16 基线(75.8)——温度策略不仅补偿量化损失,还顺带改善了采样; GPQA / LiveCodeBench 的绝对提升相对温和(平均 +1.3 / +1.0),但仍是全基线最优。

6.3 打败 token 级启发式(配 Table 2、Table 5、Table 6)

先看阈值机制本身的贡献。在相同解码设置下对比三种阈值策略:固定阈值(公式 1)、滑动窗口阈值、ReSET——差异只在"熵阈值怎么定":

Table 2:不同温度缩放方法在 AIME-120 上的对比(AIME-120,↑)
MethodR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
BF1645.757.470.476.175.865.1
NVFP439.652.462.570.474.459.9
Fixed Threshold41.853.263.370.375.860.9
Sliding Window42.651.363.370.676.460.8
ReSET43.854.064.972.177.562.5

固定阈值与滑动窗口对 NVFP4 的提升不稳定(Fixed Threshold 在 Qwen3-14B 上反而 -0.1),ReSET 在每个模型上都是最优——验证"步骤相对熵"才是有效信号。

再看"截断式采样"是否也能替代。有人会问:直接把 top-p 或 min-p 参数扫一遍不就行了?下表是 T=0.6 固定下扫描的结果——top-p 平均只从 59.9 微动到 60.3 封顶,min-p 系列全面低于基线(58.2–59.4):

Table 5:与截断式采样方法的对比(AIME-120)
MethodTTop-pMin-pR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
NVFP4 Baseline0.60.950.039.652.462.570.474.459.9
NVFP4 +
Top-p Sweep
0.60.800.041.049.561.070.174.359.2
0.8539.750.663.370.274.559.7
0.9040.252.463.071.274.560.3
0.9938.453.963.669.675.260.1
1.0040.152.663.970.773.660.2
NVFP4 +
Min-p Sweep
0.60.950.0139.852.461.268.774.859.4
0.0340.349.760.670.074.559.0
0.0538.750.258.570.273.358.2
0.1041.051.257.669.873.358.6
ReSETReSET0.950.043.854.064.972.177.562.5

ReSET 把表 5 的 T=0.6 固定条件放开为自适应温度,全面超过所有截断组合——证明问题在"熵控制"而非"分布截断"。

最后验证"选择性降温"而非"一刀切"。既然低不确定步骤也要管,那对这些步骤里的所有 token 一律用 $T_{\text{low}}$ 会不会更好?答案是否定的(Table 6):

Table 6:低熵步骤策略消融(AIME-120):对低不确定步骤全体 token 降温 vs ReSET 只对步内低于 $\tau_0$ 的 token 降温
PolicyR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
All $T_{\text{low}}$40.651.265.172.074.160.6
ReSET43.854.064.972.177.562.5

均匀降温(60.6)比 NVFP4 基线(59.9)只好 0.7 分,而选择性降温(62.5)好 2.6 分:低不确定步骤里并非所有 token 都严格确定,一刀切会压掉合法备选。

6.4 延迟:从内核到端到端(配 Table 4、Figure 6)

内核级。先是 M=1 的逐投影对比(Table 4):12 种投影形状全部快于 vLLM-CUTLASS,1.57–2.49×,最大增益出现在 Qwen3-8B 的 down-projection(N=4096, K=12288)。K 越大的层(如 Gate-Up/Down)加速越明显,因为它们更受"填充浪费 + 权重流式加载"的影响:

Table 4:Qwen3 各投影在 M=1 的内核延迟(µs,↓)。行依次为 QKV、Out、Gate/Up、Down。
Qwen3NKvLLMOursSpeedup
8B614440968.694.282.03×
409640967.693.752.05×
12288409611.456.401.79×
40961228816.616.662.49×
14B7168512010.795.531.95×
512051209.084.641.96×
17408512014.939.491.57×
51201740823.7710.352.30×
32B10240512013.416.622.03×
5120819212.407.731.60×
25600512025.8913.251.96×
51202560033.2615.002.22×

端到端。下面这张图把内核收益放进完整服务流看:B200 上、512 token 输入、输出最长 32K,对比 BF16、vLLM-CUTLASS、vLLM-FlashInfer 与本文方案(Batch=1 和 8):

Figure 6: Qwen3-8B 与 Qwen3-32B 相对 BF16 的端到端加速比(512 token 输入)
Figure 6:E2E speedup over BF16 for (a) Qwen3-8B and (b) Qwen3-32B with 512-token inputs. 横轴输出长度(1K–32K),纵轴相对 BF16 的延迟加速比(1.0×–2.0×),分 Batch=1 / Batch=8 两列;三条线对比 BF16、vLLM-CUTLASS、vLLM-FlashInfer 与 Ours。读数:Qwen3-8B 在 B=1、输出 8K 时 1.69× over BF16、1.22× over 最强 NVFP4 基线;Qwen3-32B 达 1.97×(B=1)、1.85×(B=8)。且这些数字已包含 ReSET 采样器每 token ~100µs(约 1.5%)的完整开销——说明采样策略几乎没有侵蚀内核带来的延迟收益。

6.5 超参鲁棒性(配 Table 9/10/13)

最后是三个超参的敏感性证据,结论一句话:都不敏感。窗口大小 w 从 16 到 128,平均分只波动 1.1 分(w=32 最优,过大窗口会糊掉步骤局部统计);$T_{\text{low}}$ 在 0.1–0.4 之间只波动 0.4 分;$T_{\text{high}}$ 则是"越大越好、到 1.0 封顶"的一致趋势——这正好呼应熵塌缩分析:量化压缩了多少多样性,就用升高的 $T_{\text{high}}$ 还回去多少:

Table 9:混合估计器滑动窗口大小 w 的敏感性(AIME-120,默认 w=32)
wR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
1644.953.965.770.376.762.3
3243.854.064.972.177.562.5
6444.554.463.572.075.161.9
12843.252.064.771.875.361.4
Table 10:$T_{\text{low}}$=0.1 固定时,不同 $T_{\text{high}}$ 下的 AIME-120(默认 $T_{\text{high}}$=1.0;无 Avg 列)
$T_{\text{high}}$R1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32B
0.6 (Baseline)39.650.961.971.474.9
0.739.851.664.370.674.1
0.840.454.864.573.774.9
0.943.854.564.671.175.3
1.0 (Default in ReSET)42.052.964.970.977.5
Table 13:$T_{\text{high}}$=1.0 固定时,不同 $T_{\text{low}}$ 下的 AIME-120(默认 $T_{\text{low}}$=0.1)
$T_{\text{low}}$R1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
0.142.052.964.970.977.561.6
0.242.752.964.370.775.761.2
0.341.454.064.172.175.661.4
0.443.852.264.871.275.461.5

三张表合计:默认配置 (w=32, $T_{\text{low}}$=0.1, $T_{\text{high}}$=1.0) 附近性能平坦,部署无需精细调参。

07 · More Analysis

补充分析:困惑度、与 GPTQ 叠加、小/大 M 内核

7.1 困惑度视角:为什么再压权重误差没意义(配 Table 11)

如果 NVFP4 的采样问题如此突出,那为什么常见 PTQ 手段在推理任务上帮不上忙?WikiText-2 困惑度给出一个侧面答案:RTN 与 4/6、BRQ、MR-GPTQ 的困惑度差距在 0.1–1.0 之间,全部远小于 BF16↔RTN 的量化鸿沟(R1-7B 上 25.07→26.23)。NVFP4 下权重误差已经小到"再压也没意义"的地步——推理精度问题的根源在解码采样,不在权重重构:

Table 11:各方法在 WikiText-2 上的困惑度对比(↓;RTN/4/6/BRQ/MR-GPTQ 均为 NVFP4)
Bit-PrecisionMethodR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32B
BF16Baseline25.078.919.728.657.61
NVFP4RTN26.239.5010.108.918.01
4/626.199.4910.088.867.98
BRQ27.009.8110.359.538.17
MR-GPTQ27.489.6410.068.957.81

7.2 ReSET 与 GPTQ 叠加吗(配 Table 12)

有人会想:ReSET 加在 RTN 上就能追上先进 PTQ,那把 ReSET 直接叠到 GPTQ 上会不会更强?结论是不会(Table 12):除了 LiveCodeBench 平均 +1.0 之外,其余基本打平或略降(如 AIME-120:62.5 → 61.6)。作者的猜测:GPTQ 的纠错作用是"压低低熵 token 的非 top-1 概率",而 ReSET 的温度机制已经在做同一件事,两者功能重叠、收益互相吸收——这也再次说明 ReSET 是 PTQ 之上"便宜的最后一公里",不需要再叠昂贵的重建优化:

Table 12:ReSET 叠加 GPTQ 的对比(†:ReSET applied on top of GPTQ)
TaskMethodR1-Qwen-7BR1-Qwen-14BQwen3-8BQwen3-14BQwen3-32BAvg
AIME-120RTN39.652.462.570.474.459.9
ReSET43.854.064.972.177.562.5
ReSET†41.953.565.072.476.161.6
GPQA-DiamondRTN47.153.750.757.462.854.3
ReSET46.057.653.258.562.955.6
ReSET†44.457.452.259.664.355.6
LiveCodeBenchRTN29.537.136.446.746.539.2
ReSET28.437.942.146.146.740.2
ReSET†29.537.343.846.748.841.2

7.3 小 M 与 M=128 的内核全景(配 Table 15/16)

正文只报了 M=1,这里补全另外两个运行形态(附录 C):M=4/8 时 CUDA-core 核仍全面领先(1.19–1.66×,24 个组合全部更快);M=128(Tensor-Core tile 被充分占用)时,自研 GEMM 相对 vLLM-CUTLASS 仍有 1.00–1.34× 的优势。换句话说,整个 M 轴的调度图谱都是正的:

Table 15:小解码 batch(M=4/8)的逐层延迟(µs,↓)。Ours = CUDA-core 小 M 核与 Tensor-Core GEMM 核中较快者。
ModelLayerNKvLLM M=4Ours M=4SpeedupvLLM M=8Ours M=8Speedup
Qwen3-8Bqkv_proj614440968.326.181.35×8.056.011.34×
o_proj409640967.476.001.25×7.425.811.28×
gate/up_proj12288409610.348.671.19×10.358.261.25×
down_proj40961228816.0511.571.39×15.4911.621.33×
Qwen3-14Bqkv_proj7168512010.927.401.48×10.097.421.36×
o_proj512051209.096.881.32×8.666.811.27×
gate/up_proj17408512014.8811.211.33×13.5911.191.21×
down_proj51201740823.5815.401.53×22.2215.021.48×
Qwen3-32Bqkv_proj10240512013.508.431.60×11.958.451.41×
o_proj5120819212.319.311.32×11.929.461.26×
gate/up_proj25600512026.0817.511.49×23.1417.331.34×
down_proj51202560034.1420.541.66×31.9420.561.55×
Table 16:M=128 时自研 NVFP4 Tensor-Core GEMM 的逐层延迟(µs,↓)
ModelLayerNKvLLM (µs)Ours (µs)Speedup
Qwen3-8Bqkv_proj6144409613.7611.361.21×
o_proj4096409613.7911.231.23×
gate/up_proj12288409618.8514.781.27×
down_proj40961228818.9114.821.28×
Qwen3-14Bqkv_proj7168512013.8911.301.23×
o_proj5120512013.7911.521.20×
gate/up_proj17408512020.9318.691.12×
down_proj51201740825.0618.881.33×
Qwen3-32Bqkv_proj10240512018.9114.941.27×
o_proj5120819216.8612.741.32×
gate/up_proj25600512025.0624.991.00×
down_proj51202560033.2524.801.34×

M=128 是 Tensor-Core 主场:本文 GEMM 依然不差于 vLLM-CUTLASS,唯一打平的是 Qwen3-32B gate/up(1.00×);整体 1.12–1.34×。

08 · Commentary

局限与点评

作者自陈的局限(附录 D)

可取之处

值得商榷之处

一句话评价:这是一篇"工程品位很好"的论文——诊断扎实、干预轻量、系统闭环,数字口径诚实;短板在对比公平性(温度差异混入)与步骤定义的粗糙,但都不影响其核心洞察("读熵要按步骤语境来读")的成立。对做量化推理部署的同学,ReSET 是低成本高回报的参考实现。
09 · Glossary

术语速查

阅读中遇到缩写,可随时回到这里;正文里的缩写也都可以悬停查看释义。

阅读术语表(正文中带虚线下划线的缩写悬停可见)
缩写全称一句话解释
LRMLarge Reasoning Model靠生成长思维链解题的大模型,如 DeepSeek-R1、Qwen3
CoTChain-of-Thought思维链:解题前先生成一步步推理过程
NVFP4NVIDIA FP4 (microscaled)Blackwell 原生 4-bit 格式:FP4 元素 + 组内共享缩放
W4A4Weight 4-bit / Activation 4-bit权重与激活都量化为 4-bit 的推理模式
PTQPost-Training Quantization训练后量化:不重训,直接量化权重/激活
RTNRound-To-Nearest最朴素的"就近舍入"量化基线
BRQ / 4-6 / MR-GPTQ三种先进 PTQ 基线:块旋转 / 自适应块缩放 / 重建式
SLOService Level Objective服务质量目标,如"单 token 延迟 ≤ 某值"
TPOTTime Per Output Token每生成一个输出 token 的耗时,延迟关键指标
KV cacheKey-Value cache缓存历史键值对,避免重复计算,吃显存
Tile / MTensor-Core tileTensor Core 每次矩阵乘的最小块,本文 token 维固定 M=128
GEMV / GEMMMatrix-Vector / Matrix-Matrix向量×矩阵(解码)与矩阵×矩阵(prefill/大 batch)
CTACooperative Thread Array协作线程数组,即一个线程块
ILPInstruction-Level Parallelism指令级并行:多条独立指令同时执行
Perplexity困惑度语言模型对文本的"惊讶程度",越低越好