每 8 个 token 才舍入一次,PACE 把线性注意力状态压到 4 比特

PACE: Periodic and Channel-Aligned Encoding of Four-Bit Recurrent States

Patrick Haller, Filipe Laitenberger, Alan Akbik

cs.CL

2026-10-21

PACE 把线性注意力模型循环状态量化到 4 比特,每 8 token 才舍入一次,三个更大模型上以三分之二显存逼近 8 比特 DAMP。

这篇在解决什么

线性注意力模型(Qwen3.5 这类 hybrid 架构)用固定大小的循环状态替代 KV cache。状态不随上下文变长,但服务器要为每条并发序列存一份:64 条并发时,fp32 状态占到权重加状态总显存的 10% 到 41%。状态压到低精度,同一张卡就能多跑几条序列。

已有量化器(Quamba2、Q-Mamba、DAMP)都在每个 token 生成后舍入一次状态,4 比特下全都掉点,补救要么升 8 比特、要么微调权重。NVIDIA 的报告试过拉长舍入间隔,只用在 8 比特以上。被忽视的事实是 prefill 早就不是这么做的:chunked kernel 把序列切成 64 到 1024 长的块一次算完,状态每块才写一次,所有已发表量化器在 prefill 里本来就是稀疏舍入。解码阶段每 token 舍入,只是 kernel 调用粒度的惯性,不是数学要求。

方法

PACE 是 post-hoc 量化器,不训练、不微调,三个组件各对应一个发现。

每 8 个 token 舍入一次。 每次舍入都往状态注入误差,recurrence 的衰减又把旧误差压下去。论文给出边界:单次舍入的误差能量到下一次舍入最多剩 ah 的 2dP 次方(ah 是头的平均衰减,dP 是舍入周期),累积上界是 eh/(1−ah^2dP),周期越长留存越少。中间生成的 token 存进小的 decode buffer(缓存最近的 key/value),攒满 dP 个一步推进状态。KVBuffer、DeltaLog 这些 serving 工作已经在用同样的缓冲换解码速度,PACE 借它控制舍入频率。显存口径也算得诚实:论文定义 resident bits,把缓冲开销折进每个状态数值的比特数,所有对比按这个口径算。

缩放组沿 key 轴按列切。 分组量化里同组共享一个步长,组里混进大值,小值只能用粗步长。论文发现 gated-delta 状态的大值聚成列:同一个 value 通道在所有 key 位置都大。源头是 delta value,即每个 token 真正写进状态的新增向量,它的某些通道连续很多 token 都很大,外积累积就在对应列堆出高峰。验证很干净:打乱这些通道,列结构消失;打乱 key,列反而更明显。PACE 沿 key 轴切组,每组取自同一列;DAMP 等先前工作沿 value 轴切,一组横跨大小悬殊的多列,步长被最大的列绑架。

按头分配精度。 衰减越接近 1 的头,误差留得越久。PACE 按留存误差给每层的头排序,最持久的四分之一留 8 比特,其余 4 比特。排序每个 checkpoint 用 8 段各 2048 token 的留出文本算一次,负载 5.66 比特/值,与 DAMP INT4 持平。

两个变体:PACE-4 全头 4 比特,resident bits 5.03;PACE-4/8 加头分配、整数零点网格和混合缓冲,resident bits 6.82,是 DAMP INT8(9.9)的 0.69 倍。

结果

四个 backbone(Qwen3.5-4B/9B/27B、Qwen3.6-35B-A3B)上跑 GSM8K、MMLU-Pro、IFEval、RULER-32k、MATH-500 取平均。除 DAMP INT8 保持发表配置每 token 舍入,其余方法都用 dP=8:

方法resident bits9B 平均35B-A3B 平均
全精度状态32.0084.586.5
DAMP INT89.9083.786.3
DAMP INT46.4479.769.0
Q-Mamba DSQ5.0372.871.2
PACE-4/86.8283.785.0
PACE-45.0380.077.3

9B 上 PACE-4/8 与 DAMP INT8 打平(83.7 对 83.7),显存是后者的 0.69 倍;27B 上 87.3 对 87.4,35B 上 85.0 对 86.3。DAMP INT4 在 35B 上崩掉(平均 69.0,MATH-500 剩 43.8),同样 6.44 resident bits 的 PACE-4/8 int8 buffer 版拿到 78.3。PACE-4 与 Q-Mamba DSQ 显存相同,四个模型平均分全更高(35B 上 77.3 对 71.2)。注意 Q-Mamba 是作者复现的 DSQ 量化器,没带原版微调(约 2% 权重),这个对照要打折扣看。

消融:周期 8 在所有低于 8 比特的位宽、四个 backbone 上都赢过每 token 舍入,拿到周期 32 收益的大头、缓冲只要四分之一;key 轴组在 4B 的 WikiText-103 困惑度 7.719,value 轴组 8.158;头分配在同等 resident bits 下 7.687,优于 DAMP INT4 的 8.003。吞吐(H100 PCIe,512 token 上下文):batch 16 起周期 INT4 的 TPOT(每 token 生成时延)低于逐 token bf16,batch 128 低 18.6%,状态更新延迟降到 bf16 的 1/2 到 1/3;batch 1 慢 1.4%,TPOT 降幅大头来自 buffer 本身。

为什么重要

对部署 linear attention 模型的人,这篇直接可用:不改权重、不微调,只改舍入时机和分组方向,状态显存就压到 8 比特 DAMP 的三分之二。状态是随并发线性增长的显存项,省下的比特直接换并发容量。舍入周期能迁移:任何带衰减的 recurrence 都有这颗旋钮,此前没人在 4 比特上单独拧过。也要说清,方法本身由已有件组合(decode buffer、分组量化、混合精度),收益来自把三件事对齐到同一套误差分析,是扎实的渐进改进。

局限与存疑

作者自列:只测了 Qwen3.5/3.6 四个 hybrid 模型,列结构、头衰减分布、头排序都只在这些模型上量过,未验证能否迁移到其他家族、全 recurrence 模型或其他 update 形式;prefill 周期固定在 256,没测变化的影响;吞吐只测了均匀 4 比特状态,PACE 的分组和头分配没进计时;静态 scale、随机舍入、旋转没在周期舍入下试过。

读表格再补几点。4B 上 PACE-4/8 平均 79.6,低于 DAMP INT8 的 80.8,最小的模型上优势不成立。IFEval 四个尺寸全低于 DAMP INT8(9B 上 81.3 对 83.4),指令遵循是稳定短板。RULER-32k 的缺口在三个解码周期下都差不多,作者推测来自 prefill,解码周期救不了长上下文这部分损失。

术语

原文与代码

相关论文

全部论文解读