← 全部论文2608.30310v2 / r1
版本与下载

Tail-Replay:混合 LLM 前缀缓存的短尾重放机制

论文:Tail-Replay: Escaping the Curse of Linear Attention in Prefix Caching for Hybrid LLMs
作者:Yirui Liu、Ruoling Qi、Xuaner Wu、Penghang Liu、Jian Chen
版本:arXiv:2608.30310v2,2026-10-15 修订;获取与研读日期:2026-10-16。
原文:arXiv v2 · 本地 PDF · 英文汇报幻灯片

论文总览

混合大语言模型把全注意力(Full Attention,FA)和线性注意力(Linear Attention,LA)交替排列。FA 的键值缓存可以按 token 截取;LA 把整个历史压入一个不断覆盖的循环状态。于是,新请求即使与旧请求共享前 $m$ 个 token,也未必能取得恰好位于 $m$ 的 LA 状态。

Tail-Replay 把这个状态恢复问题改成短序列重放:保存每个 FA 层的完整前缀 KV 和逐 token 输出隐藏向量;命中后,从零状态重放匹配前缀末尾的 5% 或 10%,近似恢复各组 LA 状态。 每组都从自己对应的精确 FA 隐藏向量出发,因此重放误差不会沿重放路径跨组继续累积。这里“精确”指原先完整预填充得到的缓存;LA 重建状态仍然是近似值。

作者在三个 Gated DeltaNet 混合模型上报告:LongBench 与 RULER 的基准平均分保留率为 92.8%–99.9%;在约 32K 匹配前缀、5% 重放、传输重叠和末端 FFN 跳过同时开启时,首 token 延迟(TTFT)相对完整预填充加速 9.12–14.32 倍。逐任务表现并不均匀;此外,Qwen3.6-27B 的 RULER 汇总表与附录数据存在实质不一致,具体见结果部分。

这篇论文最值得关注的是:用精确的跨层入口和可衰减的组内循环状态,换取不依赖循环检查点位置的前缀复用。 代价包括近似误差、额外隐藏向量存储,以及随重放长度增加的计算量。

结构地图

原文章节作用PDF 定位
1 Introduction解释混合架构与前缀缓存的状态粒度冲突pp. 1–2
2 Preliminary and Related WorkGDN 递推、检查点方法与相关缓存方案p. 2,式 (1)
3 Method缓存内容、独立组重放、两项执行优化p. 3,图 1、式 (2)
4 Experiment质量与 TTFT 两类实验p. 4,表 1、表 2
5 Conclusion总结贡献p. 4
A Complete Quality Results所有质量任务与长度单元格p. 5,表 3
References相关工作的原始出处pp. 5–7

以下页码均指从 1 开始的 PDF 页码。

一:动机——共享 token 不一定意味着存在可复用状态

1.1 两类缓存的寻址方式不同

假设旧请求是 $P=(t_1,\ldots,t_n)$,新请求只共享前 $m

检查点方法在若干位置显式保存 $S_c$。当命中点 $m$ 不在这些位置时,可以从更早的有效检查点重新计算到 $m$,但复用收益依赖检查点的分布。论文所谓解除限制,针对的是这种恢复边界受检查点约束的问题,而非声称任意命中都能无损、零计算地恢复。

1.2 与已有方法的关系

路线论文中的代表状态恢复依据与 Tail-Replay 的差别
FA 前缀复用RadixAttention 等按 token 保存的 KV天然可以截取前缀,但未解决 LA 状态
循环检查点管理Marconi、Sparse Prefix Caching保留下来的精确循环状态重点在保留哪些状态、在何处放置检查点
局部状态初始化LinearKV缓存的局部线性状态仍保存循环状态作为初始化依据
短尾重放Tail-Replay精确 FA 隐藏向量与零初始化重放不存 LA 检查点,以重算换取边界灵活性

