激活随去噪漂,SoloQ 免校准四比特显存压缩 2.61 倍

SoloQ: Calibration-Free Quantization for Diffusion Language Models

Donghyun Lee, Arkapravo Ghosh, Varun Manjunath, Bumjoon Kyle Rhee, Hyunho Kook, Shiting Xiao, Youngeun Kim, Priyadarshini Panda

cs.LG

2026-10-06

SoloQ 用 K-RPBH 旋转把权重和激活映到可预测分布,不采集校准数据就做 W4A4。LLaDA-1.5 九项平均 68.48,FP16 为 69.23;NVFP4 在五种模型上峰值显存最高压缩 2.61 倍,速度最高提到 2.24 倍。

这篇在解决什么

dLLM 每个去噪步都重看整段双向上下文。LLaDA 和 Dream 要把整段再送进网络;Fast-dLLM v2 和 Nemotron-Labs-Diffusion 按块生成,提交过的块留下 KV 缓存。图 1 在 H200 上拆过 Fast-dLLM v2:短上下文显存主要是权重,序列变长后激活和 KV 占比上升,注意力变贵,而且每个去噪步都再付一次。只压权重不够。

激活尺度也在变。掩码比例或去噪步一变,downproj 输入尺度就漂。现有 dLLM 的训练后量化(PTQ,不重训)靠校准样本去拟合这个移动分布。图 1c 里,QuaRot 配 GPTQ 把校准集从 WinoGrande 换成 MMLU,各任务准确率就变。

方法

SoloQ 来自南加州大学 Panda 实验室,耶鲁和高丽大学参与。单位向量做足够随机的旋转后,坐标边缘近似均值 0、方差 1/d 的高斯。码本可以按这个分布预先定好,不必用校准集去估激活统计。NVFP4 的组尺度仍从当前张量读取,只是不再依赖一套固定校准样本。

分块 Hadamard 旋转(RPBH,OrbitQuant 用在图像和视频扩散上)计算便宜,但块间能量一旦分歪就补不回来。Dream-7B 的前馈维是 18944,即 512×37,块数多到这个残留会露出来。K-RPBH 在随机置换和块内 Hadamard 之后,用一个 k×k 随机正交矩阵把各块同一位置的坐标再混一次;k=1 时退回 RPBH。命题 1 给出:该矩阵取 Haar 随机时,每个坐标条件方差的期望是 1/d。Nemotron 的激活上,只有块内旋转时,与目标分布的 KL 为 0.11396,块能量失衡 67.89%;加上置换和跨块混合后,变为 0.00413 和 22.12%。

权重离线旋进这个基,激活在线旋转,再分别量化。

低比特还会把向量压短。尺度修正等于原向量能量除以它和量化结果的内积,用来拉回沿原方向的投影,与之垂直的误差还在。系数并进已有的逐 token 或逐行尺度,矩阵乘的比特数不变。

块扩散只在一块被提交时量化 KV,正在去噪的块保持全精度。Key 用 KIVI 式逐通道非对称量化,Value 走上面的激活路径。

结果

全序列模型的 W4A4,九项平均准确率(%)。三行里最强的校准基线都是 STaR-Quant。

模型FP16STaR-QuantDLLMQuant++SoloQ-CSoloQ-N
LLaDA-Base-8B58.9557.0754.2957.7457.60
LLaDA-1.5-8B69.2366.9364.3167.8268.48
Dream-7B66.5463.5961.9062.0662.53

LLaDA-Base 上,SoloQ-C 比 DLLMQuant++ 高 3.45 分。LLaDA-1.5 上,SoloQ-N 为 68.48,比 DLLMQuant++ 高 4.17 分,FP16 为 69.23。拉开差距的是 GSM8K:LLaDA-Base 上 FP16 为 69.52,SoloQ-C 为 67.78,STaR-Quant 为 57.29;LLaDA-1.5 上 FP16 为 83.47,SoloQ-N 为 81.80,STaR-Quant 为 76.45。代码题方向相反。LLaDA-Base 的 HumanEval,STaR-Quant 为 35.98,高于 FP16 的 31.71,SoloQ-N 为 25.61。Dream 的九项平均仍是 STaR-Quant 更高。

