Back to blog

Stage-Replay Divergence Follows the KV Cache: Fixed-Prefix Precision Controls and Bidirectional Cache Transplantation

BF16下KV缓存的增量构建与一次性prefill虽然token相同但产生不同轨迹;FP32消除分歧;双向K/V缓存移植使所有分歧轨迹跟随donor

Stage-Replay Divergence Follows the KV Cache: Fixed-Prefix Precision Controls and Bidirectional Cache Transplantation


一、论文概述

项目内容
标题Stage-Replay Divergence Follows the KV Cache: Fixed-Prefix Precision Controls and Bidirectional Cache Transplantation
作者未在HTML中明确列出(待补充)
机构未在HTML中明确(涉及Qwen2.5衍生系统)
论文arXiv:2607.28495
发布2026-07 (cs.CL)
许可未明确

二、核心思想

问题定义

Stage-replay diagnostics(阶段重放诊断)要求模型从先前生成轨迹的中间点继续生成。这支持反事实token-credit估计、前缀干预、固定上下文聚合探测和特权中间状态蒸馏。

已有工作存在一个关键缺陷:将存储的文本作为**新提示重新输入(fresh re-feeding)**来重建上下文。即使token ID完全一致,这种做法也不能保证重建的续写与原始解码器从该点产生的续写一致。原因在于:

  • 活自回归解码(live decode) 通过增量缓存更新到达边界
  • 新鲜重放(fresh replay) 通过prefill重新计算相同前缀
  • 缓存开启与缓存关闭的执行可能在内核结构、内存布局和浮点累加顺序上不同
  • 批次组合同样可以改变归约顺序和输出

可重复性只表明每个执行契约稳定;token一致性只表明两个契约消费相同的离散前缀。两者都不能确立内部状态或其下游轨迹的等价性。

解决方案概述

论文设计了一个系统性实验框架,在Qwen2.5衍生的多分支推理系统上分离四个层次:

  1. 副本稳定性(Replica stability):同一构造的两次独立执行是否位精确一致
  2. Token一致性(Token identity):两种构造是否消费相同离散前缀
  3. 活状态保真度(Live-state fidelity):重建是否保留了实际到达的状态
  4. 因果状态充分性(Causal state sufficiency):提出的状态变量是否携带了分歧轨迹

核心发现:在BF16精度下,即使token完全一致,一次性prefill重建的状态与增量缓存保留的状态在83%的项上产生不同的后缀轨迹;FP32精度消除所有解码分歧;双向完整K/V缓存移植使每个分歧轨迹跟随donor缓存。


三、技术架构

推理系统结构

模型生成三个推理分支 C=(c1,c2,c3)C = (c_1, c_2, c_3)、一个合并 mm 和一个答案 aa:

C←Gθ(x),m←Mθ(x,C),a←Aθ(x,C,m).(1)C \leftarrow G_{\theta}(x), \quad m \leftarrow M_{\theta}(x, C), \quad a \leftarrow A_{\theta}(x, C, m). \tag{1}

扁平化的token序列有六个有序、非嵌套块:

<|prompt|> x <|/prompt|> <|cot_1|> c₁ <|/cot_1|> <|cot_2|> c₂ <|/cot_2|> <|cot_3|> c₃ <|/cot_3|> <|merge|> m <|/merge|> <|answer|> a <|/answer|>

六角色可见性合约(Table 2):

查询角色可见键角色
PromptPrompt
Branch iPrompt, branch i
MergePrompt, branches 1–3, merge
AnswerPrompt, merge, answer

Answer tokens不能直接attend到branch tokens。结构logits mask强制块顺序:块内只有该块的闭合分隔符是合格的结构输出,块间只有下一个开启分隔符合格。分支/合并/答案分别有768/512/64的content-token上限。

边界定义

研究的状态是处理完唯一 <|merge|> token之后、第一个merge-content token被选择之前的状态。设 zz 为到该分隔符的精确整数token前缀。

三种缓存构造名称

名称定义
Live cache从普通自回归生成中保留的缓存
Incremental cache在teacher forcing下从固定token逐token重建的缓存
Prefill cache从这些token通过一次前向调用构建的缓存
Replica同一构造的第二次存储隔离实例,仅用于测量构造内基准