这张表概括原文 Sec. 1–2 的定位;论文实验没有直接比较 Marconi 或 Sparse Prefix Caching,因此后面的加速倍数都是相对 full prefill 的倍数。

二:方法——精确入口、局部近似和独立恢复

2.1 缓存里实际保存什么

图 1:Tail-Replay 的缓存、独立重放与继续推理流程

原图 1,PDF p. 3;直接使用作者矢量图转换的 PNG。按从左到右的顺序阅读:左侧记录旧请求的 FA KV 与 FA 输出隐藏向量;中部对匹配前缀的近期尾部进行分组重放;右侧使用恢复后的状态处理未命中的后缀。中部的 $g_1,g_2$ 表示不同组,每组包含一个 FA 层及其后连续的 LA 层。

对每个 FA 层,缓存是:

$$ \mathcal C=\{(K_i^{\mathrm{FA}},V_i^{\mathrm{FA}},h_i)\}_{i=1}^{n}. $$

其中 $h_i$ 是该 FA 层对第 $i$ 个 token 的输出隐藏向量。不能把这项方法概括成“只保存 KV”:隐藏向量是分组独立重放成立的关键额外缓存。 为了支持不同的匹配终点,缓存覆盖原前缀的逐 token 输出;命中后仅取所需尾部作为重放输入。

符号含义
$n$旧请求的 token 数
$m$当前请求与旧请求匹配的前缀长度
$r$重放比例,实验取 0.05 或 0.10
$k=\lceil rm\rceil$实际重放 token 数;不要与键向量 $k_i$ 混淆
$S_i,\hat S_i$完整预填充状态、短尾重放状态
$k_i,v_i$LA 递推使用的键、值向量,由组内计算产生
$\alpha_i,\beta_i$遗忘门、写入/纠正强度
$T_i$作用于旧状态的转移算子

2.2 一次命中的执行流程

  1. 找到共享的前 $m$ 个 token,取回所有 FA 层对应的前缀 KV。
  2. 对每组取出 $h_{m-k+1:m}$,在尾部起点将该组各 LA 层的循环状态初始化为零。
  3. 用这些隐藏向量依次经过组内 LA 层,重放 $k$ 个位置,得到边界处的近似状态 $\hat S_m$。
  4. 各组分别恢复完成、FA KV 到达设备后,用常规前向处理新后缀并生成。

教学例子:若命中 $m=10{,}000$ 个 token,$r=5\%$,则重放第 9,501–10,000 个位置。假设另一方案最近的检查点在 8,192,则从该点精确恢复需要覆盖之后的 1,808 个位置。这个例子只说明恢复区间的差别;两条路径的每 token 成本和恢复精度并不相同。

2.3 为什么尾部可能足以恢复状态

原文式 (1) 写成:

$$ S_i=T_iS_{i-1}+\beta_i v_i k_i^\top, \qquad T_i=\alpha_i(I-\beta_i k_i k_i^\top). $$

$\alpha_i\in(0,1]$ 控制旧信息的衰减;秩一项改变与键方向有关的状态分量,新外积项写入当前信息。作者的直觉是:若较早历史对当前状态的贡献已被后续更新衰减,从零状态读入近期尾部,就可能接近完整状态。(Sec. 2,PDF p. 2,式 (1)。)

原文没有指定键、值和状态的具体轴布局。上式保留论文记法;若实现采用 $S\in\mathbb R^{d_v\times d_k}$、$v_i\in\mathbb R^{d_v}$、$k_i\in\mathbb R^{d_k}$,则键空间算子应右乘状态,不能直接把原文的左乘式当成矩形张量代码。下文只把 $T_i$ 理解成作用于状态的线性算子,不据此补造模型维度。

以下为本次分析的条件性推导,用于解释机制,并非原文给出的定理。先假设完整计算与重放使用完全相同的转移 $T_i$ 和写入 $b_i=\beta_i v_i k_i^\top$,令 $a=m-k$,则:

