论文
AdaSpark:在线学习树验证与 N-gram 补全的自适应 DSpark
AdaSpark: Adaptive DSpark with Online Learning for Tree Verification and N-gram Fill
摘要
DSpark 等块草稿模型在一次前向中为多个位置提出有排序的候选,再由树验证器用目标模型的一次前向验证。验证行数需要权衡:更宽的树预期接受更多 token,但验证也更耗时。多数调度器从服务前测得的表或模型取得验证时间,在线至多修正一个比例因子;接受率则来自草稿模型的置信度或离线拟合映射。AdaSpark 在服务过程中同时学习这两个量,无需预先性能剖析、校准或扫描。它学习哪些验证宽度值得使用,并针对各宽度拟合随上下文变化的验证耗时。它以草稿模型置信度头作为输入之一,根据目标模型的实际验证结果拟合每个候选的接受概率,再按该拟合结果,而非直接按置信度头,排列和确定树的规模。同一模型也为请求原文中的 n-gram 延续估价,使模型草稿与文本候选在同一个最佳优先顺序中竞争验证行。树宽度按长期解码速率给验证时间定价后选择。在六个公开数据集的单轮及多轮对话、三个稠密目标模型和一个 MoE 目标模型上,使用相同草稿模型时,AdaSpark 比 llama.cpp 的 DSpark 快 1.5—3.1 倍。启用 AdaSpark 的 imparo 引擎,比使用三 token 链的 imparo 快 1.17—1.52 倍,三 token 链是 llama.cpp 的默认设置;该增益仅来自调度器。无需扫描宽度,在任何稠密目标模型或上下文区间上,AdaSpark 相对最佳固定树宽度的减速均不超过 0.3%。在 MoE 目标模型上,它与最佳固定宽度持平,其余 4—16 行固定宽度则慢 5%—14%。