块扩散的生成任务更脆。RTN 和 AWQ 在 W4A4 下几乎归零:Fast-dLLM v2 平均 6.67 和 6.61,Nemotron-8B 为 1.30 和 1.28,FP16 为 60.35 和 78.67。QuaRot 覆盖不了 Fast-dLLM v2 的维度。Nemotron 上 QuaRot+GPTQ 平均 59.39,SoloQ-N 为 70.76,FP16 为 78.67。

模型设置FP16SoloQ-CSoloQ-N
Fast-dLLM v2-7BW4A460.3557.0056.77
Fast-dLLM v2-7BW4A4KV460.3556.1956.21
Nemotron-8BW4A478.6769.7470.76
Nemotron-8BW4A4KV478.6770.1871.06

Nemotron 的掉点集中在 IFEval:从 97.27 到 SoloQ-N 的 60.85(W4A4)和 64.11(再加上 KV4)。同一变体的 GSM8K 从 92.95 到 91.21,MATH 从 85.10 到 81.12。Fast-dLLM v2 把 KV 也压到 4 比特,平均再掉不到 1 分。

NVFP4 相对各自的 BF16:五种模型峰值显存压缩 2.31 到 2.61 倍,端到端速度提到 1.94 到 2.24 倍。SoloQ-N 在 RTX Pro 6000 上用原生 NVFP4 kernel,SoloQ-C 在 H200 上用 8-bit Tensor Core。Nemotron 量化后 EOS 位置变了,2.05 倍是按 BF16 录下的 75 次前向对齐测的。

只把 KV 压到约 3 bit/entry、权重和激活仍是 FP16 时,Fast-dLLM v2 上 SoloQ-N 平均 53.53,KIVI 为 50.26,TurboQuant 掉到 4.03,FP16 为 72.67。

为什么重要

校准集不必再去覆盖每一种掩码和每一个去噪步。权重旋转放在离线,线上多出来的是激活旋转,以及一个并进原有尺度的长度修正。机器上有 NVFP4 时走 SoloQ-N。同一套旋转也吃得下均匀 INT4:SoloQ-I 在 LLaDA-1.5 上平均 67.44,SoloQ-N 为 68.48;Fast-dLLM v2 上为 55.32,FP16 为 60.35。

全序列模型上,相对 STaR-Quant 的领先经常不到 2 分,价值主要在免校准。块扩散上,它是主表里还能做完代码和数学生成的 W4A4。RTN 与 AWQ 接近 0 分,会把这个领先看大。

局限与存疑

局限写在附录 G,正文没有逐条展开。表里已经能核对的边界如下。

Dream-7B 平均分 STaR-Quant 为 63.59,SoloQ-N 为 62.53。摘要里「知识与推理任务上超过校准基线」对得上 LLaDA 的平均分。Dream 的总平均仍然是 STaR-Quant 更高。Dream 的 TruthfulQA 也不好横比:DLLMQuant 和 STaR-Quant 未开源,表注写明对方的 FP16 是 49.76,本设置下是 43.96。

残差流上的旋转可以折进相邻权重,少做在线旋转。量化之后这个等价关系不成立。Fast-dLLM v2 上 SoloQ-C 从 57.00 降到 50.94,SoloQ-N 从 56.77 降到 52.81;LLaDA-Base 的 SoloQ-N 从 57.60 降到 55.30。旋转本身也要时间。Fast-dLLM v2 上一次激活旋转,K-RPBH 为 5.779 ms,稠密 Haar 为 98.135 ms;LLaDA-1.5 上是 0.048 ms 对 0.559 ms。

2.61 倍显存压缩和 2.24 倍速度只属于 SoloQ-N 相对 BF16。码本路径在另一块 GPU 上,走的是 8-bit Tensor Core。ZCU104 FPGA 上,NVFP4 绝对速度 0.252 token/s,BF16 为 0.13,对应 1.94 倍吞吐和 2.70 倍能效。Nemotron 的 block length 和 EOS 策略是自选工作点,与该模型原主表并不对齐。

4 比特 KV 对注意力汇点几乎不敏感。压到 KV2 时,汇点就要留在全精度:Nemotron 的 GSM8K 因此是 82.94,汇点一起量化则是 72.93。正在去噪的块保持全精度,长上下文省下来的主要是已提交的 KV。

术语

原文与代码

相关论文

全部论文解读