$$ S_m=(T_m\cdots T_{a+1})S_a+ \sum_{j=a+1}^{m}(T_m\cdots T_{j+1})b_j, $$
$$ \hat S_m=\sum_{j=a+1}^{m}(T_m\cdots T_{j+1})b_j, \qquad E_m\equiv S_m-\hat S_m=(T_m\cdots T_{a+1})S_a. $$

空乘积取单位算子。因此,短尾重放丢掉的正是尾部开始前的状态经过后续转移后的剩余贡献。如果存在 $\|T_i\|_2\le\rho<1$,就有:

$$ \|E_m\|_F\le \rho^k\|S_a\|_F. $$

对原文形式,一个充分的非扩张条件是键经过单位范数归一化且 $\beta_i\in[0,2]$,此时 $\|I-\beta_i k_i k_i^\top\|_2\le1$;再有统一的 $\alpha_i\le\rho<1$ 才能得到上面的指数界。这些是推导的附加条件,论文只明确给出 $\alpha_i\in(0,1]$,没有估计整模型的收缩率。特别是 $\alpha_i=1$ 且某方向未被键更新影响时,旧信息可以持续存在。

更进一步,组内后面的 LA 层接收的是前面 LA 层近似计算后的输出,转移和写入本身也可能改变。一般误差递推会增加两项:

$$ E_i=T_iE_{i-1}+(T_i-\hat T_i)\hat S_{i-1}+(b_i-\hat b_i). $$

这解释了两个设计选择:增加尾长可以消除更多初始状态误差;缓存每个 FA 出口则为下一组提供精确输入,阻止上一组重放误差继续影响下一组的恢复入口。论文的端到端实验检验的是这两种机制共同作用后的任务质量。

2.4 为什么每个 FA 出口都要缓存

如果只从很早的一层开始重放,近似 LA 状态会改变其输出,再影响下游层的输入。Tail-Replay 在每个 FA 出口重新读取完整预填充时的 $h_i$,于是下一组不需要接收上一组近似生成的隐藏向量。

可以把这些 FA 出口理解为深度方向的精确恢复入口。每组第一层的输入隐藏向量是精确的,组内所有输出和所有循环状态并不会因此自动精确。 后续新后缀仍使用近似恢复的 LA 状态,因此生成质量需要实验验证。(Sec. 3,PDF p. 3。)

还要注意,重放输入是完整预填充得到的 FA 隐藏向量,其本身已经经过对更早上下文的计算;后续请求又保留了全部匹配前缀的 FA KV。因此,远端信息仍有这两条保留路径。5% 的重放效果应理解为这种混合缓存设计的结果,不能据此推断模型只需要最近 5% 的原始上下文。

2.5 两项执行优化

末端 FFN 跳过。 一组最后一个 LA 层完成注意力/循环状态更新后,它的 FFN 输出不再被本次恢复使用:下一组直接读取自己的 FA 输出缓存。因此可以跳过该组最后一层的 FFN。组内中间 FFN 仍用于生成下一 LA 层的输入;新后缀的正常推理也仍需要执行相应网络计算。

传输与重放重叠。 恢复 LA 状态依赖尾部隐藏向量,不依赖完整的 FA KV。在尾部输入可用时,可以让 FA KV 的主机到设备传输与重放在不同流上推进,到处理新后缀前才同步。

下面是本次分析的理想化延迟模型,忽略资源争用并把共同开销记入 $T_{\mathrm{other}}$:

$$ T_{\mathrm{serial}}\approx T_{\mathrm{KV}}+T_{\mathrm{replay}}+T_{\mathrm{other}}, \qquad T_{\mathrm{overlap}}\approx\max(T_{\mathrm{KV}},T_{\mathrm{replay}})+T_{\mathrm{other}}. $$

当重放时间超过 KV 传输时间,继续加大 $r$ 就更容易直接推高 TTFT。尾部隐藏向量自身也必须准备好;这个重叠关系不能理解为所有数据搬运都免费。(Sec. 3,PDF p. 3。)

