QuaRot:用随机 Hadamard 旋转消除离群,权重 / 激活 / KV 缓存全 4bit 的端到端推理
本页为第 9 篇(解码加速与量化类)。定量内容取自本地论文 PDF 09_QuaRot_2404.00456.pdf(arXiv:2404.00456v2,NeurIPS 2024,共 21 页)并逐条标注 PDF 页码;全部 21 页已渲染原页逐项目检(表 1-17、图 1-7、公式 1-14 均回原页核对),一处关键提取错误已按原页更正(见 #evidence 与 sources/quarot.evidence.json)。
快速标签与阅读说明
- 生命周期:推理(权重量化 + 激活量化 + KV 缓存量化)
- 形态:离线旋转变换 + 在线量化路径 + 自研 CUDA 内核(GPTQ 需校准)
- 目标硬件:消费级 GPU(效率实验口径:NVIDIA RTX 3090,第 7-8 页);校准在单卡 A100
- 核心资源:算力(INT4 TensorCore)· 显存(权重 + KV 缓存)· HBM 带宽(解码 KV 搬运)
- 证据状态:P(论文,21 页全量原页核验)+ R(官方仓库 2026-09-15 在线核验)+ E/I
最后核验日期:。证据完整度:论文全部 21 页逐页渲染原页目检,摘要、贡献、方法四阶段(Stage 1a-1d、2a-2c)、表 1-17、图 1-7、公式 (1)-(14) 均逐项核对;发现并更正一处文本提取错误(正文的「每层 1½ 次 Hadamard」被提取成「11」);论文结论章「3.39× 显存节省」与引言(§1 贡献列表)/§5.2 的 3.89× 不一致,属论文原文笔误,页面照录不作调和。TTFT/TPOT 绝对值、整模型端到端吞吐、云价格论文未披露,页面写「论文未明确披露」。
证据标签图例: P=论文 R=仓库 E=外部资料 I=编辑推断
1. 摘要与一句话判断
| 题名 | QuaRot: Outlier-Free 4-Bit Inference in Rotated LLMs(编辑译名:QuaRot——旋转 LLM 中的无离群 4bit 推理) |
|---|---|
| 作者 / 机构 | Saleh Ashkboos(ETH Zurich)、Amirkeivan Mohtashami(EPFL)、Maximilian L. Croci(Microsoft Research)、Bo Li(ETH Zurich)、Pashmina Cameron(Microsoft)、Martin Jaggi(EPFL)、Dan Alistarh(ISTAustria & Neural Magic)、Torsten Hoefler(ETH Zurich)、James Hensman(Microsoft Research)(第 1 页) |
| 发表 | NeurIPS 2024(38th Conference on Neural Information Processing Systems,第 1 页页脚);arXiv:2404.00456v2,2024-10-29;本地 PDF 09_QuaRot_2404.00456.pdf(21 页)P |
| 代码 | 摘要末句印明 github.com/spcl/QuaRot(第 1 页)R;2026-09-15 在线核验:仓库存在,默认分支 main、HEAD 5008669b08c1f11f9b64d52d16fddd47ca754c5a(2024-11-26)、Apache-2.0、无 tag(见 #links) |
| 评估范围 | 模型:LLAMA-2 家族(7B/13B/70B,语言生成 + 零样本);附录另有 LLAMA-3(8B/70B)与 Phi-3-mini-4k-instruct(第 7、16-17 页);任务:WikiText-2 困惑度、LM Evaluation Harness 六项零样本(PIQA、WinoGrande、HellaSwag、Arc-Easy、Arc-Challenge、LAMBADA)P |
| 实验硬件 | 性能实验:NVIDIA RTX 3090(论文定位消费级 GPU,第 7-8 页);GPTQ 校准/权重修改:单卡 NVIDIA A100(70B 修改约 5 分钟 + GPTQ 约 2 小时,第 7 页);精度评测的 GPU 型号:论文未明确披露 P |
3 分钟速读
- 问题:推理的 prefill 阶段 compute-bound,联合量化(权重 + 激活 + KV)才能同时省计算与显存;但激活含大量离群元素、比权重难量化得多(第 1 页,图 1 第 2 页)P。此前的 4bit 方案都要「养」高精度离群通道:QUIK 保留 256 个离群特征、down-proj 留 8bit,Atom 保留 128 个并配混合精度内核(第 2-3、8 页)P。
- 关键观察:对隐藏状态乘一个随机 Hadamard 正交矩阵,离群被「摊平」到所有通道(图 1:LLAMA2-7B 第 10 层 FFN 输入,旋转前 ±0.4 级尖峰、旋转后无离群)P;由计算不变性(SliceGPT 定理),权重侧的旋转可被输出侧的逆旋转精确抵消——RMSNorm 按范数归一、对旋转不敏感(第 4 页式 3)P。
- 两阶段:Stage 1 离线(全精度、输出不变):融合 RMSNorm 缩放与全局旋转进权重、FFN down-proj 前插一次在线 Hadamard、value/out 投影融合 head-wise Hadamard、query/key 在 RoPE 后做在线 head-wise 旋转(Post-RoPE 缓存);Stage 2 在线量化(唯一误差来源):权重默认 GPTQ、激活对称 per-token RTN(clip 0.9)、KV 非对称分组量化(组 128、clip 0.95)(第 4-7 页)P。
- 精度:4bit(W4A4KV4)LLAMA2-70B:PPL 3.32→3.79(损 0.47)、零样本均值 77.07→75.98(保留 99%);7B/13B 损 0.63/0.52、平均分损至多 4.18%;6/8bit 用纯 RTN 免校准即「无损」(INT8 完全保持 FP16)(第 1、7-9 页表 1-3)P。
- 性能与边界:RTX 3090 单 Transformer 块:prefill(TTFT)加速 7B 1.97×~2.16×、70B 至多 3.33×(序列 2048,batch 64,图 4 左);解码峰值显存至多 3.89×(batch 16,图 4 右);4bit 线性层内核 3.2×/4.3×(batch 1,Hadamard 在内),Hadamard 开销至多约 7%;但 batch≤8 时 INT4 KV 解码比 FP16 慢(表 15),LLAMA-3 8B 4bit PPL 6.14→8.16(表 11)P;整模型端到端吞吐、TTFT/TPOT 绝对值:论文未明确披露I(口径核对)。
2. 问题背景
瓶颈与动机:LLM 推理消耗大量计算、显存与能耗,尤其 prefill 阶段要处理长 prompt 并逐层写入缓存;prefill 已知是 compute-bound(引 Ashkboos et al., 2023),因此联合量化——降参数与 KV 缓存(省显存)的同时也降输入(激活)精度、让前向本身跑在低位宽——才有意义(第 1 页)P。
核心障碍=激活离群:激活中有少数维度幅值远大于其余元素(图 1:LLAMA2-7B 第 10 层 FFN 块输入,HuggingFace 默认权重下纵轴可见 ±0.4 级尖峰),使激活量化远难于权重量化,4bit 下尤其如此(第 1-2 页)P。keys 中同样存在离群(引 KVQuant、KIVI,第 6 页)P。
既有路线及其代价:P(第 2-3 页)①weight-only 量化(GPTQ 等):权重低位宽存储、计算前反量化,主计算仍是高精度,不降计算量;②保守离群通道:LLM.int8() 推理时把离群特征留 16bit(性能差);SmoothQuant 用校准集缩放因子、只解决 8bit 且引入额外超参;4bit 下 Atom 为离群存在设计复杂混合精度 MatMul 内核、保留 128 个离群特征,QUIK 保留 256 个、把 down-projection 留 8bit;③旋转思路:QuIP/QuIP# 已把旋转(incoherence processing)用于 weight-only 量化,但每个权重矩阵的 forward 需要两次 Hadamard 变换;④KV 量化线:FlexGen(Sheng et al., 2023)4bit 分组 KV、KVQuant 3bit、KIVI 2bit,均需特征维分组、非均匀表示、高精度离群等复杂技巧处理 key 离群。
目标工作负载与约束:端到端 4bit(权重 + 激活 + KV 缓存)且不留任何高精度通道;方法面向消费级 GPU——全部性能实验在 RTX 3090 上做(第 1 页摘要、第 7-8 页)P。
基线口径:精度基线为同模型 FP16;性能基线为 FP16 实现(prefill 加速、解码峰值显存均相对 FP16)(第 7-9 页)P。I 因此论文数字回答的是「QuaRot 比 FP16 强多少 / 损多少」,不回答「与 KIVI/QServe 等其他方案比谁优」——本页不做跨论文数字比较。
3. 核心机制
3.1 数学原语:Hadamard 旋转与 incoherence processing
正交矩阵 Q 满足 QQ⊤=I;Hadamard 矩阵是元素取 {+1,−1} 的正交矩阵;Walsh-Hadamard 矩阵按 H₂ = (1/√2)·[[1,1],[1,−1]]、H_{2ⁿ}=H₂⊗H_{2ⁿ⁻¹} 递归构造(式 1),其矩阵-向量积用快速 Walsh-Hadamard 变换在 O(d log₂(d)) 完成P(第 3 页;提取文件的 log 下标 2 脱落,已按原页核正)。d 不是 2 的幂时,分解 d=2ⁿ·m(m 取已知 Hadamard 阶,Sloane [2024] 列表)用 Kronecker 构造 H_d=H_{2ⁿ}⊗H_m,计算代价 O(d(m+n))P。随机 Hadamard 取 H̃=H·diag(s)(s 为 {+1,−1} 随机向量),仍是正交矩阵P。
「μ-incoherent」指 max(W) ≤ μ‖W‖_F/√(mn)(式 2)——最大元素相对平均幅值过大即难量化;QuIP(Chee et al., 2024)证明左右乘正交矩阵可降 incoherence。QuaRot 采纳该技术但前向加的算子更少,且把 incoherence processing 同时施加到激活上(图 1)P(第 3 页)。
3.2 计算不变性:为什么旋转是「免费」的
计算不变性定理(SliceGPT [Ashkboos et al., 2024] Theorem 1):变换器的权重与块间激活可同时用正交矩阵变换而不改变模型输出——块内左侧输入权重左乘 Q、同块输出权重右乘 Q⊤ 即可抵消P(第 4 页)。它在 RMSNorm 处也成立,因为 RMSNorm 按范数归一化、旋转不改变范数,满足交换律:
3.3 Stage 1(离线、全精度、输出不变):四步改造
QuaRot 分两阶段;第一阶段以全精度操纵权重并向 forward 插入两个额外 Hadamard 操作P(第 4 页):
- Stage 1a 权重修改:先把 LayerNorm/RMSNorm 的线性部分融进相邻权重(吸收 diag(α));选与隐藏维同阶的随机 Hadamard Q,块内左侧权重左乘(如
W_k ← Q⊤·diag(α)·W_k,式 4),块输出侧权重右乘 Q;块间激活随之变为 X←XQ。该修改在全精度假设下不改变模型输出P(第 4-5 页、图 3)。 - Stage 1b FFN:在 down-projection 前插入一次全精度在线 Hadamard(按 QuIP# 的快速 kernel 实现),并通过把 H 融进 down-proj 权重被隐式抵消:
W_down ← H·W_down,与全局 Q 合并后为W_down ← H·W_down·QP(第 5 页)。 - Stage 1c 注意力 value 侧:注意力输出 Y=concat[(P₁V₁)…(P_{n_h}V_{n_h})]·W_out(式 5-6)暴露 W_v 与 W_out 的头内耦合:对每头做
W_v⁽ʰ⁾←W_v⁽ʰ⁾H_{d_h}、W_out⁽ʰ⁾←H_{d_h}W_out⁽ʰ⁾(式 7),等价 Kronecker 形式W_v←W_v(I⊗H_{d_h})、W_out←(I⊗H_{d_h})W_out(式 8);再用恒等式 H_{n_h×d_h}=(I⊗H_{d_h})(H_{n_h}⊗I)(式 9,头数与头维均为 2 的幂时成立)补上跨头部分:插入 Hadamard heads 块 Z←Z(H_{n_h}⊗I)(reshape + Walsh-Hadamard 高效计算),并把 W_out 完整变为W_out←H·W_outP(第 5-6 页)。 - Stage 1d key 旋转:keys 也有离群(引 KVQuant、KIVI);注意力分数 P_h=Softmax(α·Pos(Q_h)·Pos(K_h⊤)⊙M)(式 10-12),RoPE 的 Pos 直接作用在 Q/K 上、使 Hadamard 无法直接融进 W_q/W_k,故对查询与键做在线 head-wise 旋转:Q←Pos(XW_q)(I⊗H_{d_h})、K←Pos(XW_k)(I⊗H_{d_h})(式 13-14)——Q、K 同旋使注意力分数不变P(第 6 页)。相比 KVQuant 式 Pre-RoPE Caching(缓存 RoPE 前的 keys:需在线逆旋转、且每个 query 都要旋转全部 keys/values),QuaRot 选 Post-RoPE caching——量化发生在 RoPE 之后,解码每步只对单个 token 施加 HadamardP(第 6、13 页 A.1)。
- 在线开销口径:QuIP# 类方法每个权重矩阵需两次 Hadamard;QuaRot 每 transformer 层只需 1½ 次P(第 3 页 §2、第 15 页 A.5;注:
quarot.txt提取把 1½ 误作 11,已按 PDF 原页更正)。
3.4 Stage 2(在线量化=唯一误差来源):三步
- Stage 2a 权重量化:默认对全网权重应用 GPTQ;旋转后的网络上任何量化方法都可用,简单 RTN 也可替代、代价是一些精度P(第 6 页)。
- Stage 2b 激活量化:RMSNorm(去缩放后)保持 FP32 计算;线性层输入用对称 per-token(按输入矩阵的行)量化:行缩放 = 行最大绝对值 ÷ 7(INT4 最大可表示数),行除以缩放后 round-to-nearest;反量化把 GEMM 的 INT32 输出 cast 成 FP16,再乘行缩放(来自激活)×列缩放(来自权重)P(第 7 页)。
- Stage 2c 量化注意力:注意力在长序列/大 batch 下显著 memory-bound;旋转 keys/values 后缓存可低位宽量化、减少 IO;查询保持 FP16,softmax 用类 FlashAttention 的在线计算;KV 向量逐段从显存载入后反量化、以 FP16 计算点积P(第 7 页)。
3.5 精度口径速查:什么在 INT4,什么不在
| 对象 | 精度 | 依据与条件 |
|---|---|---|
| 全部线性层权重(W_q/W_k/W_v/W_out/W_gate/W_up/W_down,融合旋转后) | INT4 | P 摘要「all matrix multiplications are performed in 4 bits, without any channels identified for retention in higher precision」(第 1 页);图 3/图 6 权重块标 INT4 |
| 线性层输入激活(每层每个线性层之前) | INT4 | P Stage 2b:对称 per-token,行缩放=max|·|/7,裁剪比 0.9(第 7 页) |
| KV 缓存(keys 与 values,Post-RoPE) | INT4 | P Stage 2c + Setup:非对称、组 128(=头维)、裁剪比 0.95(第 7、9 页表 4 注) |
| 查询(query 向量) | FP16 | P 「We keep the queries in FP16」(第 7 页);图 6 的 Q 路径标 FP16 |
| 注意力点积与在线 softmax | FP16 | P KV 段反量化后 FP16 计算点积;在线 softmax 类 FlashAttention(第 7 页);prefill 期注意力直接用 FlashAttention(第 17 页 A.10) |
| RMSNorm 与在线 Hadamard 变换 | FP32 | P 「computation of RMSNorm (without scaling) in FP32」「We use FP32 online Hadamard transformation across all our experiments」(第 7、15 页;FP16 Hadamard 见 A.7) |
| 矩阵乘累加器与层输出 | INT32 → FP16 | P CUTLASS INT4 GEMM 在 TensorCore 上、结果存 INT32 累加器,随即 cast+scale 回 FP16(第 5 页图 3 注、第 7-8 页 §5.2) |
| 模型输出 / 残差流(块间激活) | FP16 | P FP16 为「the default precision of the model」(第 5 页图 3 注);Y_Q 输出标 FP16 |
4. GPU/系统数据路径
端到端文字序列(与图中编号一致)
- ① 残差流输入:块间激活已被全局旋转 X←XQ(离线融合进上一层输出权重);全精度下输出不变,且离群已被摊平(图 1:旋转后 FFN 输入无离群)P(第 4-5 页、第 2 页图 1)。
- ② RMSNorm → 量化门:RMSNorm(去缩放)以 FP32 计算;其输出在进入每个线性层前做对称 per-token INT4 量化(行缩放=max|·|/7,裁剪比 0.9)P(第 7 页 Stage 2b)。
- ③ 注意力分支:W_q/W_k/W_v 均为融合后的 INT4 权重(Q⊤(α)W_*),投影输出 FP16——query 经 RoPE 后做在线 head-wise Hadamard、保持 FP16;key 经 RoPE 后同样旋转、再量化为 INT4 写入 KV 缓存(非对称、组 128、裁剪 0.95);value 在投影端已含 head-wise Hadamard、量化为 INT4 写入缓存;注意力计算保持 FP16(在线 softmax,KV 逐段载入反量化后做 FP16 点积);输出经 Hadamard heads(H_{n_h}⊗I)跨头旋转、量化 INT4,经 H·W_out·Q 得到 FP16 输出 Y_QP(第 5-7 页、第 13 页图 6)。
- ④ FFN 分支:W_gate/W_up 为融合后的 INT4 权重,σ(gate)⊙up 输出 FP16;随后一次 FP32 在线 Hadamard、量化 INT4,经 H·W_down·Q 得到 FP16 输出 Y_QP(第 5 页 Stage 1b、第 7 页、图 3)。
- ⑤ 线性层精度链:INT4 权重×INT4 激活在 TensorCore 上计算、INT32 累加,随即 cast 回 FP16 并乘激活行缩放 × 权重列缩放——量化误差只发生在取整/裁剪处P(第 5 页图 3 注、第 7-8 页 §5.2)。
- 循环:Y_Q 汇回残差流进入下一层;每层在线 Hadamard 合计约 1½ 次全尺寸当量;解码期 KV 的写入/读取由 Init/Append/Decode 三例程承担(prefill 注意力直接用 FlashAttention,解码用量化版 flash attention 读 INT4 缓存)P(第 3、17 页)。
| 事实/数值 | 对象与条件 | 论文定位 |
|---|---|---|
| 全局旋转 Q=随机 Hadamard(H̃=H·diag(s)),阶数=模型隐藏维;d 非 2ⁿ 时 Kronecker 构造 | Stage 1a 权重融合 | P 第 3 页 §3.1、第 4-5 页 Stage 1a |
| query/key 在线 head-wise 旋转 (I⊗H_{d_h}) 发生在 RoPE 之后(Post-RoPE caching) | KV 量化前提 | P 第 6 页 Stage 1d 式 13-14、第 13 页 A.1 |
| 激活:对称 per-token、scale=max|·|/7、恒定裁剪比 0.9;KV:非对称、组 128(=头维)、裁剪比 0.95 | Stage 2b/2c 量化参数 | P 第 7 页 Setup、第 9 页表 4 注;裁剪比消融第 13-14 页表 5 |
| 权重:GPTQ(默认)/RTN,per-column 对称,裁剪比按 MSE 线性搜索;校准集 128 条 WikiText-2 训练集样本、序列 2048 | Stage 2a 量化参数 | P 第 7 页 Setup |
| 在线 Hadamard:FP32 快速核(down/out-proj 处),每层合计约 1½ 次;FP16 化仅噪声级影响(7B PPL <0.1) | 在线算子 | P 第 3、15-16 页(1½ 的提取错误已按原页更正) |
| 内核栈:CUTLASS INT4 GEMM(TensorCore、INT32 累加)+ FlashInfer KV 量化;CUDA/12.1 + PyTorch + HuggingFace | 实现栈 | P 第 7 页 Models/Tasks/GPUs、第 7-8 页 §5.2 |
| A100 单卡:修改 LLAMA2-70B(Stage 1)约 5 分钟、GPTQ 再约 2 小时 | 离线准备成本 | P 第 7 页 Setup |
| TTFT/TPOT 绝对值、每步解码时延分布、KV 缩放因子存储精度:论文未明确披露 | 数据路径运行细节 | P(本次证据源未载明,页面不补写) |
5. 架构权衡
-
离群消除 ↔ 在线 Hadamard 开销与内核依赖
P 旋转把 4bit 的离群障碍挪走(图 1),代价是每层约 1½ 次在线 Hadamard 与新内核:CUTLASS INT4 GEMM + FlashInfer KV 量化。Hadamard 对 W_down 线性层至多加约 7% 开销(batch 1、序列 2048,图 7)P。I W4A4 依赖 INT4 TensorCore 支持与自研内核栈,这是采用 QuaRot 的真实集成成本。
-
全 4bit 覆盖 ↔ 4bit 精度损失与模型敏感性
P 无高精度通道换来 LLAMA2-70B PPL +0.47、零样本 -1.09%;但 7B 损 0.63 / 平均分 -4.18%;LLAMA-3 更敏感(8B PPL 6.14→8.16,70B 2.86→6.66)(第 7-9、16-17 页表 1/2/11/12)P。I 「全 4bit」是模型家族相关的精度决策,不是无条件的默认。
-
GPTQ 质量 ↔ 校准成本与免校准档位
P GPTQ 默认(70B:修改 5 分钟 + 量化 2 小时,单卡 A100);RTN 免校准免超参,6/8bit 无损、INT8 完全保持 FP16,但 4bit 下 RTN 比 GPTQ 差 2.27(7B)→0.34(70B)PPL(第 7、9 页表 3)P。I 大模型可用 RTN 快速落地;小模型想上 4bit 基本必须走校准。
-
显存节省 ↔ 小 batch 解码变慢
P 解码峰值显存至多 3.89×(单块、batch 16);但 4bit KV 的收益在降 IO——batch≤8 时 INT4 缓存解码比 FP16 慢(32×128 头配置 batch 1:FP16 0.713ms vs INT4 1.033ms),batch 16 起才反超、论文口径至多 1.72×(第 8、18、20 页表 15)P。I KV 量化档位应按 batch/序列区间选择,不能默认开启。
-
单块实测 ↔ 整模型外推
P 3.33×/3.89× 均为单 Transformer 块实测(整模型大 batch 放不进其集群);论文预期整模型数值会更大(层数增加后常量大小对象影响变小)但未测(第 8-9 页)P。I 引用这两个数字必须带「单块」限定;整模型端到端吞吐与 TTFT/TPOT 绝对值论文未披露。
-
KV 3bit 近免费 ↔ 2bit 不可行
P 旋转后的 KV 缓存到 3bit 困惑度退化至多 0.21(70B 至多 0.07);keys 比 values 敏感(K4/V3 仅 +0.03、K3/V4 +0.18,7B);K2/V2 则崩到 9.23(7B)(第 14 页表 6)P。I KV 档位的甜点在 3-4bit;把 QuaRot 与 KIVI 的 2bit KV 直接类比是误用(两者离群处理机制不同,且本站不做跨论文比较)。
-
数学变换免费 ↔ 制品不可逆
P Stage 1 在全精度下输出不变,但它把权重矩阵永久变成了「旋转系」制品(W←Q⊤diag(α)W 等);随机正交矩阵不如随机 Hadamard(7B 差 1.35 PPL,表 8)P(第 4-5、15 页)I 旋转种子、量化方法与校准集构成都是制品的「基因」,必须与制品一起版本化管理,回退对象是原始 FP16 checkpoint 而非「关个开关」。
6. 云上部署映射
以下映射为厂商中立示例;具体产品命名/规格仅作说明并标 E,以厂商当时目录为准,未逐一在线核验。论文事实单独标注 P。
| 论文需求 | 云上映射(示例) | 证据与说明 |
|---|---|---|
| 计算:性能验证在 RTX 3090 级消费卡;离线量化在单卡 A100(70B:5 分钟 + 2 小时) | E 基准/回归可用单卡消费级实例(RTX 3090/4090 类或云上同级),量化作业用单卡 A100/H100 类按需实例(小时级任务,不必常驻) | 硬件口径为论文事实 P(第 7-8 页);实例选型为厂商目录示例 E;量化是低频离线作业 I |
| 模型制品:旋转 + 量化后的权重(W←Q⊤diag(α)W 等)是新制品,非原 checkpoint | E 制品库按「基础模型 × 旋转种子 × 量化配方(方法/位宽/组/裁剪比)× 内核版本」命名与存储;制品不可变、签名分发 | 制品语义为论文事实 P(第 4-7 页);命名与治理为工程建议 I |
| 推理栈:HuggingFace + PyTorch + CUDA/12.1 + CUTLASS + FlashInfer 自研内核 | E 自建推理服务时以容器镜像固化「框架 + 内核 + 驱动」组合;托管/GPU Worker 类产品需确认可注入自定义 CUDA 内核 | 实现栈为论文事实 P(第 7 页);镜像/产品映射为云实践 E;论文未绑定任何服务框架 I |
| 显存容量:权重 4bit + KV 缓存 4bit(组 128)+ FP16 激活/残差 | E 容量模型进编排:按 §7.2 公式估单实例并发;KV 4bit 相对 FP16 的节省换 batch 或上下文长度 | 精度构成与单块显存节省为论文事实 P(第 7 页、第 21 页表 17);容量公式为工程建议 I |
| 弹性:收益在「prefill 算力」与「解码显存」两侧兑现 | E prefill 段(长输入、大 batch)路由到 INT4 实例收益最大;小 batch 低延迟实例可关闭 KV 量化档位 | 加速随 batch 增大、小 batch KV 更慢为论文事实 P(第 8、18、20 页);路由策略为工程建议 I |
| 可观测:困惑度/零样本回归、TTFT、峰值显存 | E 监控 TTFT 漂移、显存水位、PPL/零样本抽样回归(上线前固定「FP16 vs QuaRot」双基线读数);异常回退原 checkpoint 并告警 | 论文评测口径为 P(第 7-9 页);监控指标设计为编辑建议 I、接入为云实践 E |
7. 成本 / 性能 / SLO
7.1 指标口径(论文使用的)
P(第 7-9、18-21 页)精度:WikiText-2 困惑度(序列 2048)与 LM Evaluation Harness 六项零样本均值(默认参数);效率:单 Transformer 块的 TTFT prefill 加速倍数(相对 FP16,序列 2048 × batch 扫描)、解码单 token 峰值显存(GB 与节省倍数)、4bit 线性层/解码例程的毫秒级运行时(100/1000 次平均)。TTFT/TPOT 绝对值、整模型端到端吞吐、能耗:论文未明确披露。
7.2 容量与成本公式(参数化,编辑推断)
INT4 KV 显存/token ≈ 2(K与V) × 层数 L × KV 头数 h_kv × 头维 d_h × 4/8 字节 + 非对称缩放摊销(组 128;GQA 模型 h_kv < 注意力头数)
prefill 时间比 ≈ (INT4 层运行时 + Hadamard/量化开销) ÷ FP16 层运行时(单块实测基准:图 4 左、表 14/16)
单实例可容 batch ≈ (HBM 容量 − INT4 权重 − INT4 KV×上下文×并发 − FP16 激活/框架开销 − 回退 FP16 余量) ÷ 单请求 KV 字节
每百万 token 成本 ≈ 实例时单价 ÷ (实测吞吐 tokens/s × 3600) × 10^6(单价按查询当时记录日期,不写死)
I 公式中可由论文支撑的量:解码峰值显存节省至多 3.89×(单块、batch 16,表 17);prefill 加速 1.97×~3.33×(单块、序列 2048,图 4 左/表 16);INT8 无损、6bit 近无损(表 3/9)。其余(云单价、整模型吞吐、激活峰值、回退余量、请求长度分布)需按部署实测与当时目录填写,本页不给出伪精确数字。I 注意表 17 的分母是「单块」显存(7B 基线 0.39~1.42GB、70B 1.6~1.9GB),不含整模型其余层——不能直接乘层数外推整卡占用。
7.3 性能数字上下文速查(RTX 3090 · 单 Transformer 块)
| 条目 | 数值/结论 | 条件 | 来源 |
|---|---|---|---|
| prefill 加速(TTFT) | 7B:1.97×/2.06×/2.11×/2.14×/2.16×(batch 1/4/16/32/64);70B:3.16×/3.27×/3.32×/3.33×(batch 1/4/16/32,图 4 左另含 batch 64 点 3.33×) | 序列 2048;相对 FP16;单块;RTX 3090 | P 第 8 页图 4 左、第 20 页表 16 |
| 解码峰值显存节省 | 7B:3.60×~3.75×(batch 16 随序列 256→4096 升至 3.75×);70B:batch 16 全部 3.89×、batch 1 达 3.92×;两模型至少 3.63× | 解码 50 token;KV 缓存 256~4096;单块;RTX 3090 | P 第 8 页图 4 右、第 21 页表 17 |
| 4bit 线性层(W_down) | 7B 3.2×、70B 4.3×(batch 1,含 Hadamard);Hadamard 至多 +7% 开销;随 batch 近似线性扩展 | 序列 2048;batch 1;1000 次平均(图 7)/100 次(表 14) | P 第 18-19 页 |
| INT4 KV 解码例程 | batch≥16 反超 FP16、论文口径至多 1.72×;batch≤8 反而更慢(7B 头配置 batch 1:0.713ms→1.033ms) | 单 token、缓存 2047;序列 2048;单块;RTX 3090;100 次平均 | P 第 18、20 页表 15 |
7.4 敏感项与数据缺口
- P 敏感项排序(各自条件下):模型家族(LLAMA-3 掉点约为 LLAMA-2 两倍以上,表 11/12)> 权重量化方法(4bit 下 RTN 比 GPTQ 差 2.27→0.34 PPL,表 3)> 位宽(8bit 无损、6bit 近无损、4bit 有感,表 3/9)> KV 位宽组合(≤3bit 近免费;keys 比 values 敏感,表 6)> 权重组大小(256→64 单调变好、更费缩放存储,表 4)。
- P 数据缺口:TTFT/TPOT 绝对值、整模型端到端吞吐、能耗、精度评测 GPU 型号、KV 缩放因子存储精度、不同上下文长度的完整吞吐曲线——论文未明确披露。
- I 云价格、内核集成一次性工程成本、旋转制品的存储成本:论文未涉及,部署时自测并记录查询日期。
8. 安全与可运维性
8.1 安全
- 量化数据仍是用户数据:I QuaRot 不改变 KV 缓存的语义——它仍完整保留全部输入 token(只是精度降为 INT4 组 128),量化不是加密。多租户实例复用前必须重置/清零 KV 显存,显存 dump 即数据泄露(通用推理服务要求)。
- 制品完整性与来源:P 服务用的权重是「旋转 + 量化」后的新制品(W←Q⊤diag(α)W 等),旋转依赖随机向量 s、量化依赖校准集(128 条 WikiText-2)与裁剪比/组大小(第 4-7 页)I 制品必须记录配方元数据并签名;种子/配方不可追溯的制品不应上线。
- 供应链:R 代码来自摘要印明的
github.com/spcl/QuaRot(2026-09-15 在线核验:SPCL/ETH Zurich、Apache-2.0、HEAD5008669b、2024-11-26 后无新 push、无 tag);内核依赖 CUTLASS(论文参考文献印明)与 FlashInfer(同)I 引入时 pin commit/镜像 digest、扫描 CUDA 内核与依赖、保留可回退版本;仓库一年无 push,视同「冻结的研究代码」,安全补丁需自行跟进。 - 输出分布变化:P 4bit 量化改变输出分布(零样本均值 -1.09%~-4.18%,表 2)I 合规审查应以「QuaRot 量化后制品的实际输出」为对象,不能沿用 FP16 模型的评估结论;6/8bit 档位损失在噪声级(表 3),对合规敏感业务可作折中。
8.2 可运维性(含恢复与回滚)
- 回退路径=原始 FP16 checkpoint:I 旋转不可逆地改写了权重矩阵,「关闭量化」不是运行时开关——回退必须重新部署原始 FP16 权重(显存占用随之上升,需预留余量或联动降载)。FP16 原始 checkpoint 必须与量化制品同生命周期保存。
- 配置变更管理:P 量化配方(方法/位宽/组大小/裁剪比/校准集)直接决定精度(表 3/4/5/6)I 把配方作为与制品绑定的配置资产管理,变更走灰度 + PPL/零样本回归;禁用未回归过的组合。
- 故障恢复:I 推理服务无训练态,故障恢复=实例重启 + 制品重载;KV 缓存不持久化、丢失即重算(prefill 重放)。多实例无状态水平扩展,单实例故障由负载均衡摘除(云编排能力,E)。
- 监控告警:I 建议:①TTFT 相对双基线的漂移(内核或批处理异常先在这里显形);②峰值显存水位(量化失效/回退会先表现为显存回升);③PPL/零样本抽样分数(配方错误直接掉点);④INT4 KV 解码时延按 batch 分桶观察(batch≤8 区间应预期更慢而非告警)。
- 升级与回滚:I 内核(CUTLASS/FlashInfer)与框架/驱动版本配对 pin;基础模型升级必须重新走「旋转 → 量化 → 回归」全流程(旧配方对新模型无效,LLAMA-3 即反例);升级走金丝雀 + 双基线回归(FP16 vs 量化各测一组)。
- 验收基线:I 上线前固定「FP16 vs QuaRot」两组读数:prefill 时延(目标 batch/序列)、解码显存、PPL/零样本抽测,形成可复核差值;此后任何变更以差值回归验收。
9. 适用 / 不适用场景
适用(触发条件 + 理由)
- prefill/算力受限、追求 W4A4 全 INT4 的推理服务。触发:长输入、大 batch、prefill 时延或 GPU 租金为主要成本,且硬件支持 INT4 TensorCore。理由:无高精度通道的 4bit 前向,单块 prefill 加速 1.97×~3.33×(序列 2048,batch 随模型 1.97×/3.33× 封顶),加速随 batch 增大 P(第 8 页图 4 左、第 20 页表 16)。
- KV/显存受限的长上下文批量服务(大 batch)。触发:解码期 KV 显存触顶、想换更大 batch 或更长上下文。理由:解码峰值显存至多 3.89×(单块、batch 16、解码 50 token);KV 到 3bit 近免费、4bit 几乎无损(退化 ≤0.21)P(第 8、14、21 页)。
- 手握 RTX 3090/4090 类消费级 GPU 池、想在单卡/少卡上跑 70B 级模型的团队。触发:硬件以消费级为主、无力上 A100/H100 集群。理由:论文明确定位消费级 GPU 并在 RTX 3090 上完成全部性能实验 P(第 7-8 页)。
- 想要免校准、近无损省显存的快速落地(6/8bit 档)。触发:不想跑 GPTQ 校准、只求把权重/激活/KV 降到 6 或 8bit。理由:RTN 6/8bit 免校准免超参,INT8 完全保持 FP16、6bit 近无损(如 70B INT6 均值 77.21 vs FP16 77.07)P(第 9、16 页表 3/9)。
不适用(触发条件 + 理由)
- 小 batch(≤8)、单请求延迟敏感的解码场景。触发:交互式单并发/低并发生成,TPOT 是首要 SLO。理由:4bit KV 收益在降 IO,batch≤8 时 INT4 缓存解码比 FP16 慢(7B 头配置 batch 1:0.713ms vs 1.033ms),batch 16 起才反超 P(第 18、20 页表 15);I 期望「INT4 一定更快」属于误读收益对象。
- LLAMA-3 等对量化敏感的模型追求 4bit。触发:目标模型不在 LLAMA-2 系或实测掉点超阈值。理由:LLAMA-3 8B 4bit PPL 6.14→8.16、零样本均值 73.22→65.18(70B 79.94→69.21),明显差于 LLAMA-2 同规格 P(第 16-17 页表 11/12)。
- 无 INT4 TensorCore、或无法集成自定义 CUDA 内核的运行环境。触发:老 GPU、非 NVIDIA 栈、或托管平台不允许注入 CUTLASS/FlashInfer 自定义内核。理由:QuaRot 的 W4A4 前向完全建立在其自研 CUTLASS INT4 GEMM 与 FlashInfer KV 内核上(CUDA/12.1 + PyTorch)P(第 7-8 页);I 缺内核栈时只剩仿真量化,无性能收益。
- 要求输出与 FP16 逐 bit 一致的合规/审计场景。触发:输出可复现性被硬性要求。理由:4bit 量化改变输出分布(零样本 -1.09%~-4.18%);即便 INT8 RTN「精度无损」也是统计口径,非逐 bit 一致 P(第 7-9 页)+I(口径判断)。
10. 实验与指标
10.1 实验设置与口径 P(第 7 页)
| 模型 | LLAMA-2 家族(7B/13B/70B);附录:LLAMA-3(8B/70B)、Phi-3-mini-4k-instruct(revision=ff07dc01)P(第 7、16-17 页) |
|---|---|
| 量化配方 | 权重:GPTQ(默认)/RTN,per-column 对称,裁剪比按 MSE 线性搜索;激活:对称 per-token RTN,裁剪比恒 0.9;KV:非对称、组 128、裁剪比恒 0.95;校准集:WikiText-2 训练集 128 样本、序列 2048 P(第 7 页) |
| 任务 | WikiText-2 困惑度(序列 2048);LM Evaluation Harness 默认参数:PIQA、WinoGrande、HellaSwag、Arc-Easy、Arc-Challenge、LAMBADA P(第 7 页) |
| 硬件 | 性能:NVIDIA RTX 3090(消费级定位),CUDA/12.1;离线量化:单卡 NVIDIA A100(70B 修改 5 分钟 + GPTQ 2 小时);精度评测 GPU:论文未明确披露 P(第 7-8 页) |
| 内核 | 自研 CUDA:CUTLASS INT4 GEMM(TensorCore、INT32 累加)+ FlashInfer KV 量化;实现在 HuggingFace + PyTorch 之上 P(第 7 页) |
| 性能范围 | 单个 Transformer block(「整模型在大 batch 下装不进我们的 GPU 集群」);prefill=TTFT 加速、解码=峰值显存与单 token 时延 P(第 7-8、17-21 页) |
| 基线 | 精度:同模型 FP16;性能:FP16 实现(CUTLASS/FlashInfer 路径的 FP16 对照)P(第 7-9 页) |
10.2 主精度结果(表 1 / 表 2 全量转录)
| 方法 | 权重量化 | #离群特征 | 7B | 13B | 70B |
|---|---|---|---|---|---|
| Baseline(FP16) | — | — | 5.47 | 4.88 | 3.32 |
| SmoothQuant | RTN | 0 | 83.12 | 35.88 | — |
| OmniQuant | RTN | 0 | 14.26 | 12.30 | — |
| QUIK-4B | GPTQ | 256 | 8.87 | 7.78 | 6.91 |
| QuaRot | GPTQ | 0 | 6.10 | 5.40 | 3.79 |
| Atom-128G | — | 128 | 6.03 | 5.26 | — |
| QuaRot-128G | GPTQ-128G | 0 | 5.93 | 5.26 | 3.61 |
| 模型 | 方法 | PIQA | WinoGrande | HellaSwag | Arc-E | Arc-C | LAMBADA | 均值 |
|---|---|---|---|---|---|---|---|---|
| LLAMA2-7B | FP16 | 79.11 | 69.06 | 75.99 | 74.58 | 46.25 | 73.90 | 69.82 |
| QuaRot | 76.77 | 63.77 | 72.16 | 69.87 | 40.87 | 70.39 | 65.64 | |
| LLAMA2-13B | FP16 | 80.47 | 72.22 | 79.39 | 77.48 | 49.23 | 76.75 | 72.59 |
| QuaRot | 78.89 | 70.24 | 76.37 | 72.98 | 46.59 | 73.67 | 69.79 | |
| LLAMA2-70B | FP16 | 82.70 | 77.98 | 83.84 | 80.98 | 57.34 | 79.58 | 77.07 |
| QuaRot | 82.43 | 76.24 | 81.82 | 80.43 | 56.23 | 78.73 | 75.98 |
P 论文口径:QuaRot 以至多 0.63 困惑度损失(70B 为 0.47)优于全部先前工作,无需重训练、无需高精度离群通道;对 Atom 同分组数:7B 好 0.1、13B 持平;零样本平均分损失至多 4.18%(70B 为 1.09%)(第 7-8 页)。
10.3 性能结果(RTX 3090 · 单 Transformer 块)
| 证据 | 数值/结论 | 条件 | 定位 |
|---|---|---|---|
| 图 4 左(TTFT prefill 加速) | 7B:1.97×→2.16×(batch 1/4/16/64);70B:3.16×→3.33×(同 batch 轴) | 序列 2048;相对 FP16 | 第 8 页;柱顶为论文印刷标注值 |
| 表 16(分 batch 明细) | 7B 含 batch 32=2.14×;70B 列至 batch 32=3.33×(表内无 70B batch-64 行;引言(§1 贡献列表)batch 64 对应图 4 左) | 序列 2048;单块 | 第 20 页 |
| 图 4 右 + 表 17(解码显存) | batch 16:7B 3.63×→3.75×(序列 256→4096);70B 全 3.89×;batch 1 时 70B 3.92×、7B 3.60×~3.67× | 解码 50 token;KV 256~4096;单块 | 第 8、21 页 |
| 图 7 / 表 14(4bit 线性层) | 7B 3.2×、70B 4.3×(batch 1,含 Hadamard,如 70B W_down 12.45→2.91ms);Hadamard 至多 +7% | 序列 2048;batch 1;1000/100 次平均 | 第 18-19 页 |
| 表 15(INT4 KV 解码) | batch≥16 反超(至多 1.72×);batch≤8 更慢(32×128:bs1 0.713→1.033ms;bs16 1.348→1.018ms) | 单 token、缓存 2047;单块;100 次平均 | 第 18、20 页 |
10.4 消融与其他证据
| 证据 | 数值/结论 | 条件 | 定位 |
|---|---|---|---|
| 表 3:RTN vs GPTQ | 7B:INT4 RTN 8.37/均值 58.26 vs GPTQ 6.10/65.64;INT8 RTN 5.50/69.65 ≈ FP16 5.47/69.82;70B:INT4 4.14/73.63、INT8 3.33/77.17 vs FP16 3.32/77.07;RTN-GPTQ 差距 2.27(7B)→0.34(70B) | RTN 权重+激活;量化全部权重/激活/缓存 | 第 9 页 |
| 表 4:权重组大小 | 7B:256G 5.98 / 128G 5.93 / 64G 5.88(QuaRot 基线 6.10、FP16 5.47);KV 组固定 128=头维 | GPTQ;4bit | 第 9 页 |
| 表 5:裁剪比 | 输入 1.0/0.95/0.9/0.85 → 5.938/5.910/5.828(最优)/5.850;KV → 5.513/5.510(最优)/5.517/5.532 | LLAMA2-7B;其余全精度 | 第 13-14 页 |
| 表 6:KV 位宽组合 | 7B:K4V4 5.51、K4V3 5.54、K3V4 5.65、K3V3 5.68、K4V2 5.75、K3V2 5.93、K2V4 8.06、K2V3 8.18、K2V2 9.23(FP16 5.47);keys 比 values 敏感 | 非对称组 128;其余全精度 | 第 14 页 |
| 表 7:weight-only | 旋转使 4bit GPTQ 改善至多 2.65;RTN 改善至多 0.24;2bit GPTQ 70B 达 5.60(无旋转 25.30) | 非对称 per-column;输入/KV 保持 FP16 | 第 14-15 页 |
| 表 8:随机正交 vs Hadamard | Random 7.45/5.84/4.07 vs Hadamard 6.10/5.40/3.79(差距 1.35→0.28 随模型缩小) | 4bit QuaRot | 第 15 页 |
| 表 10:Hadamard 精度 | FP16 替代 FP32:7B PPL 变化 <0.1、零样本 <0.6%(视为噪声);13B PPL 相同、均值差 0.07% | down/out-proj 在线变换 | 第 15-16 页 |
| 表 11/12:LLAMA-3 | 8B:6.14→8.16(128G 7.36);零样本 73.22→65.18。70B:2.86→6.66(128G 5.51);79.94→69.21 | 4bit;序列 2048 | 第 16-17 页 |
| 表 13:Phi-3-mini | GPTQ INT4 7.85/均值 66.34(FP16 6.35/73.11);RTN INT4 11.69/56.12;INT8 6.58/73.18 | revision=ff07dc01 | 第 17 页 |
| 实验 | 硬件 | 精度 | 批量/负载 | 基线 | 定位 |
|---|---|---|---|---|---|
| PPL/零样本(表 1-4、9-13) | 论文未明确披露 | W4A4KV4 及 4/6/8bit 档 | LM Harness 默认参数;批量未披露 | 同模型 FP16 | P 第 7-9、13-17 页 |
| prefill 加速(图 4 左、表 16) | RTX 3090 | W4A4KV4 vs FP16 | 序列 2048;batch 1~64;单块 | FP16 实现 | P 第 8、20 页 |
| 解码显存/时延(图 4 右、表 15/17) | RTX 3090 | W4A4KV4 vs FP16 | 解码 50 token / 单 token;KV 256~4096;单块 | FP16 实现 | P 第 8、20-21 页 |
10.5 建议复现步骤(编辑推断)
- R/I 从官方仓库取代码(已核验 spcl/QuaRot,pin HEAD
5008669b或后续 commit);确认 CUTLASS、FlashInfer、PyTorch/CUDA 12.1 版本组合可构建。 - I 精度复测:LLAMA2-7B/70B 先行——按论文配方旋转(Stage 1)+ GPTQ 量化(128 条 WikiText-2、序列 2048、裁剪比 0.9/0.95、权重组 128),对齐 WikiText-2 PPL 与 LM Harness 六任务默认参数,对照表 1/2(如 70B:3.79/75.98)。
- I RTN 档位复测:同流程换 RTN(免校准),对照表 3(INT8 应完全追平 FP16;4bit 差距随模型规模缩小)。
- I 性能复测:单卡 RTX 3090、单 Transformer 块——prefill TTFT(序列 2048、batch 1~64)、解码峰值显存(batch 16、KV 256~4096)、W_down 线性层与 KV 解码例程毫秒数,对照图 4、表 14-17;同时复测 batch≤8 的 KV 解码劣化区间。
- I 目标业务实测:在真实上下文/并发分布上测「FP16 vs 量化」双基线差值(TTFT、吞吐、显存、抽样 PPL/零样本),再决定启用位宽档位与 KV 量化开关;记录模型升级后重跑全流程的成本。
11. 论文 / 代码 / 延伸链接
| 来源 | 链接 / 文件 | 级别与核验 |
|---|---|---|
| 论文(arXiv abstract) | https://arxiv.org/abs/2404.00456 | P arXiv:2404.00456v2(2024-10-29,PDF 竖排水印逐字核验);NeurIPS 2024(第 1 页页脚);本地 PDF:09_QuaRot_2404.00456.pdf(21 页) |
| 官方代码仓库 | https://github.com/spcl/QuaRot | R 论文摘要末句印明(第 1 页逐字核验:Code is available at github.com/spcl/QuaRot);2026-09-15 在线核验:spcl(ETH Zurich SPCL 实验室)所有、默认分支 main、HEAD 5008669b08c1f11f9b64d52d16fddd47ca754c5a(2024-11-26)、Apache-2.0、tags 为空;此后无新 push,使用前再查最新 commit。 |
| 论文引用的依赖仓库 | https://github.com/NVIDIA/cutlass(CUTLASS);https://github.com/flashinfer-ai/flashinfer(FlashInfer) | R 两 URL 印于论文参考文献(第 11-12 页);2026-09-15 在线核验均存在(CUTLASS 最近 push 2026-09-08、许可为 NVIDIA 自定义 BSD 类;FlashInfer Apache-2.0、最近 push 2026-09-15)。属依赖而非论文官方仓库。 |
| 其他仓库 | 不提供 | I 遵循本站「不猜测仓库」策略:论文引 Sloane [2024] 的 Hadamard 矩阵列表仅有 HTTP 地址(非 HTTPS,本站不外链);第三方/镜像/框架集成仓库一律不链接。 |
12. 给架构师的决策清单
I 以下为落地前的勾选项;标注(P)的条目对应论文证据,(R)对应仓库核验项,其余为工程判断。
-
需求与规模
-
兼容性
-
PoC(1-2 周量级)
-
容量
-
SLO 与恢复
-
成本
-
安全
-
运维与回滚
-
退出策略
13. 证据台账
下表为核心结论的证据映射;逐条引文与核验记录见构建文件 sources/quarot.evidence.json(编号与本表一一对应)。核验日期为 。
sources/quarot.txt 可读并用作检索索引,但存在双栏交错与符号丢失;两处提取问题已在核验中按 PDF 原页更正:①第 3/15 页的「每层 1½ 次 Hadamard」被提取成「11」;②第 3 页 O(d log₂ d) 的下标 2 脱落。另发现论文自身一处文内不一致:结论章(第 10 页)「up to 3.39× memory saving」与引言(§1 贡献列表)/§5.2 的 3.89× 矛盾,本页照录并标注为原文笔误,不作调和。
| 编号 | 关键结论 | 级别 | 定位(PDF 页码/URL) | 核验状态 |
|---|---|---|---|---|
| EV-01 | 题名/9 位作者与机构/NeurIPS 2024/arXiv:2404.00456v2(2024-10-29)/21 页 | P | 第 1 页 | 已核验(原页目检) |
| EV-02 | 摘要级结论:端到端 4bit(权重+激活+KV)、旋转去离群不改输出、全矩阵乘 4bit 无高精度通道、70B ≤0.47 PPL / 99% 零样本、6/8bit RTN 无损、仓库 spcl/QuaRot 印于摘要 | P | 第 1 页摘要 | 已核验(原页目检) |
| EV-03 | 动机:prefill compute-bound;激活离群难量化;此前靠校准集识别离群并保持高精度(Atom/QUIK) | P | 第 1 页 §1 | 已核验(原页目检) |
| EV-04 | 图 1:LLAMA2-7B 第 10 层 FFN 输入激活,旋转前有离群、旋转后无离群 | P | 第 2 页 | 已核验(原页目检) |
| EV-05 | 贡献三条:权重融合 Hadamard、注意力在线旋转使 KV 可量化、3.33× prefill(bs64/seq2048)与 3.89× 解码显存节省 | P | 第 2 页 §1 贡献列表 | 已核验(原页目检) |
| EV-06 | 相关工作:weight-only 主计算仍高精度;LLM.int8/SmoothQuant/Atom/QUIK 的离群通道代价;QuIP/QuIP# 的旋转;KV 量化线(FlexGen/KVQuant/KIVI) | P | 第 2-3 页 §2 | 已核验(原页目检) |
| EV-07 | 在线 Hadamard 口径:QuaRot 每层仅需 1½ 次(QuIP# 类每权重矩阵两次)——提取文件误作 11,已按原页更正 | P | 第 3 页 §2、第 15 页 A.5 | 已核验(原页目检;提取错误已更正) |
| EV-08 | 数学背景:正交/Hadamard/Walsh-Hadamard O(d log₂ d);d≠2ⁿ 的 Kronecker 构造 O(d(m+n));随机 Hadamard H̃=H·diag(s) | P | 第 3 页 §3.1、式 (1) | 已核验(原页目检;log 下标已核正) |
| EV-09 | incoherence processing(式 2):μ-incoherent 定义、正交乘可降 incoherence、QuaRot 同时施加到激活 | P | 第 3 页 §3.2、式 (2) | 已核验(原页目检) |
| EV-10 | 计算不变性(SliceGPT Thm 1):正交变换不改输出;RMSNorm 交换律式 (3);缩放需先吸收 | P | 第 4 页 §3.4、式 (3) | 已核验(原页目检) |
| EV-11 | 方法总览:两阶段;Stage 1 全精度 + 插入两个额外 Hadamard 操作;默认 GPTQ + RTN 激活 | P | 第 4 页 §4 | 已核验(原页目检) |
| EV-12 | Stage 1a:融合 LN 线性部分与 diag(α);W_k←Q⊤diag(α)W_k(式 4);输出侧右乘 Q;X←XQ;全精度下输出不变 | P | 第 4-5 页、图 3 | 已核验(原页目检) |
| EV-13 | Stage 1b:down-proj 前全精度在线 Hadamard(快速核);W_down←H·W_down·Q | P | 第 5 页 Stage 1b | 已核验(原页目检) |
| EV-14 | Stage 1c:W_v/W_out 的 head-wise Hadamard(式 7-8)、恒等式 (9)、Hadamard heads 块 Z←Z(H_nh⊗I)、W_out←H·W_out | P | 第 5-6 页、式 (5)-(9) | 已核验(原页目检) |
| EV-15 | Stage 1d:Q/K 在 RoPE 后在线 head-wise 旋转(式 13-14)、分数不变;Post-RoPE caching vs Pre-RoPE(KVQuant)取舍 | P | 第 6 页、式 (10)-(14);A.1 第 13 页 | 已核验(原页目检) |
| EV-16 | Stage 2a:默认 GPTQ;任何量化方法可用;RTN 以精度为代价 | P | 第 6 页 Stage 2a | 已核验(原页目检) |
| EV-17 | Stage 2b:RMSNorm FP32;对称 per-token;scale=max|·|/7;INT32→FP16 反量化乘行×列缩放 | P | 第 7 页 Stage 2b | 已核验(原页目检) |
| EV-18 | Stage 2c:查询 FP16、在线 softmax 类 FlashAttention、KV 段反量化后 FP16 点积 | P | 第 7 页 Stage 2c | 已核验(原页目检) |
| EV-19 | Setup:clip 0.9(输入)/0.95(KV)、KV 组 128、权重 per-column 对称(MSE 搜索);校准 128 条 WikiText-2、序列 2048;A100 上 70B 修改 5 分钟 + GPTQ 2 小时 | P | 第 7 页 §5 Setup | 已核验(原页目检) |
| EV-20 | 模型/内核/GPU:LLAMA-2 家族;CUTLASS INT4 GEMM(INT32 累加)+ FlashInfer KV 量化;消费级定位 → 全部性能实验在 RTX 3090 | P | 第 7 页、第 7-8 页 §5.2 | 已核验(原页目检) |
| EV-21 | 表 1 全量:Baseline 5.47/4.88/3.32;SmoothQuant 83.12/35.88;OmniQuant 14.26/12.30;QUIK-4B 8.87/7.78/6.91(256 离群);QuaRot 6.10/5.40/3.79;Atom-128G 6.03/5.26;QuaRot-128G 5.93/5.26/3.61 | P | 第 8 页 Table 1 | 已核验(原页目检) |
| EV-22 | 语言生成结论:至多 0.63 PPL 损失(70B 0.47);无需重训练/高精度离群;vs Atom:7B 好 0.1、13B 持平 | P | 第 7 页 §5.1 | 已核验(原页目检) |
| EV-23 | 表 2 全量:7B 69.82→65.64;13B 72.59→69.79;70B 77.07→75.98;平均分损失至多 4.18%(70B 1.09%) | P | 第 7-8 页 §5.1、Table 2 | 已核验(原页目检) |
| EV-24 | §5.2 口径:CUDA/12.1、CUTLASS INT4 TensorCore、INT32 累加器;全部实验在单块(整模型大 batch 装不进集群) | P | 第 7-8 页 §5.2 | 已核验(原页目检) |
| EV-25 | 图 4 左:prefill 加速 7B 1.97/2.06/2.11/2.16×、70B 3.16/3.27/3.32/3.33×(batch 1/4/16/64);可再融合优化 | P | 第 8 页 Figure 4 左 | 已核验(柱顶为印刷标注值) |
| EV-26 | 图 4 右 + 文字:解码显存至少 3.63×;7B 至多 3.75×、70B 几乎全部 3.89×;7B 的 KV 占比更大(70B 用 GQA);整模型预期更大(未测) | P | 第 8 页 Figure 4 右与正文 | 已核验(原页目检) |
| EV-27 | 表 3:RTN INT8 完全保持 FP16;4bit RTN-GPTQ 差 2.27(7B)→0.34(70B);RTN 免校准 | P | 第 9 页 Table 3 与 §5.3 | 已核验(原页目检) |
| EV-28 | 表 4:组大小 256/128/64 → 5.98/5.93/5.88(7B);KV 组固定 128=头维;组越小越准但缩放存储与内核更贵 | P | 第 9 页 Table 4 | 已核验(原页目检) |
| EV-29 | 结论章:99% 下游、2.16× prefill(7B 口径)、「up to 3.39× memory saving」——与引言(§1 贡献列表)/§5.2 的 3.89× 矛盾,照录为原文笔误;6/8bit 无损;未来:残差、MoE、对标 B200/FP4 | P | 第 9-10 页 §6(3.39× 在第 10 页顶部) | 已核验(原页目检;文内不一致照录) |
| EV-30 | A.1:注意力改造顺序(逆融合→W_v 头块 Hadamard→K/Q 在 RoPE 后旋转并量化 KV→out 前跨头 Hadamard);图 5/6 逐数据流位宽 | P | 第 13 页 A.1、图 5-6 | 已核验(原页目检) |
| EV-31 | 表 5:裁剪比消融——输入 0.9 最优(5.828)、KV 0.95 最优(5.510);权重按 MSE 搜索、在线只能常数 | P | 第 13-14 页 A.2、Table 5 | 已核验(原页目检) |
| EV-32 | 表 6:KV 至 3bit 退化 ≤0.21(70B ≤0.07);keys 比 values 敏感(K4V3 +0.03 vs K3V4 +0.18);K2V2 崩至 9.23 | P | 第 14 页 A.3、Table 6 | 已核验(原页目检) |
| EV-33 | 表 7:旋转使 4bit GPTQ 改善至多 2.65、RTN 至多 0.24;2bit GPTQ 70B 5.60 | P | 第 14-15 页 A.4、Table 7 | 已核验(原页目检) |
| EV-34 | 表 8:随机正交 vs Hadamard 7.45/5.84/4.07 vs 6.10/5.40/3.79(差 1.35→0.28);在线仍 1½ 次/层 | P | 第 15 页 A.5、Table 8 | 已核验(原页目检) |
| EV-35 | 表 10:全部实验在线 Hadamard 用 FP32;FP16 化仅噪声级(7B PPL <0.1、零样本 <0.6%) | P | 第 15-16 页 A.7、Table 10 | 已核验(原页目检) |
| EV-36 | 表 11/12:LLAMA-3 更敏感——8B 6.14→8.16(128G 7.36)、零样本 73.22→65.18;70B 2.86→6.66、79.94→69.21 | P | 第 16-17 页 A.8 | 已核验(原页目检) |
| EV-37 | 表 13:Phi-3-mini(ff07dc01)GPTQ INT4 7.85/66.34;RTN INT4 11.69/56.12;INT8 6.58/73.18 | P | 第 17 页 A.9、Table 13 | 已核验(原页目检) |
| EV-38 | A.10 注意力三例程:Init(prefill 缓存初始化,注意力直接 FlashAttention)/Append(量化并追加)/Decode(量化版 flash attention) | P | 第 17 页 A.10 | 已核验(原页目检) |
| EV-39 | 图 7/表 14:4bit 线性层 7B 3.2×、70B 4.3×(batch 1,含 Hadamard;如 70B W_down 12.45→2.91ms);Hadamard 至多 +7%;随 batch 近似线性 | P | 第 18-19 页 | 已核验(原页目检) |
| EV-40 | 表 15 + 文字:INT4 KV 解码 batch≥16 反超(至多 1.72×);batch≤8 更慢(32×128 bs1 0.713 vs 1.033ms);收益在降 IO | P | 第 18、20 页 | 已核验(原页目检) |
| EV-41 | 表 16:prefill 分 batch 明细(7B 含 bs32 2.14×;70B 至 bs32 3.33×;表内无 70B bs64 行,引言(§1 贡献列表)bs64 对应图 4 左) | P | 第 20 页 Table 16 | 已核验(原页目检) |
| EV-42 | 表 17:解码峰值显存明细(7B bs16 3.63×→3.75×;70B bs16 全 3.89×、bs1 3.92×;含逐条 GB 数) | P | 第 21 页 Table 17 | 已核验(原页目检) |
| EV-43 | 官方仓库在线核验:spcl/QuaRot(ETH Zurich SPCL),main @ 5008669b(2024-11-26)、Apache-2.0、无 tag、homepage 指向论文 | R | 论文第 1 页摘要印明;GitHub API 2026-09-15 核验 | 已在线核验(2026-09-15) |
| EV-44 | 论文参考文献印明的依赖仓库 CUTLASS 与 FlashInfer 均在线存在(2026-09-15 核验;CUTLASS 许可为 NVIDIA 自定义 BSD 类) | R | 论文第 11-12 页 References;GitHub API 2026-09-15 核验 | 已在线核验(2026-09-15) |
| EV-45 | 云实例/制品库/服务框架/监控映射示例 | E | 各云厂商公开目录与推理服务文档 | 未逐一在线核验;使用前按当时目录复核 |
| EV-46 | 成本公式、SLO/监控/回滚/清单、数据路径编号与控制面-数据面划分等工程内容 | I | 本报告 §4、§6-§9、§12 | 编辑标注完成;不含伪精确数字 |