跳转至

MagicDec 精读

核心结论

“SD只适合小batch”在长上下文不成立:batch和context增大时,target decode越来越受完整 KV读限制;若 drafter用同模型但只读固定稀疏KV,它的相对成本反而下降,同时比参数压缩小模型更贴近target。MagicDec给成本模型选择 draft model、KV压缩算法/预算和γ,并用 sparse-KV self-speculation服务大batch。

理论以 expected生成 Ω(γ,α)、draft cost T_D(B,S,K)、target verify T_V(B,S,γ) 与标准 target step T_T组成 speedup;存在 critical sequence length,超过它压缩KV drafter优于小模型。最佳K不是越小越好:K降低draft时间却损害α;static SnapKV与dynamic top-k retrieval还多一项选择开销。框架以profile/分析找速度最大点。

LLaMA3.1-8B、context中长、batch32–256、多硬件最高约 2.51×,并显示某些区间 batch增大时speedup上升。严格target验证保持分布。结果依特定attention kernel和KV选择;完整target也若采用更强稀疏/线性attention,临界点会变。

复现需用相同target baseline与batch scheduler,分开参数读、draft KV读、selection和verify FLOPs/带宽;扫 (B,S,K,γ,α)而非只报最优。局限是训练免费但需profile、动态retrieval和两份cache view;acceptance对任务/position敏感。原文第 3–5 页成本理论,第 5–8 页MagicDec选择,第 8–12 页结果,第 13–16 页补充。

成本模型的可操作版本

对每个 (batch, context) 桶先实测 target 单 token、target 验证不同 γ、draft 在不同 KV budget K 下的延迟,再从 trace 估计每位置接受概率。候选配置的期望每 token 时间应包含草稿的 γ 次递推、稀疏 KV 选择/搬运、一次验证及拒绝后的浪费;用平均 α 代替位置曲线会系统性高估长 γ。控制器选择后还需在线观察实际接受长和负载,超过漂移阈值再切配置,避免每轮重 profile。

cache 实现应保留完整 target KV 为 verifier 使用,同时建立只含 sink/recent/retrieved positions 的 draft view;position id 必须仍指向原序列坐标,不能因压缩而重编号。动态 top-k 的索引与 gather 成本要计入关键路径,并测试接受后增量更新和拒绝 rollback。最关键的公平消融是:完整 target AR、相同 kernel 的普通 self-draft、只做 KV 压缩而不 speculative、完整 MagicDec;这样才能区分注意力优化、proposal 质量和 SD 调度各自贡献。