2.6 储存成本转移到了哪里

取消 LA 检查点同时引入逐 token FA 隐藏向量。用 $L_{\mathrm{FA}}$ 表示 FA 层数,$d_h$ 表示隐藏宽度,$d_K,d_V$ 表示每层每 token 的总 KV 宽度,$b$ 表示每元素字节数;在这些宽度各层相同的简化情形下,本次分析得到:

$$ M_{\mathrm{cache}}\approx nL_{\mathrm{FA}}b(d_K+d_V+d_h). $$

其中隐藏向量的额外部分为 $nL_{\mathrm{FA}}bd_h$。具体数值需要各模型布局和精度;论文未报告等存储预算下与检查点策略的容量、命中率比较。因此,“不存循环检查点”不能直接换算成“总缓存更小”。

三:实验——质量恢复与命中路径延迟分别评估

3.1 模型、硬件和对照

作者使用 OLMo-Hybrid-7B、Qwen3.5-4B、Qwen3.6-27B,均为 Gated DeltaNet 混合模型;硬件为 NVIDIA H100,软件为 PyTorch 2.9.1。(Sec. 4,PDF p. 4。)

对照/变体做什么回答的问题
Full完整预填充质量参照和 TTFT 加速分母
Zero-only复用匹配 FA KV,LA 状态清零,无重放精确 FA KV 本身是否足够
Tail-Replay 5% / 10%从零状态重放匹配前缀近期尾部恢复收益与预算的关系
H2D-SERKV 传输与重放串行执行未启用组合优化时的命中成本
H2D-OVL+skip传输重叠,同时跳过组末 FFN两项优化合用后的延迟

表 2 没有分别列出“仅重叠”和“仅 FFN 跳过”,因而只能量化组合收益,不能从中拆分两项优化的单独贡献。

3.2 质量任务、长度与指标

LongBench 采用 narrativeqa、hotpotqa、qasper、musique、qmsum,指标为 token-F1 或 ROUGE-L,分数越高越好。附录中 narrativeqa 占多个长度单元格,其他四项均为 16K:Qwen3.5 是 16K/32K/64K,OLMo 是 16K/31K,Qwen3.6 是 16K/64K。因此三模型的 LongBench 平均值不是在完全相同的长度集合上求得,不宜用这一列直接给模型排位。

RULER 列出 cwe、qa1、niah、vt 四个任务,在 8K 和 16K 上各测一次,共八个任务—长度单元格,指标为平均 recall,越高越好。论文采用的是这些已评测子集,不应把结果写成覆盖完整基准的全部任务。(表 1,PDF p. 4;附录 A、表 3,PDF p. 5。)

“质量保留率”的含义是同模型、同基准聚合后的分数比例:

$$ \mathrm{Retention}=100\%\times \frac{\mathrm{Score}_{\mathrm{Tail\text{-}Replay}}}{\mathrm{Score}_{\mathrm{Full}}}. $$

它不等于生成文本相同比例,也不等于逐样本正确率。表 1 的保留率和三位小数分数应按作者原报分别读取,不能把三位小数相除后的微小差异当成确定的计算错误。

质量实验未明确交代每个样本的匹配前缀与未命中后缀如何划分,也未给出样本数和解码设置。这限制了实验协议的复现;尤其不能把“重放匹配前缀的 5%”解释成“整个评测输入只处理 5%”。

3.3 TTFT 的测量口径

效率实验使用共享的 narrativeqa 前缀,名义长度为 8K、16K、32K。实际匹配长度略有差别,完整数据见下表。每个延迟是 20 次计时重复的均值;这 20 次属于延迟测量,不是质量实验的样本数。

TTFT 从开始缓存传输或重放计时,直到生成首个 token,计入这一命中恢复路径的传输成本。论文没有将这张表定义为从请求到达、经过排队和缓存查找后的完整在线服务时延,也没有报告并发吞吐。因此加速结论对应的是这里测量的命中路径。