实验设计

实验1:匹配的live-cache/fresh-prefill矩阵

每问题生成一次边界,创建四个存储隔离的续写:

  • 保留的live DynamicCache + 位精确存储隔离副本
  • 从相同整数token前缀的一次性prefill + 独立prefill副本

所有四臂使用一个共享后缀解码器,以及相同的token、角色状态、可见性mask、位置、缓存位置、限制和物理批次成员。在BF16和FP32下分别运行。

实验2:固定前缀精度交叉 2×22\times 2

冻结每问题一个离散边界状态,然后交叉数值精度。前缀库包含实验1的全部200个BF16 token前缀,长度1,025–5,080 tokens。每个BF16和FP32 cell消费相同的整数token、角色、可见性、位置和padding序列。

相对漂移度量:

drel=∥Kinc−Kpre∥2max⁡(∥Kinc∥2,∥Kpre∥2).(2)d_{\text{rel}} = \frac{\lVert K_{\text{inc}} - K_{\text{pre}} \rVert_2}{\max(\lVert K_{\text{inc}} \rVert_2, \lVert K_{\text{pre}} \rVert_2)}. \tag{2}

实验3:live到incremental的桥接

12行通过均匀间隔顺序统计量选择(按保存的200个BF16前缀长度排序;不读取预期答案和先前结果)。每行先到达并保留新的live merge-boundary缓存,然后逐token构建incremental缓存,比较两者。

实验4:双向KV缓存移植

32行从已完成的BF16固定前缀矩阵中冻结:24个后缀分歧行 + 8个后缀精确行。每行重建incremental和prefill状态。双向移植:prefill recipient的所有48层K/V对被incremental donor的存储隔离副本替换,反之亦然。Recipient的token、角色、mask、位置、padding、缓存位置、后缀解码器和干预前边界logits保持不变。

实验5:结果盲检checkpoint复制

在后续14B checkpoint上冻结48行(按前缀长度和问题标识符均匀间隔选择;不读取任何先前后缀或移植结果)。6臂:每构造两个副本 + 两个双向完整缓存移植。

可重复性合约(Table 3)

字段冻结值
软件Python 3.12.13; PyTorch 2.10.0+cu128; Transformers 5.3.0; CUDA 12.8; cuDNN 9.10.2
硬件1× NVIDIA B200 (compute 10.0), tensor parallelism 1
注意力Hugging Face SDPA; eager inference mode; torch.compile disabled
数值标志BF16: TF32 matmul disabled, cuDNN TF32 enabled; FP32: both disabled, float32 matmul precision=highest
解码Greedy (temp=0, top-p=1, top-k=0); physical batch=2 (duplicate copies); caps 768/512/64
边界状态检查精确token ID、角色ID、可见性状态、位置、缓存位置、padding状态、缓存序列长度和张量元数据
固定前缀交叉200个冻结整数前缀用于所有4个precision×construction cell; teacher forcing逐token; 长度1,025–5,080
移植24 prior-divergent + 8 prior-exact; bidirectional 48-layer K/V swaps

四、核心创新

创新点说明实验依据
匹配保真度与精度控制retained-live矩阵隔离边界状态构造;固定前缀 2×22\times2 识别精度调节;前瞻性桥接连接逐token构造与普通live解码BF16: 166/200后缀分歧;FP32: 0/200
直接状态干预双向完整缓存移植使每个分歧后缀跟随K/V donor24/24 + 43/43 bidirectional donor recovery
紧凑保真度协议分离副本稳定性、token一致性、活状态保真度和因果状态充分性,同时保留任务级配对结果4个实验层次递进验证
结果盲检复制在不同later checkpoint上冻结48行,不读取任何先前结果43/43 donor recovery on 43 divergent rows

五、代码实现分析

