一步流映射九项加速全胜,Qwen3-8B 无损最高 6.14 倍

FlashMap: Flow Map Speculative Decoding

Jeff Shen, Zhejian Zhou, Ryan Lee, Jonathan May, Shirley Ho

cs.CL

2026-10-17

FlashMap 用连续流映射一次前向起草整块 token,参数约为 DFlash 的一半。Qwen3-8B 九项基准加速全部更高,平均再快 7.4%,GSM8K 贪心解码达 6.14 倍且分布无损。

这篇在解决什么

投机解码用小模型起草一块未来 token,目标模型一次前向并行验证,从左到右接受,第一处拒绝即停。拒绝采样使输出分布与目标模型相同,加速无损。T=0 时保留与目标 argmax 一致的最长前缀。每轮提交数 γ 含目标在拒绝处补的一个 token,单 token 延迟约是(起草+验证)/γ。验证受访存限制,耗时几乎不随块长变。

EAGLE-3 条件在目标隐状态上,接受高,草稿却要逐 token 自回归,成本随块长涨。DFlash 用块离散扩散一次去噪出整块,起草成本与 K 无关,论文报告可超过 6 倍无损加速。一次去噪独立预测每个位置,提案等于各槽边缘相乘。联合分布相对该乘积的 total correlation 加容量也去不掉。续写若以各 1/2 概率为 new york 或 san diego,独立草稿有一半配成 new diego 或 san york。多步去噪能找回搭配,却直接牺牲少次前向。

方法

FlashMap 把草稿换成 one-hot 嵌入上的连续 flow。状态从高斯噪声走到 K 个 token 的 one-hot,随机性只来自初始噪声,整块共享这一次噪声,一次抽样就定下整块模式。

网络是 6 层 DiT,宽 2048,16 头。槽间自注意力,对目标特征做交叉注意力,再加 MLP,并用 adaLN-Zero 按时间调制。输入为目标第 1、9、17、25、33 层隐状态,在锚点前投影,加上锚点 token 嵌入。锚点即上一轮已被接受的最后一个 token。词嵌入与 LM head 从目标冻结拷贝。各槽交叉熵的权重按 e 的 -(k-1)/7 次方向后衰减,早错一个会废掉后面整段。Qwen3 词表有 151,936 个 token,只在 t 接近 1 时才读得出来,训练因此对 τ 均匀抽样。τ 是初始解码错误已经去掉的比例。

沿 ODE 积完全程大约要 100 次前向。从纯噪声只评估一步,最优预测就是各槽边缘。联合结构靠后面的步骤顺着这次噪声把块收拢。Flow map 把时刻 s 到 t 收成一次前向。半群蒸馏要求这一跳等于经过中点的两跳。零长度跳跃拟合冻结的 teacher,长跳跃用学生拆开的两段来监督。一半的块训零长度跳跃,全部跳跃中 1/16 是从 0 到 1。起草走 1 步或 2 步。

数据为 OpenPerfectBlend 的 50 万条,块长 16。Flow 训约 3.9 万步,峰值学习率 6e-4;蒸馏约 2.3 万步,峰值 5e-5。EAGLE-3 与 DFlash 同一数据、同一设置重训。Qwen3-8B 上 DFlash 约 10 亿参数,FlashMap 约 5 亿。EAGLE-3 树大小 16,对齐验证预算。测速用 SGLang,并发 1,单张 H200 NVL。

结果

一步 FlashMap 在 T=0 与 T=1 的九项基准上都最快。T=0 相对自回归解码的加速如下。

方法GSM8KMATHAIME25MBPPHumanEvalLiveCodeBenchMT-BenchAlpacaArena-Hard
EAGLE-33.203.092.822.572.872.901.801.781.92
DFlash5.775.594.673.744.504.882.482.342.67
FlashMap 1 步6.145.894.894.024.735.262.732.563.04
FlashMap 2 步5.895.574.613.794.535.062.472.332.76

一步比同设置的 DFlash 平均快 7.4%,最高 6.14 倍出现在 GSM8K。T=0 时数学任务的 γ 与加速只高出 2.3% 和 5.5%,对话任务高出 7.4% 和 11.1%。T=1 也是一步领先全部九项,GSM8K 降到 5.12 倍,Arena-Hard 降到 2.30 倍。两步在 18 个加速数字上全部低于一步。

T=0 的 γ 如下。

方法GSM8KMATHAIME25MBPPHumanEvalLiveCodeBenchMT-BenchAlpacaArena-Hard
EAGLE-36.756.435.965.386.046.163.753.713.97
DFlash7.437.095.924.775.746.353.142.963.38
FlashMap 1 步7.697.246.004.955.826.653.343.143.71
FlashMap 2 步8.317.696.365.246.267.193.403.203.80

两步 FlashMap 的 γ 在 18 个设置里都高于 DFlash,平均多 10%,加速赢了 13 个。一步只有约一半参数,γ 在 15 个设置里更高。T=0 的 MT-Bench 上 EAGLE-3 的 γ 为 3.75,高于两步 FlashMap 的 3.40。T=1 时 EAGLE-3 在 6/9 项 γ 领先,平均长出 9%,速度慢 35%。

Shuffle 测试把边缘和槽间搭配拆开:共用一个噪声,对照逐槽换噪声,γ 的差 Δ 来自联合结构。DFlash 以及只评估 1 次的 flow,Δ 都是 0。Flow 积 16 步,数学、代码、对话的 Δ 为 0.82、0.59、0.29。一步 FlashMap 为 0.32、0.13、0.08,两步为 0.78、0.47、0.25。一步只拿回一小部分搭配,两步接近 16 步的 flow。条件接受率同向。一步在块的后部掉得比 DFlash 快;两步第 16 槽在三个领域都更高,块内曲线基本不降。多份噪声拼成树再验证,相对单链大约可以再快 11%。

为什么重要

换的是草稿器,目标模型的采样分布保持原样。Qwen3-8B 上最快的是 1 次前向、约 5 亿参数的配置,九项加速都高于 DFlash 和 EAGLE-3。数学和代码约 4 到 6 倍,对话约 2.5 到 3 倍。绝对加速的主场是结构化文本。

和 DFlash 比,同一数据、同一验证预算下约 7.4% 的加速,属于增量。和 EAGLE-3 比,γ 互有胜负,端到端差在自回归起草的延迟。一步留下的 Δ 只有零点几个 token。只付得起一次起草前向时,多出来的主要是稍好的边缘预测,加上更小的网络。

局限与存疑

只评了 Qwen3-4B 与 Qwen3-8B。其他家族和更大目标没有结果,4B 的数在附录。三个草稿都只用 OpenPerfectBlend 的 50 万条,绝对 γ 不能和全量数据训练的草稿比。速度测在并发 1 的单卡上,批处理服务没有做。任务是英文的数学、代码和对话,温度只有 0 和 1。没有比较接在 DFlash 上的草稿树、自回归后处理和低秩混合。训练步数也可能偏少,flow 语言模型原文约 100 万步训练、10 万步蒸馏,这里是 3.9 万步和 2.3 万步。

一步最快,一次前向并没有把块内依赖捕获完整。一步的条件接受率在块后部掉得比 DFlash 更快,把 K 再拉长帮助有限。共享噪声时,一步和两步的接受都还低于 16 步 flow;换独立噪声后,边缘也同样更差。块长曲线每个点只跑一次,论文写了没有误差。训练块长 16、推理改短的损失,文中转引的是约 0.15 个 token,不是这篇自己测的。

术语

原文与代码

社区讨论

相关论文

全部论文解读