四:结果——重放有效,但收益随模型、任务和预算变化

4.1 LongBench:平均恢复明显,10% 并不处处优于 5%

下表逐项沿用原表 1;括号是作者报告的相对 Full 保留率。

模型FullZero-only5% 重放10% 重放
Qwen3.6-27B0.4260.3130.410(96.2%)0.417(97.8%)
Qwen3.5-4B0.3740.2710.369(98.9%)0.367(98.1%)
OLMo-Hybrid-7B0.3170.1590.294(92.8%)0.297(93.9%)

来源:Sec. 4,表 1,PDF p. 4。

Zero-only 显著劣于 Full,说明仅有精确 FA KV 不足以替代循环状态。5% 的尾部重放就能补回大部分差距。提高到 10% 后,Qwen3.6 和 OLMo 的平均分上升,但 Qwen3.5 从 0.369 降到 0.367;端到端任务分数不呈严格的尾长单调性。

4.2 RULER:检索收益较强,Qwen3.6 的汇总存在冲突

模型FullZero-only5% 重放10% 重放
Qwen3.6-27B †0.9870.2990.985(99.8%)0.986(99.9%)
Qwen3.5-4B0.9600.4150.959(99.9%)0.958(99.7%)
OLMo-Hybrid-7B0.8120.2150.756(93.1%)0.785(96.7%)

来源:表 1,PDF p. 4;此表保留作者原报数值。

Qwen3.5 的 5% 重放平均分已经很接近 Full;OLMo 则从 5% 的 0.756 增加到 10% 的 0.785,额外预算带来的改善更明显。附录中 Qwen 两模型在 niah、vt 上,重放后的所列单元格均达到 1.000,而 OLMo 仍有残余损失。(表 3,PDF p. 5。)

† Qwen3.6-27B 的数值需要单独处理。 表 1 说明 RULER 是八个任务—长度单元格的平均值;按表 3 实际列出的八行做等权平均,得到:

数据依据FullZero-only5% 重放10% 重放
表 1 原报0.9870.2990.9850.986
表 3 八行均值,本次计算0.971250.348000.970000.97125

例如 Full 是 $(1+1+0.895+0.875+1+1+1+1)/8=0.97125$。按附录计算的 5%/10% 保留率分别约为 99.87%/100.00%,也与表 1 不完全相同。两表差距超过末位舍入能解释的范围,原文未说明另一套汇总口径。可以保留“这一模型在所列 RULER 单元格上恢复充分”的判断,但不应把两套数值混用或擅自选一套作为已经修正的结果。

4.3 逐任务结果揭示了平均值掩盖的代价

模型与单元格FullZero-only5%10%说明
OLMo,qasper@16K0.3940.1290.3080.3185%/10% 仅保留约 78.2%/80.7%
OLMo,musique@16K0.3050.1070.2820.273加长尾部后分数下降
Qwen3.5,qasper@16K0.4870.3550.4820.46110% 比 5% 更低
Qwen3.6,qa1@8K0.8950.4050.8800.885召回改善明显,仍略低于 Full
Qwen3.5,vt@16K1.0000.2441.0001.000短尾重放充分恢复此单元格

来源:附录 A,表 3,PDF p. 5。保留率为根据所列分数计算。

这里最有决策意义的是 OLMo 的 Qasper:5% 重放比 Full 少 0.086 个分数单位;若把分数乘 100 展示,就是 8.6 分,相对损失约 21.8%。因此,摘要中的 92.8% 下界是基准平均值的下界,并不是所有任务的保留率下界。另一方面,个别单元格略高于 Full,也不足以据此把近似恢复解释成稳定的质量改进方法。

4.4 TTFT:长匹配前缀带来更大的计算节省

以下为表 2 的关键列。所有延迟单位为 ms;两种重放预算均采用 H2D-OVL+skip。

