DLite:面向智慧體的免歷史推測解碼框架

Published · AI Daily — AI-assisted deep research, methodology & disclosure

推測解碼用輕量草稿模型生成候選 token,再由目標模型驗證,是加速大模型推理的主流手段。但智慧體負載的上下文又長又不斷演化,還有頻繁的多輪互動。論文發現,在這類負載下現有草稿模型的接受長度最多下降 80%,而保留歷史 KV cache 又帶來很大的系統開銷。作者認為根源在於不斷增長的歷史上下文,於是提出 DLite:直接重用目標模型的上下文隱藏狀態,只做局部推測預測,不再顯式維護歷史上下文。一個輕量的順序頭以很低的開銷恢復區塊內的因果依賴,並搭配兩階段訓練策略。在通用、長上下文和智慧體負載上,DLite 的接受長度達到 2 到 6,相較最先進的 DSpark 最高提升 70%。

推测解码的思路很直接:让一个小而快的草稿模型先猜出一串候选 token,再让大的目标模型一次性并行验证,猜对的部分就能一口气采纳,从而省下逐 token 生成的时间。这个办法在聊天、写作一类短上下文场景里效果不错,已经是加速大语言模型推理的主流选择。但这篇论文盯上的是另一类越来越常见的负载,也就是智能体(agentic)工作流。智能体要反复调用工具、读取返回结果、再继续规划,上下文既长又在不停变化,多轮交互也很频繁。作者发现,在这种负载下,现有草稿模型的接受长度最多会下降 80%,也就是说草稿猜得越来越不准;同时,如果为草稿模型保留一份历史 KV cache,系统的显存和调度开销又会大幅上升。论文把这两个看似独立的问题归结到同一个根源:不断增长的历史上下文。基于这个判断,作者提出了 DLite,一个免历史(history-free)的推测解码框架,核心主张是草稿模型根本不必背着整段历史去预测。DLite 的做法可以概括为三个部件。

第一,直接复用目标模型已经算好的上下文隐藏状态。目标模型在验证阶段本来就要处理整段上下文,这些隐藏状态里已经浓缩了历史信息,草稿侧无需再单独维护一份历史表示,也就不用保存草稿模型自己的历史 KV cache。第二,草稿侧只做局部推测预测:它面对的不再是一个随对话变长而越来越难建模的问题,而是一个只看当前局部位置的简单预测问题。论文的说法是,把一个越来越复杂的建模问题转化为局部的简单预测问题。第三,由于只做局部预测,一个块内多个候选 token 之间的因果依赖容易丢失,所以作者加入了一个轻量的顺序头(sequential head),以很低的开销把块内的因果依赖补回来,让后面的 token 能参考前面刚猜出的 token。由于这个架构把目标模型的隐藏状态和草稿侧的局部预测拼在一起,属于异构结构,直接训练效果不好,论文为此设计了量身定制的两阶段训练策略,让各部分先各司其职、再协同优化。实验覆盖三类负载:通用任务、长上下文任务和智能体任务,这样既能检验方法在常规场景下不退化,也能检验它在长历史下是否真的守住了接受长度。结果显示,DLite 的接受长度达到 2 到 6,在各类负载上都保持了稳定表现。

与当前最先进的推测解码方法 DSpark 相比,DLite 最高领先 70%。这个数字的意义在于,它是在智能体和长上下文这类原本最容易让草稿模型失灵的场景里取得的,而不是只在短文本上占便宜。需要说明的是,摘要没有给出具体模型规模、各数据集上的细分数字或消融结果,所以各个组件,比如顺序头与两阶段训练,分别贡献了多少,还要回到论文正文去看。但从整体结论可以确认:去掉历史依赖之后,接受长度没有随上下文变长而崩塌,同时省掉了维护历史 KV cache 的系统成本。这项工作的价值在于,它指出了推测解码在智能体时代的一个结构性瓶颈,并给出了一条不同于加大草稿模型的出路。过去的改进多半是让草稿模型更大、更准,但这会抬高自身开销;DLite 反过来,让草稿模型变得更简单、更局部,并借用目标模型已有的计算结果。对工业落地来说,免去草稿侧的历史 KV cache,意味着在长会话、多轮工具调用的服务里能省下显存和缓存管理的复杂度,更容易和现有推理引擎集成。对研究社区来说,它提示我们:加速方法的评测基准应当从短对话转向长上下文和智能体负载,因为两者的表现可能差得很远。后续值得关注的方向包括:这种复用隐藏状态的思路能否推广到不同架构的目标模型,顺序头能否进一步压缩开销,以及在真实的多工具智能体系统里端到端延迟能降低多少。

Sources

FAQ

DLite 是什么?它解决什么问题?

DLite 是一种面向智能体的免历史推测解码框架。DLite 直接复用目标模型的上下文隐藏状态,只做局部推测预测,不再显式维护历史上下文,并用轻量顺序头恢复块内因果依赖,再配合两阶段训练。

为什么智能体负载会让推测解码变慢?

智能体负载上下文又长又会演化,多轮交互频繁。论文发现现有草稿模型的接受长度最多下降 80%,保留历史 KV cache 还带来很高的系统开销,所以推测解码在智能体场景中的加速效果会被明显削弱。

DLite 的效果如何,还需要关注什么?

DLite 在通用、长上下文和智能体负载上的接受长度达到 2 到 6,相比 DSpark 最高提升 70%。文章没有给出模型规模、分数据集数据或消融结果,需要回到论文正文核实各组件贡献。