一句话结论:FlashMap 用连续流映射替换了块扩散草稿器,一次前向起草 16 个 token,在 Qwen3-8B 上把无损解码加速推到 6.14 倍,代价是训练侧要烧掉约 4600 张 H200 卡时。
大模型推理的成本账单里,解码阶段一直是最难压缩的一块。预填充是并行的,prompt 越长越划算;解码是严格串行的,每吐一个 token 都要把整个模型权重过一遍。投机解码给出了这条路上最主流的解法:先让一个轻量草稿器写出若干 token,再让目标大模型一次性并行验证,只保留其中与自身输出一致的最长前缀。整个过程是无损的,输出与不开投机解码完全相同,收益只取决于两件事,草稿被接受多少,以及草稿本身有多便宜。
过去两年里草稿器的形态换过几轮。EAGLE-3 走自回归路线,轻量但要一个 token 一个 token 地写,草稿越长成本越高。DFlash 换成块扩散,一次前向写完整块,速度上来了,代价是块内每个槽位独立预测,忽略了槽位之间的依赖。2026 年 10 月 17 日,Polymathic AI 与普林斯顿大学、USC ISI、纽约大学、Flatiron 研究所联合发布的 FlashMap 给出了第三条路径,把离散扩散换成连续流映射,在保住一次前向写完整个块的同时,重新把块内的联合结构建模回来。
接受长度才是投机解码的胜负手
投机解码的加速比不取决于草稿器写得多快,而取决于目标模型接受它写出的概率。论文里用的指标叫接受长度,含义是每一轮实际提交的 token 数,其中包含目标模型自己产出的那 1 个。接受长度越高,目标模型被调用的次数越少,加速越明显。
以 FlashMap 在 Qwen3-8B 上温度为 0 的 GSM8K 为例,接受长度 7.69 意味着目标模型平均每验证一次就能确认 6.69 个草稿 token。同一套数据下 DFlash 的接受长度是 7.43,EAGLE-3 是 6.75,差距看似不大,换算成端到端速度就是 6.14 倍对 5.77 倍对 3.20 倍的差别。加速比和接受长度并非线性对应,因为草稿器自身的前向开销也会摊到每一轮里,这正是 FlashMap 把草稿器参数压到目标模型一半以下的原因。
论文的核心观察是,因子化近似才是块扩散草稿器真正的天花板。DFlash 对块内每个槽位独立预测,于是当上下文的合法延续有两个同样可能的分支时,独立的草稿器有一半概率把它们拼在一起。论文举的例子是,模型在写完 in 之后,接下来可能是 new york 也可能是 san diego,独立预测会产出 new diego 或者 san york 这类混搭序列,目标模型在第二个槽位就整段拒收。
FlashMap 的做法是让一次噪声采样同时决定块内所有槽位的模式。每一个噪声样本映射到一整个 token 块,块内不会出现一半新模式一半旧模式的拼接。论文用 shuffle 测试量化了这个差异,把每个槽位的噪声打乱、保留各自的边缘分布、只抽掉槽位之间的依赖,DFlash 的接受长度变化是 0.00,因为它本来就没有联合结构可丢。
速度对照:18 组设置全部领先
下面是 Qwen3-8B 上九项基准的端到端加速比,全部为相对目标模型自回归解码的倍数,测量条件是单张 H200 NVL、并发为 1、bf16 精度、关闭思考模式。
| 方法 | GSM8K | MATH | AIME25 | MBPP | HumanEval | LCB | MT-Bench | Alpaca | Arena-Hard |
|---|---|---|---|---|---|---|---|---|---|
| EAGLE-3(16)T=0 | 3.20 | 3.09 | 2.82 | 2.57 | 2.87 | 2.90 | 1.80 | 1.78 | 1.92 |
| DFlash T=0 | 5.77 | 5.59 | 4.67 | 3.74 | 4.50 | 4.88 | 2.48 | 2.34 | 2.67 |
| FlashMap 1 步 T=0 | 6.14 | 5.89 | 4.89 | 4.02 | 4.73 | 5.26 | 2.73 | 2.56 | 3.04 |
| FlashMap 2 步 T=0 | 5.89 | 5.57 | 4.61 | 3.79 | 4.53 | 5.06 | 2.47 | 2.33 | 2.76 |
| EAGLE-3(16)T=1 | 2.94 | 2.69 | 2.24 | 2.37 | 2.53 | 2.51 | 1.66 | 1.57 | 1.55 |
| DFlash T=1 | 4.89 | 4.24 | 3.23 | 3.42 | 3.82 | 3.54 | 2.24 | 2.06 | 2.05 |
| FlashMap 1 步 T=1 | 5.12 | 4.39 | 3.56 | 3.47 | 3.95 | 3.85 | 2.44 | 2.28 | 2.30 |
| FlashMap 2 步 T=1 | 5.07 | 4.15 | 3.28 | 3.43 | 3.86 | 3.57 | 2.29 | 2.14 | 2.14 |
FlashMap 单步模式在这 18 组温度与基准的组合里全部拿到最高加速比,相对同条件重训的 DFlash 平均快 7.4 个百分点。最好的一格是温度 0 的 GSM8K,6.14 倍;最差的一格是温度 1 的 Alpaca,2.28 倍。这个跨度本身就是结论,数学和代码类任务收益最大,闲聊类任务收益最小,因为闲聊的可预测性低,草稿更容易被拒。
温度把整体加速拉低了大约 1 倍。同一个 GSM8K,温度 0 时 FlashMap 单步 6.14 倍,温度 1 时降到 5.12 倍。随机采样让目标模型接受草稿变得更难,这是投机解码的固有属性,不是 FlashMap 的缺陷。
接受长度:1 步换速度,2 步换接受率
速度之外,论文同时给出了完整接受长度对照。FlashMap 单步在 18 组设置中有 15 组高于 DFlash,两步模式则是 18 组全部领先,平均高出 10 个百分点。
| 方法 | GSM8K | MATH | AIME25 | MBPP | HumanEval | LCB | MT-Bench | Alpaca | Arena-Hard |
|---|---|---|---|---|---|---|---|---|---|
| EAGLE-3(16)T=0 | 6.75 | 6.43 | 5.96 | 5.38 | 6.04 | 6.16 | 3.75 | 3.71 | 3.97 |
| DFlash T=0 | 7.43 | 7.09 | 5.92 | 4.77 | 5.74 | 6.35 | 3.14 | 2.96 | 3.38 |
| FlashMap 1 步 T=0 | 7.69 | 7.24 | 6.00 | 4.95 | 5.82 | 6.65 | 3.34 | 3.14 | 3.71 |
| FlashMap 2 步 T=0 | 8.31 | 7.69 | 6.36 | 5.24 | 6.26 | 7.19 | 3.40 | 3.20 | 3.80 |
| EAGLE-3(16)T=1 | 6.15 | 5.55 | 4.61 | 4.94 | 5.29 | 5.37 | 3.43 | 3.25 | 3.20 |
| DFlash T=1 | 6.30 | 5.40 | 4.10 | 4.37 | 4.88 | 4.62 | 2.85 | 2.62 | 2.61 |
| FlashMap 1 步 T=1 | 6.40 | 5.40 | 4.37 | 4.29 | 4.87 | 4.90 | 3.00 | 2.81 | 2.83 |
| FlashMap 2 步 T=1 | 7.11 | 5.74 | 4.52 | 4.75 | 5.35 | 5.06 | 3.16 | 2.96 | 2.95 |
两步模式在温度 0 的 GSM8K 上把接受长度推到 8.31,这是全表最高值。EAGLE-3 在温度 1 的部分任务上接受长度仍然领先,平均比 FlashMap 单步高 9 个百分点,但它的平均速度要慢 35%。这是一个典型的取舍,接受率最高的不等于整体最快。
shuffle 测试给出了联合结构到底值多少的答案。16 步的连续流教师模型在数学任务上共享与打乱的接受长度差值是 0.82,FlashMap 两步是 0.78,单步只剩 0.32。代码任务分别是 0.59、0.47 和 0.13,对话任务分别是 0.29、0.25 和 0.08。两步模式基本追回了教师模型的联合结构增益,单步只保住了一小部分。
架构与训练成本
FlashMap 的草稿器是一个 6 块的条件扩散变换器,嵌入维度 2048,16 个注意力头,用 adaLN-Zero 按时间步调制,MLP 用 GELU,注意力带 QK 归一化。草稿块大小固定为 16。嵌入矩阵和语言模型头直接复用目标模型并保持冻结,条件信息取自目标模型的第 1、9、17、25、33 层隐藏状态。训练分两段,先训一个连续流教师模型,再用半群蒸馏把它压成一步去噪器。
| 项目 | FlashMap | DFlash | EAGLE-3 |
|---|---|---|---|
| Qwen3-8B 草稿器参数量 | 500M | 1049M | 302M |
| Qwen3-4B 草稿器参数量 | 475M | 537M | 149M |
| 草稿块长度 | 16 | 16 | 16 |
| 训练数据 | Open-PerfectBlend 50 万样本 | 同左 | 同左 |
| 教师模型训练 | 20 轮 3.9 万步 | 同左重训 | 同左重训 |
| 蒸馏训练 | 12 轮 2.3 万步 | 无 | 无 |
训练集群是 4 个 H200 SXM5 节点共 32 张卡。Qwen3-8B 的教师模型约 25 小时,蒸馏约 9 小时,Qwen3-4B 教师模型约 17 小时,加上重训的 DFlash 与 EAGLE-3 基线以及各项消融,全部模型加起来的总算力约为 4600 张 H200 卡时。
论文也坦承这个量级偏轻。作为参照,同源的连续流语言模型原始工作训练超过 100 万步、蒸馏超过 10 万步,FlashMap 的 3.9 万步与 2.3 万步都属于早期版本。作者认为更好的离散流映射蒸馏策略能让单步模型接近多步教师。
树状验证是另一条增益路径。把 4 个独立噪声采样合并成 16 token 的树,验证预算不变,Qwen3-8B 温度 0 下各基准提升 4% 到 24%,平均 11 个百分点。GSM8K 从 6.34 涨到 6.84,MATH 从 5.57 到 6.07,AIME25 从 4.90 到 5.29。把树扩大到 64 可以继续提高接受长度,但加速比不再稳定上升。
部署方式与三个短板
代码已开源,模型权重与插件同步放出。评测栈是 SGLang 0.5.20,drafter 框架用的是 DeepSpec 的固定提交。第三方部署说明补充了 vLLM 0.31 的接法,把 num_speculative_tokens 设为 16,SGLang 0.5.20 用 speculative-algorithm DSPARK 走 FlashMap 草稿路径,温度大于 0 时 vLLM 侧还要设置 draft_sample_method 的 probabilistic 选项,设 num_steps 为 2 可以用速度换接受长度。
论文本身只验证了 SGLang 路径,vLLM 的接入说明来自项目文档而非论文实验,量产前需要自己复测一遍。
第一个短板在较小的目标模型上。Qwen3-4B 温度 0 单步模式下,FlashMap 在 GSM8K、MATH、AIME25、MBPP 四项上低于 DFlash,差距分别是 0.04、0.21、0.09 和 0.01 倍,温度 1 时在 LCB 上还差 0.01 倍。8B 上全面领先的结论不能直接外推到 4B。
第二个短板是评测条件窄。全部加速比都在单卡、并发为 1 下测得,批量服务场景没有评估,而真实生产系统的并发往往远大于 1。
第三个短板是基线不够全。论文主要对照 EAGLE-3 与 DFlash,没有覆盖 DFlash 之后的若干改进路线,比如草稿树、自回归后处理、低秩隐变量混合。
把视角拉远一点看,这条路线和站内记录过的其他推理优化是同一条脉络。DeepSeek 开源的 DeepInfer 推理框架走的是另一条路,官方数字是 GPU 占用减 35%、成本降 28%;llm-d 1.0 把 17000 节点的分布式推理吞吐提升 2.9 倍、首 token 延迟砍掉 85%;TokenGate 用门控剪枝把长上下文预填充提速 11.3 倍。FlashMap 补的是解码这一段,恰好是最难压的那段。至于存储侧的硬约束,英伟达下一代 Groq LPU 放弃 SRAM 转用 3D 堆叠 DRAM,正是针对大模型推理的存储墙,和 FlashMap 处理的是同一条成本链上的不同环节。本地跑的路线另有思路,Recursive Flint 开源的 40B 稀疏模型只激活 2.5B,在本地机器上跑到 131 token 每秒,绕开了投机解码这套工具链。
相关阅读
- FlashMap 投机解码:一次起草 16 token,加速 6.14 倍
- DeepSeek 开源推理框架 DeepInfer:GPU 占用减 35%、成本降 28%
- llm-d 1.0 发布:17000 节点吞吐提升 2.9 倍
- TokenGate 长上下文预填充提速 11.3 倍
- Recursive Flint 开源:40B 只激活 2.5B,本地跑 131 tok/s
- 英伟达下代 Groq LPU 放弃 SRAM 与推理存储墙
常见问题
FlashMap 的 6.14 倍加速能直接用在生产环境吗
不能直接照搬。论文的测量条件是单张 H200 NVL、并发为 1、关闭思考模式,vLLM 接入路径来自项目文档而非论文实验。批量服务场景下草稿器的收益会被并发摊薄,量产前需要用自己的模型和流量重新压测。
FlashMap 和 DFlash、EAGLE-3 怎么选
目标模型是 8B 及以上、且以数学代码类任务为主,选 FlashMap 单步模式,速度和接受率同时领先。目标模型是 4B 或者负载以闲聊为主,DFlash 在这些场景里更稳。想要最高接受率且能接受速度损失,用 FlashMap 两步模式,GSM8K 温度 0 下接受长度能到 8.31。
投机解码会改变模型输出吗
不会。投机解码保留了目标模型生成的最长匹配前缀,输出与不开投机解码逐 token 一致,属于无损加速。加速比取决于草稿被接受的概率和草稿本身的开销,与随机性设置有关,温度越高收益越小。
小结
FlashMap 最有价值的贡献是把块扩散草稿器的联合结构缺失去掉了。DFlash 的因子化近似让块内每个槽位独立决策,一半的草稿会因为混搭模式在第二个槽位就被整段拒收,这个天花板靠加参数加训练都绕不过去。FlashMap 用连续流映射让一次噪声采样决定整块内容,配合两步蒸馏把联合结构的增益追回接近教师模型的水准。
6.14 倍是论文里最好的那一格,不是平均值。温度 0 的数学任务是这个方法的主场,闲聊场景下加速会掉到 2 倍出头。真正落地的门槛在训练成本,半小时级别的 H200 训练换 7 个百分点的平均加速,比值需要自己判断。
延伸阅读
- Kimi K3开放权重:2.8万亿参数MoE开源,MoonEP/FlashKDA/AgentEnv三项Infra同步公开3 周前
- llm-d 1.0发布:17000节点吞吐提升2.9倍,首token延迟砍掉85%1 周前
- FlashMap 投机解码:一次起草 16 token,加速 6.14 倍6 小时前
- Underdog Saluki 27B 压到 7.9GB:工具调用反超完整版4 天前
继续读
同一批更新里这几篇值得一看:
- Qwen3.8 误连阿里云代理:5 模型 3 命中与 2 到 4 成触发率2026-10-29
- EdgeRock-4B 开源:72 MiB 固定 KV,AIME 82.9 分2026-10-27
- TokenGate 长上下文预填充提速 11.3 倍,斯坦福伯克利开源门控剪枝2026-10-26
想快速查定义?对应的词条在这里:
- Qwen词条 · AI 自学笔记