模型匹配 token 数Full5% 重放5% 加速10% 重放10% 加速
OLMo-Hybrid-7B8,225264.382.93.19×82.73.20×
OLMo-Hybrid-7B16,417533.783.56.39×85.66.24×
OLMo-Hybrid-7B31,3661068.3108.89.82×112.59.50×
Qwen3.5-4B8,226191.675.22.55×75.92.53×
Qwen3.5-4B16,418387.775.05.17×76.05.10×
Qwen3.5-4B31,847786.486.29.12×108.17.27×
Qwen3.6-27B8,226879.6154.35.70×154.75.69×
Qwen3.6-27B16,4181797.2161.611.12×218.18.24×
Qwen3.6-27B31,8473605.2251.814.32×371.39.71×

来源:Sec. 4,表 2,PDF p. 4。加速倍数沿用作者报告,分母为同一行的 Full。

5% 重放、H2D-OVL+skip 的 TTFT 加速

根据原表 2(PDF p. 4)重绘。横轴为名义匹配前缀长度,纵轴为相对同一行完整预填充的 TTFT 加速倍数;三条线分别表示三个模型。实际 token 数以上表为准。

完整预填充成本随前缀变长而明显增加,短尾恢复的增长较慢,所以 5% 的相对加速从 8K 的 2.55–5.70 倍升到约 32K 的 9.12–14.32 倍。尤其是 Qwen3.6,在 31,847 个匹配 token 下从 3605.2 ms 降至 251.8 ms。

当预算从 5% 增至 10%,同一 Qwen3.6 32K 行的延迟从 251.8 增至 371.3 ms,增加约 47.5%;Qwen3.5 从 86.2 增至 108.1 ms,增加约 25.4%;OLMo 只从 108.8 增至 112.5 ms,增加约 3.4%。预算代价与模型执行瓶颈有关,不能只凭“多重放一倍”预测最终延迟。

4.5 两项优化的组合收益

约 32K 时,H2D-SER 与 H2D-OVL+skip 的比较如下。下降比例由原表 2 的均值计算。

模型5%:串行 → 组合优化TTFT 下降10%:串行 → 组合优化TTFT 下降
OLMo-Hybrid-7B158.8 → 108.8 ms31.5%191.7 → 112.5 ms41.3%
Qwen3.5-4B105.8 → 86.2 ms18.5%133.9 → 108.1 ms19.3%
Qwen3.6-27B311.9 → 251.8 ms19.3%453.9 → 371.3 ms18.2%

这些数值说明,除了少算前缀本身,减少重放末端的无用 FFN 和隐藏传输时间也能降低恢复成本。它们量化的是组合优化相对串行 Tail-Replay 的收益,与前一节相对 Full 的加速具有不同分母。

五:结论——值得保留的设计思想与实际取舍

Tail-Replay 的贡献是把混合模型的前缀复用边界与循环检查点位置分开:FA 侧保存逐 token 的精确历史和恢复入口,LA 侧用较短尾部近似重建状态。这个设计把模型本身的遗忘特性转化为推理阶段的复用机会,并用分组入口限制深度方向的误差传播。

实验最有力地支持两点:零状态直接继续通常损失很大,短尾重放确实有价值;对于所测 H100 上的长匹配前缀,恢复路径能显著减少 TTFT。能否替代实际服务中的检查点策略,还取决于相同内存预算下的命中分布、检查点距离、额外隐藏向量容量和任务容忍度;论文没有提供这些路线的直接效率比较。

后续最有价值的方向是让重放长度适应组和请求:在收缩快、任务不敏感的组用较短尾部,在恢复困难的组增加预算或退回精确检查点。同时需要在相同存储预算下比较命中率和恢复成本。这里的自适应机制是本次分析提出的延伸,并非论文已经实现的能力。

对于组会讨论,可以围绕三个具体问题展开:为什么精确的 FA 出口足以切断跨组重放误差;什么样的状态分量会在短尾之后仍未衰减;在 Qasper 这类任务上,如何用可观测信号决定需要更长重放或精确恢复。