LongSpec 精读¶
三个组件¶
LongSpec做 target-specific单block drafter,但将自身 KV变为常数:self-attention只保留512 sliding window,随后 cross-attention直接读取本来就存在的 target KV;embedding/LM head也共享。它兼具局部因果与长程target信息,额外draft cache不随context增长。
长位置训练用 Anchor-Offset indices:保留0–3 attention sinks,其余短训练片段随机放到大连续position offset,使高RoPE index获得更新且不改target RoPE base。target loss只约+0.001是经验支持。Flash Noisy Training随机错开Q与target KV,模拟推理时target cache落后draft最多γ步的可见性;接受长相对无噪训练 +14.7%。
Hybrid Tree Attention把target verification拆为:长prefix KV无树mask,用FlashAttention;少量spec KV需ancestor mask,用Triton kernel;通过两部分LSE做精确softmax聚合。这既不是近似attention也不改分布。
五个长上下文数据、强FlashAttention baseline最高 3.26×,平均τ约4;另有相对较慢HF attention最高7×和代码wall-clock 2.34×,引用时需标baseline。训练成本与target KV cross-attn通信未消失;constant draft cache不代表constant target memory。
复现需验证RoPE indices、sink数、Q/K shift、两路LSE数值与tree mask;测draft window、cross target KV、verify kernel。局限是每target训练、attention-sink假设、cross-attn全target KV仍读长序列;Windowed-MTP后来更激进限制draft read。原文第 3–6 页方法,第 6–11 页实验,第 12–19 页证明和实现。
训练—推理一致性的关键点¶
Anchor-Offset 训练中 sink token 保留原始低位置,其余片段整体加同一个随机 offset,片段内部相对距离不变;不能给每个 token 独立随机位置。Flash Noisy Training 则模拟推理时 draft query 比可见 target KV 更靠前的 lag,训练需覆盖 0…γ 而非固定错位。部署时 cross-attention 的 K/V 来自完整 target cache,draft 自注意力的 window cache 单独维护,接受/拒绝只移动各自已提交指针。
Hybrid Tree Attention 的数值合并可由两部分 (max, exp-sum, weighted-value) 或等价 LSE 完成;直接把两次 softmax 输出相加是错误的。测试应将短序列的混合 kernel 与显式 dense ancestor mask 逐元素比较,并覆盖不同树深、空 speculative 区和低精度。评估还应把模型训练收益与 kernel 收益拆开:同一个 LongSpec drafter用普通 tree attention、同一 kernel 配普通 drafter、二者组合。这样才能判断速度来自 proposal、常数 draft cache,还是 verifier 工程。