论文未公开代码。实验基于Hugging Face Transformers库实现,关键实现要点:

  • 模型:14B多分支模型,衍生自Qwen2.5-14B-Instruct,经merge-targeted策略更新
  • 运行时:PyTorch SDPA,eager inference mode,torch.compile禁用
  • 批次设计:physical batch=2(同一问题的重复副本),fail-closed if desynchronized
  • 完整性门控:合取式200问题全部门控——副本对在边界状态、缓存张量、logits、后缀和记录几何上精确一致;存储隔离;功能性token/角色/可见性/位置/padding一致
  • 移植协议:验证来源、shape、stride、dtype、sequence length和存储无别名;recipient边界logits和所有非缓存功能性状态保留

六、实验结果

实验1:BF16下live-cache与fresh-prefill分歧

指标BF16结果FP32结果
副本对精确200/200200/200
Live/prefill缓存位精确0/2000/200
立即argmax不同0/2000/200
后缀不同166/200 (83.0%)0/200
答案不同49/200 (24.5%)0/200
正确性标签不同20/200 (10.0%)0/200
Live正确率93/200—
Prefill正确率95/200—
正确率差+1.0 pp (CI [-3.5,+5.5])—
首次分歧位置(中位数)88 tokens后 (范围4–453)—
McNemar p值0.824—

关键发现:结果是轨迹和项翻转,不是精度增益。9个live-only成功 + 11个prefill-only成功,但净正确率差仅+1.0 pp。FP32仅有小的非位精确缓存和logit差异,但无解码分歧。

实验2:固定前缀精度交叉(Table 4)

200个问题,每个使用相同整数前缀跨精度:

量BF16FP32
前缀跨精度精确200/200200/200
副本对精确200/200 each200/200 each
Incremental/prefill缓存精确0/2000/200
缓存最大绝对差4.4090.001857
缓存相对 L2L_2 差0.012244.270×10−64.270\times10^{-6}
Incremental/prefill logits精确0/2000/200
Logit最大绝对差0.43750.0001044
后缀不同166/2000/200 (CI [0,1.88]%)
答案不同49/2000/200
正确性标签不同20/2000/200
Incremental/prefill正确率93/9592/92
正确率差+1.0 pp ([-3.5,+5.5])0.0 pp ([0,0])

配对统计检验:

  • 后缀分歧减少:83.0 pp(bootstrap CI [77.5,88.0]),p=2.14×10−50p = 2.14\times10^{-50}
  • 答案分歧减少:24.5 pp([18.5,30.5]),p=3.55×10−15p = 3.55\times10^{-15}
  • 正确性翻转减少:10.0 pp([6.0,14.5]),p=1.91×10−6p = 1.91\times10^{-6}

精度调节确认:缓存在两种精度下都非位精确,但BF16的相对 L2L_2 差(0.01224)比FP32(4.27×10−64.27\times10^{-6})大4个数量级。条件于精确副本和固定整数状态,数值精度调节构造差异是否在行为上可见。

实验3:live到incremental桥接

12行全部通过副本、状态、存储和物理重复完整性门控。条件于新到达的live token前缀,incremental构造在所有48层上与保留的live缓存位精确一致(12/12)。边界logits和完整greedy后缀同样在12/12上精确一致。新到达前缀跨度1,463–4,642 tokens。

saved-ledger行为审计:前缀ID和问题顺序在200/200行一致。Later incremental arm在200/200行逐token复现原始live后缀;副本和prefill arm也在200/200复现。所有1,158个标量leaf在200/200行一致。

实验4:双向KV缓存移植(Table 5)

32行全部完成。24个先前分歧行 + 8个先前精确行的同期基线复现。

终点结果Wilson 95% CI
Prefill recipient跟随incremental donor24/24[86.2,100]%
Incremental recipient跟随prefill donor24/24[86.2,100]%
双向都恢复donor24/24[86.2,100]%
精确控制行产生第三轨迹0/8[0,32.4]%

完整移植只改变缓存K/V张量:recipient边界logits和所有非缓存功能性状态保留,立即argmax共享。下游切换必须由捐赠的缓存在后缀解码恢复后中介。完整边界K/V缓存在这些选定的敏感状态上是因果充分的。

实验5:结果盲检later checkpoint复制(Table 6)

48行全部完成。Later checkpoint的同期incremental/prefill后缀在43/48行分歧(89.6%)。

终点结果Wilson 95% CI
Incremental/prefill后缀分歧43/48[77.8,95.5]%
Prefill recipient跟随incremental donor43/43[91.8,100]%
Incremental recipient跟随prefill donor43/43[91.8,100]%
双向都恢复donor43/43[91.8,100]%
精确控制行产生新轨迹0/5[0,43.4]%

条件复制:donor recovery完整,但仅5个自然精确控制出现(比注册最低6个少1),不满足”强复制”标签。


七、相关工作

推理非确定性性与重放保真度

  • Yuan et al. (2025):批次大小、GPU数量和硬件改变响应和基准分数
  • TBIK (Zhang et al., 2026):跨tensor-parallel配置对齐归约顺序
  • MarginGate (Chu et al., 2026):验证低margin BF16步骤并修复当前K/V列中的确认不匹配
  • Chodavarapu & Xu (2026):比较cache-on/cache-off推理,报告FP16轨迹分歧在FP32下消失;在residual stream上干预,提出KV-tensor干预作为未来工作(本论文实现了该干预类)
  • Matteson (2026):比较从验证decode-time KV块恢复的续写、第二次精确恢复pass和fresh re-feeding

结构化推理中的阶段边界

  • Self-consistency (Wang et al., 2023):采样多样推理路径,边际化选择答案
  • Branch-Solve-Merge (Saha et al., 2024):分解任务为并行子任务并融合

本论文的独特定位(Table 1):不是re-feeding或精度敏感性的首次发现,而是它们在固定token、whole-stage任务设计中的组合——带有live和replay副本基准、前瞻性live/incremental桥接、直接双向KV移植和结果盲检checkpoint复制。


八、总结

核心贡献

  1. 匹配保真度与精度控制:retained-live矩阵隔离边界状态构造;固定前缀 2×22\times2 识别精度调节;前瞻性桥接验证12行tensor-exact + 200行轨迹和指纹复现
  2. 直接状态干预:双向完整K/V缓存移植在两个实验中使67个分歧行全部跟随donor(24/24 + 43/43),精确控制行不产生第三轨迹
  3. 紧凑保真度协议:四层递进设计分离副本稳定性、token一致性、活状态保真度和因果状态充分性

关键结论

测量规则:重建的上下文不应被解释为端到端解码器占据的状态,除非比较包括:

  • 保留的live参考
  • 副本基准
  • 精确token/角色/mask/位置合约
  • 感兴趣的终点

精度效应:BF16下缓存相对 L2L_2 差为0.01224导致83%后缀分歧;FP32下差为 4.27×10−64.27\times10^{-6} 且无解码分歧。精度调节构造差异是否行为可见,但不识别唯一低层原因。

因果充分性:完整边界K/V缓存在所有测试的分歧状态上是因果充分的载体——交换K/V张量(同时保留token状态和边界logits)使下游轨迹跟随donor。

局限性

  • 机制分辨率:不识别唯一内核操作;精度改变所有算术;K/V联合交换不分离各自角色
  • 桥接限制:12行tensor-exact但无匹配早期保存前缀;200行审计是轨迹和指纹复现而非retrospective tensor等式
  • 外部有效性:两个checkpoint属于同一Qwen2.5衍生多分支家族;一个GPQA Main holdout、一个B200、HF SDPA、greedy解码、physical batch=2
  • 移植子集选择:主实验24个分歧行条件于已知敏感性,不估计总体频率;later实验48行是确定性长度间隔面板
  • vLLM交叉检查:stock Qwen2.5-14B-Instruct在vLLM 0.24.0 batch-invariance mode下10/10 prompt精确;singleton vs paired 7/10 token一致——诊断批次组合而非live/prefill构造

技术影响

该研究对LLM推理中的stage-replay diagnostics实践有直接规范意义:任何将存储中间文本用作重建状态的实验(merge-stage probes、counterfactual token credit、privileged-context distillation、branch adjudication、stage-specific ablations)都应执行live-state比较,否则测量的是重建状态的行为而非端到端解码器状态。这对依赖prefix caching和KV cache复用的推理服务系统也有启示——BF16下不同缓存构造路径可能产生不同轨迹。


九、参考资源