DFlash 2: Keep Drafting Parallel

发表时间: 2026-08 · Blog post by Inco AI (inco.ai)

原文: https://inco.ai/blog/dflash2/

作者/机构:Inco AI


速读

一句话结论 DFlash 2在保留单次前向并行草稿架构的前提下,通过引入双线性候选路径选择器与双抽头动态局部卷积,仅以约1.3%的周期延迟开销,使投机采样单次验证的Token产出提升16%至25%,在主流模型上实现了自回归解码2.7至4.6倍的推理吞吐。

要解决什么问题 投机采样(Speculative Decoding,由轻量草稿模型生成Token块并交由目标模型单次并行验证)是降低大模型推理延迟的核心手段。DFlash虽将草稿生成改造为全块并行的单次前向,但各位置独立预测带来了两个核心机制瓶颈。首先是块内缺乏连贯性:各位置独立选出的Top-1词单独看似合理,拼接后却常因词语重复或不顺畅导致验证提前中断;实际上正确Token极大概率已存在于各位置前16个候选词中(如GSM8K上首位Top-1召回为85.4%,而Top-16召回高达99.5%),但Domino与DSpark等方法依赖耗时的顺序自回归头重写全词表分布,抵消了并行红利。其次是后缀衰减(Suffix Decay):各位置候选词质量随序列后移而劣化,这是因为注意力机制需兼顾块前上下文与块内依赖,深层注意力向块内分配的权重从第1层的30%骤降至第5层的8%,导致深层无法维持块内依赖;若单纯将草稿模型堆叠至15层,不仅无法针对性解决局部交互,还会带来15.2%的周期延迟开销。

怎么做的 DFlash 2的核心思路是在不进行任何额外自回归前向的前提下,用低开销路径挑选代替重新预测,并将块内短程依赖与上下文长程注意力彻底解耦。该方法由两个轻量部件构成。一是轻量路径选择器(Path Selector):每个位置保留前16个候选Token,利用低秩双线性注意力在各位置间完全并行地对所有相邻候选对打分。对于前驱候选 $a$ 与当前候选 $b$,其打分公式为:

$$S_t(a,b)=U_t(b)+\langle A(a)\odot H(h_t),B(b)\rangle$$

其中 $U_t(b)$ 为原始Logit得分,$A$ 与 $B$ 将Token映射至256维低维向量,$H(h_t)$ 为基于当前隐状态 $h_t$ 的上下文门控。所有相邻候选对的打分均单次并行算毕,仅在最终确定Token时沿预计算得分执行顺序游走,以2.0M参数与0.6%延迟开销恢复块内连贯性。二是轻量局部卷积(Dynamic Short Convolution):针对后缀衰减这一局部短程依赖问题,在草稿模型每层注意力与前馈子层前后插入双抽头动态深度卷积:

$$\operatorname{Conv}_{k}(x)_t = k_{t,0}\odot x_t+k_{t,1}\odot x_{t-1}$$
该卷积仅向前跨越一个位置,首位读取前序验证Token,卷积核由可学习基底核与隐状态计算的动态校正项相加(每16通道共享一组校正)。它在单次并行前向中完成跨位置信息混合,接管了块内局部交互,使第4至5层的块内注意力占比降至0.5%,释放注意力层专注于长程上下文。

效果如何 实验在批次大小为1并采用无损拒绝采样的设置下完成,基线涵盖原生自回归解码路线、多Token预测路线MTP(Multi-Token Prediction)、单次并行草稿路线DFlash,以及采用自回归修正头路线的DSpark。在Qwen3.5-4B上跨GSM8K、MATH-500、HumanEval等五项任务测试,DFlash 2平均接受长度达5.97个Token,相比DFlash的4.92提升21%(增加1.05个Token),优于MTP(4.54)与DSpark(5.49)。在Qwen3.8-27B(块大小8)上,平均接受长度达到4.80,显著超越MTP(4.28)与DSpark(3.62),端到端吞吐达自回归解码的2.7至3.4倍。在Meta的Muse Glimmer(30B,块大小16)上,平均接受长度达5.70,优于官方DFlash(4.44)与DSpark(4.48),吞吐达自回归的3.1至4.6倍。代价方面,两项改进仅增加18.5M参数(约3%)与1.3%的周期延迟。作者承认该方案仍存在局限:选择器仅采用最简单的相邻二元配对打分,与GSM8K上6.79的理论Oracle上限仍有差距;动态卷积也仅向前看一个位置,尚未覆盖更复杂的长距块内依赖。

主要贡献

在智能体(Agent)时代,大模型需要持续阅读、规划并调用工具,其消耗 Token 的规模与速率远超传统对话场景,导致推理延迟与成本成为系统核心瓶颈。投机解码(Speculative Decoding)通过由轻量级草稿模型生成候选 Token 块并由目标模型进行单次前向验证,成为现代低延迟推理栈的核心技术。第一代 DFlash 打破了草稿生成阶段依赖自回归逐字预测的范式,实现了整个草稿块的单次并行预测(One-pass Parallel Drafting)。

然而,完全独立地并行预测每个位置会导致缺乏序列连贯性以及严重的“后缀衰减”(Suffix Decay)现象,使得候选块在目标模型验证时容易提前被截断。近期工作(如 Domino 与 DSpark)通过引入自回归重写头来修正连贯性,但这牺牲了纯并行草稿的高吞吐优势并带来了高昂的计算开销。

针对上述挑战,Inco AI 提出了 DFlash 2,其核心贡献与创新点包括:

  1. 揭示纯并行草稿的选择空间(Selection Headroom):观察到并行草稿模型在前 16 个高频候选词中的召回率极高(例如首位达到 99.5%),误差往往来自最佳候选选择不当而非生成失败,证实了无需重新计算全词表自回归分布即可恢复连贯性。
  2. 轻量级路径选择器(Lightweight Path Selector):提出了基于紧凑向量空间的低秩双线性打分机制,对每个位置保留 Top-16 候选并在完全并行的模式下对相邻候选对进行打分,仅需 2.0M 额外参数和 0.6% 的周期延迟增加,即可显著提升接受长度。
  3. 揭示后缀衰减的局部性并设计动态短卷积(Lightweight Local Convolution):发现随层数加深注意力机制在草稿块内的注意力占比断崖式下跌(从第 1 层的 30% 降至第 5 层的 8%),证实跨位置建模主要集中在邻近 Token 之间。据此设计了块内双分支(2-tap)动态深度可分离卷积,以 16.5M(3%)额外参数使 5 层模型逼近 15 层模型的深层表征能力,大幅缓解后缀衰减。
  4. 端到端加速与广泛生态适配:在验证输出完全等价的前提下,DFlash 2 相比 DFlash 实现了超过 20% 的单次验证接受长度提升(在多项基准测试上平均多接受 1.05 个 Token),而 draft-verify 周期延迟仅增加约 1.3%。在单批次(batch size 1)部署下,相较于标准自回归解码实现了 2.7–3.4× 的吞吐提升(Qwen3.8-27B)以及 3.1–4.6× 的吞吐提升(Muse Glimmer-30B)。

背景知识与关键观察

候选集中蕴含充足的选择空间

独立并行预测面临连贯性缺失挑战。DFlash 独立且并行地预测草稿块中的每个位置。尽管每个位置的最高概率预测在局部角度都是合理的,但各位置之间缺乏显式约束,极易生成不连贯的候选序列(例如出现连续相邻位置输出相同词的重复现象),从而在目标模型验证阶段被提前截断。近期的方法(如 Domino【Domino, 2026, arXiv:2605.29707】和 DSpark【DSpark, 2026, arXiv:2607.05147】)采用引入序贯自回归头重写各位置全词表概率分布的策略来换取连贯性,但这带来了沉重的延迟惩罚。

并行草稿候选池中已包含正确答案。通过分析 DFlash 自身生成的候选词列表可以发现,第一位置上 DFlash 的 Top-1 准确率为 85.4%,但正确 Token 出现在 Top-16 候选中的概率高达 99.5%(见表 1)。即使 Top-1 预测错误,正确答案也绝大多数落在候选列表中。

指标 位置 0 位置 1 位置 2 位置 3 位置 4 位置 5 位置 6 接受长度
Recall@1 85.4% 80.3% 79.4% 78.3% 77.5% 75.9% 72.9% 4.27
Recall@16 99.5% 97.3% 94.8% 92.6% 90.8% 89.4% 87.8% 6.79

表 1. 五层 Qwen3-4B DFlash 在 GSM8K 上的表现:各草稿位置在前面所有位置均正确的前提下的 Recall@1(Top-1 正确率)与 Recall@16(正确 Token 落在前 16 个候选中的比例)。接受长度包含了验证模型额外给出的下一个 Token。

理论选择上限显著。假设存在一个理想的 Oracle 选择器,能始终从 Top-16 候选中选出正确的 Token,则平均接受长度将直接从 4.27 提升至 6.79。这一巨大的差距构成了“纯选择空间”(Selection Headroom),意味着模型无需昂贵的重新预测,只需在已有候选中挑选出最优连贯路径。

Figure 1a
Figure 1a
Figure 1b
Figure 1b

图 1. 单个周期内的选择器行为示意。在原版 DFlash 中,每个位置仅保留其 Top-1 预测;此时相邻两位置可能同时选出相同的词导致口吃,在验证阶段被截断。DFlash 2 保留各位置的 Top-16 候选,选择器在其间追踪出一条连贯路径,使整个候选块完整通过验证。


后缀衰减与局部建模特性

草稿块尾部候选质量退化即后缀衰减。观察表 1 中的两行召回率可以发现,指标沿着草稿块向后逐步下降。即使在假设具备完美选择能力的 Oracle 设定下,准确率依然从首位置的 99.5% 下滑到末位置的 87.8%。这种衰减无法仅靠选择器弥补,因为候选集合本身在末端已不再包含正确 Token。该现象被定义为“后缀衰减”(Suffix Decay),其本质属于草稿模型骨干网络(Backbone)的表征缺陷。

模型容量扩展的低效性。一种直观假设认为五层骨干网络的容量过小,无法承载草稿块内的跨位置长程依赖。实验表明,增加网络深度确实对靠后位置帮助最大:3 层、5 层与 15 层的 DFlash 模型在第 0 位置的表现几乎完全一致,但随着位置后移差异逐渐拉大。然而,直接堆叠深度的代价是粗放且不经济的:增加 10 个额外的注意力层会对所有位置无差别增加计算量(即使前端位置并无提升空间),并带来 15.2% 的草稿-验证周期延迟开销,严重破坏了 DFlash 的轻量化优势。

figure-2
figure-2

图 2. 在 T=0、前序位置皆正确的条件下,Qwen3-4B 在 GSM8K 上的 Recall@1 表现。所有草稿模型均在相同环境下训练;卷积增强模型在未启用选择器的状态下进行评测。卷积结构仅增加了 3% 的参数量和 0.7% 的周期延迟;而 15 层的 10 个额外层增加了 15.2% 的延迟。

注意力机制内部权重的分流现象。DFlash 的注意力模块承担两项任务:读取草稿块之前的上下文信息,以及建模草稿块内部的依赖关系。然而权重可视化分析表明,注意力模块分配给块内依赖的权重随着网络深度增加剧烈衰减:草稿块内部注意力占总注意力的比例从第 1 层的 30% 迅速暴跌至第 5 层的 8%(见图 3),且残存的注意力主要集中在极少数注意力头上。为此,DFlash 2 选择将两项任务解耦:由专用模块承接块内局部交互,注意力机制则专注于读取上下文。

figure-3
figure-3

图 3. 五层 Qwen3-4B DFlash 中各层注意力头在草稿块内的注意力分布热力图。较亮网格代表分配给草稿块内注意力的注意力头;随着层数加深,块内注意力总量急剧缩减并向极少数注意力头聚集。


方法细节

轻量级路径选择器(Lightweight Path Selector)

局部马尔可夫连贯性假设。在自然语言序列中,连贯性主要表现为局部依赖特征,即候选 Token 的契合程度绝大部分取决于其前驱 Token。因此,对相邻候选对进行打分足以保证连贯性。

相邻候选对双线性评分公式。DFlash 2 在每个位置提取并保留 Top-16 候选,并对所有相邻位置候选对计算匹配分值。设前驱位置候选项为 $a$,当前位置候选项为 $b$,在位置 $t$ 处的打分公式定义为:

$$ S_t(a,b)=U_t(b)+\langle A(a)\odot H(h_t),B(b)\rangle. $$

打分函数由两个部分求和组成:

  • 第一项 $U_t(b)$ 为 DFlash 自身的原始未归一化对数概率(Logit),体现草稿模型独立预测时对候选 $b$ 的基础置信度。
  • 第二项为相邻相关性分值,评估 $b$ 接续 $a$ 的顺畅度。其中矩阵 $A$ 和 $B$ 将离散 Token 映射为低维紧凑的 256 维嵌入表示;两者在上下文门控向量 $H(h_t)$ 的调控下进行元素级哈达玛积($\odot$)并执行内积计算 $\langle \cdot, \cdot \rangle$。此处 $h_t$ 为草稿模型在位置 $t$ 处的隐藏状态,门控向量用于动态决定哪些嵌入维度在当前上下文中生效。该机制本质上是作用在相邻候选空间上的低秩双线性注意力(Low-rank Bilinear Attention)。

全并行打分与低延迟路径步进。评分计算保持完全并行。在单个批次前向中,所有位置的所有相邻候选对打分一次性全部计算完成,无需引入额外的骨干网络前向或语言模型头(LM-head)计算。唯一的序列化步骤为对预计算分值矩阵进行的路径回溯(Walk):从上一个已验证的基准 Token 出发,在贪婪解码(Greedy)模式下每一步直接追踪最高得分的后继项;在采样模式下基于打分分布进行采样,并可通过无损拒绝采样(Lossless Rejection Sampling)严格恢复目标模型的真实采样分布。

选择器消融性能对比。在五层 Qwen3-4B GSM8K 实验中,路径选择器的开销与增益如下表所示:

方法 参数增量 周期延迟开销 T = 0 接受长度 T = 1 接受长度
DFlash 基线 — — 4.27 3.78
+ DSpark 修正头 +77.8M +9.6% 4.49 4.08
+ 路径选择器(本文) +2.0M +0.6% 4.61 4.25

表 2. 仅添加路径选择器(未包含卷积)时五层 Qwen3-4B 在 GSM8K 上的接受长度。所有开销均相对原始 DFlash 计算。

路径选择器在 $T=0$ 条件下将接受长度提升了 0.34 个 Token,在 $T=1$ 下提升了 0.47 个 Token。与 DSpark 的自回归重写修正方案相比,路径选择器以约 40 倍更少的参数量(2.0M 对比 77.8M)和 16 倍更低的延迟开销(0.6% 对比 9.6%)取得了更高的接受长度。


轻量级局部卷积(Lightweight Local Convolution)

块内短程动态算子构建。草稿块的跨度通常仅为 4 至 16 个 Token,最紧密的依赖存在于相邻 Token 之间。借鉴 Canon Layers【Canon Layers, 2025, arXiv:2512.17351】、Dynamic Short Convolutions【Dynamic Short Convolutions, 2026, arXiv:2606.03825】以及大型语言模型卷积应用【Convolution for Large Language Models, 2026, arXiv:2707.18413】的思路,DFlash 2 设计了一个块内无状态的双抽头(Two-tap)动态深度可分离卷积,并将其插入在草稿模型每层的注意力子层和前馈网络(FFN)子层的前后两侧。

卷积数学表达式与参数共享。双抽头动态卷积的形式表示为:

$$ \operatorname{Conv}_{k}(x)_t=k_{t,0}\odot x_t+k_{t,1}\odot x_{t-1}. $$

卷积核权重由基础静态核与动态修正项结合构成:每个卷积系数均由一个可学习的基础静态核(Learned Base Kernel)与基于当前隐藏状态动态计算的微小修正量相加生成。为了压缩参数并提高计算效率,隐藏层中每 16 个通道共享同一个动态修正项。在序列边界处,草稿块的首个位置($t=0$)读取上一轮已验证的最后一个 Token 的隐层表示,后续位置均依次读取其紧邻前驱位置的隐层特征。

figure-4
figure-4

图 4. 双抽头动态卷积模块示意。在草稿模型的每一层中,分别于注意力子层前后与 MLP 子层前后各插入一个卷积单元。在算子内部,每个位置将自身特征与其前序位置特征进行动态混合,首个位置读取最后一个通过验证的 Token 表征。

结构特性与衰减消除验证。该卷积算子属于块内局部且无状态(Stateless)的操作,能够无缝内嵌至 DFlash 框架中,完全不影响原有的注意力机制、LM-head 计算以及目标模型的验证逻辑。在五层 Qwen3-4B 上,动态卷积仅引入了 16.5M 参数(占比 3%),为 draft-verify 周期带来的延迟开销仅为 0.7%(远低于增加 10 层 Transformer 所带来的 15.2%)。加入卷积后,第 4 层和第 5 层的平均块内注意力占比从 9.4% 降至 0.5%,表明局部信息交互完全被卷积算子承接,注意力模块得以专职提取上下文语义,大幅缓解了后缀衰减问题。


实验环境

  1. 评估数据集与用途:

    • GSM8K:数学应用题基准,用于评测链式逻辑推理与确定性/随机性输出表现。
    • MATH-500:高难度数学竞赛题集合,评测复杂多步数学推导及各位置条件接受率变化。
    • HumanEval:代码生成任务,测试 Python 函数级代码补全的连贯性。
    • MBPP:入门级 Python 编程题基准,评估程序语义的正确性与接受度。
    • MT-Bench:多轮开放域对话基准,评估复杂指令跟随与通用文本生成质量。
  2. 评测模型架构与参数:

    • 草稿测试模型:Qwen3-4B(5 层、3 层与 15 层变体,用于消融与架构分析)、Qwen3.5-4B(综合对比基准)。
    • 目标模型与专用草稿器:
      • Qwen3.8-27B:配置草稿块大小(Block size)为 8,对比原生 MTP(Multi-Token Prediction)路径与社区训练的 Qwen3.8-27B-DSpark 草稿器。
      • Muse Glimmer-30B(Meta 开源):配置草稿块大小为 16,对比 Meta 官方自带的 Muse Glimmer DFlash 草稿器与社区 Muse-Glimmer-30B-DSpark 草稿器。
  3. 系统与软件部署配置:

    • 支持框架:SGLang、vLLM、llama.cpp、Ollama、oMLX(macOS 平台集成)。
    • 典型运行参数:思考模式(Thinking mode)开启,Temperature = 1.0,Top-p = 0.95,Top-k = 20,Presence penalty = 1.5,搭配无损拒绝采样策略(Lossless Rejection Sampling)。

实验结果

Qwen3.5-4B 综合性能对比

在统一训练与评测环境下,将集成路径选择器与动态卷积的 DFlash 2 与 MTP、DFlash 及 DSpark 基准进行端到端对比,结果见表 3。

数据集 MTP DFlash DSpark DFlash 2
GSM8K 4.78 4.99 5.69 6.20
MATH-500 5.04 5.42 6.20 6.76
HumanEval 4.84 5.43 5.80 6.28
MBPP 4.16 4.49 4.96 5.41
MT-Bench 3.90 4.26 4.77 5.20
平均值 4.54 4.92 5.49 5.97

表 3. Qwen3.5-4B 单请求平均接受长度。采样配置:开启思考模式,T=1.0, top-p=0.95, top-k=20, presence penalty=1.5,配合无损拒绝采样。

  • 接受长度全面领先:DFlash 2 在所有测试集上均取得了最优表现。全数据集平均接受长度达到 5.97,相比原始 DFlash 提升了 1.05 个 Token(增幅达 21%),相比自回归修正的 DSpark 提升了 0.48 个 Token。
  • 开销控制极其严格:将选择器(2.0M)与动态卷积(16.5M)合并后,对五层 DFlash 造成的周期延迟开销仅为 1.3%。
  • 长程保持能力验证:在 MATH-500 上的逐位置条件接受率测试中(见图 5),DFlash 2 直至草稿块最后一个位置仍将接受率稳定维持在约 86% 附近,而所有基线模型在末端位置的接受率均下跌了 6 到 9 个百分点,证实后缀衰减问题被有效压制。
figure-5
figure-5

图 5. Qwen3.5-4B 在 MATH-500 基准上的逐位置条件接受率曲线(采样配置与表 3 一致)。


大规模模型发布基准评测

1. Qwen3.8-27B 评测结果(草稿块大小 8)

数据集 MTP 原生 DSpark 社区版 DFlash 2
GSM8K 5.02 4.36 5.46
MATH-500 4.72 3.92 5.28
HumanEval 3.91 3.30 4.39
MBPP 3.99 3.51 4.79
MT-Bench 3.74 3.01 4.10
平均值 4.28 3.62 4.80

表 4. Qwen3.8-27B 默认采样策略、Block size=8 下的平均单请求接受长度。

  • DFlash 2 平均接受长度达到 4.80,显著超越原生 MTP 的 4.28 与 DSpark 社区版的 3.62。
  • 在 SGLang 服务框架与 Batch size=1 设定下,DFlash 2 将 Qwen3.8-27B 的推理吞吐提升至自回归解码的 2.7–3.4×。

2. Muse Glimmer-30B 评测结果(草稿块大小 16)

数据集 DFlash 官方版 DSpark 社区版 DFlash 2
GSM8K 5.43 5.45 6.57
MATH-500 5.39 5.01 6.56
HumanEval 4.11 4.33 5.66
MBPP 3.74 4.02 5.30
MT-Bench 3.52 3.59 4.42
平均值 4.44 4.48 5.70

表 5. Meta Muse Glimmer-30B 在默认采样设置、Block size=16 条件下的平均接受长度。

  • 在更大的草稿块规格(16 tokens)下,DFlash 2 平均接受长度达到 5.70,较 Meta 官方附带的 DFlash 草稿器(4.44)和社区 DSpark(4.48)领先超过 1.2 个 Token。
  • 在实际服务吞吐上,相较传统自回归解码实现了 3.1–4.6× 的吞吐加速。

结论

DFlash 2 证明了并行投机草稿模型完全无需退回至缓慢的逐字自回归修正。通过揭示 Top-16 候选池中充沛的选择空间,DFlash 2 利用仅占 0.6% 延迟的低秩双线性路径选择器有效解决了跨位置连贯性问题;同时基于块内局部交互特征,设计了两抽头动态深度可分离卷积,以 0.7% 的周期延迟消除了深层后缀衰减。在数学理论与实现层面,验证阶段输出分布严格保持数学等价(无损输出),而端到端单次验证产出提升 16–25%,为智能体时代的超大规模 Token 吞吐奠定了高效的推理基础设施基石。


补充细节:快速部署与运行配置

DFlash 2 已深度集成进主流开源推理框架,具体运行配置规范如下:

1. SGLang 部署命令

pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git#subdirectory=python"

python -m sglang.launch_server \
  --model-path Qwen/Qwen3.8-27B \
  --speculative-algorithm DFLASH \
  --speculative-draft-model-path incoai/Qwen3.8-27B-DFlash2 \
  --speculative-num-draft-tokens 8

2. vLLM 部署命令

pip install -U "vllm @ git+https://github.com/vllm-project/vllm.git@refs/pull/52816/head"

vllm serve Qwen/Qwen3.8-27B \
  --speculative-config '{
    "method": "dflash",
    "model": "incoai/Qwen3.8-27B-DFlash2",
    "num_speculative_tokens": 7
  }'

3. llama.cpp 编译与启动

git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
git fetch origin pull/27342/head:pr-27342
git switch pr-27342

# NVIDIA CUDA 平台编译
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON
cmake --build build -j

# Apple Silicon Metal 平台编译
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=ON
cmake --build build -j

# 启动服务
./build/bin/llama-server \
  -hf ggml-org/Qwen3.8-27B-GGUF:Q4_K_M \
  -hfd incoai/Qwen3.8-27B-DFlash2-GGUF:Q4_K_M \
  --spec-type draft-dflash \
  --spec-draft-n-max 7

4. Ollama 编译与配置

git clone https://github.com/ollama/ollama.git
cd ollama
git fetch origin pull/17865/head:dflash2
git switch dflash2

cmake -B build .
cmake --build build --parallel 8

TARGET="$(hf download mlx-community/Qwen3.8-27B-4bit)"
DRAFT="$(hf download incoai/Qwen3.8-27B-DFlash2)"
printf "FROM %s\nDRAFT %s\n" "$TARGET" "$DRAFT" > Modelfile

./ollama create qwen38-dflash2 \
  --experimental \
  --draft-quantize int4

./ollama serve
sleep 2
./ollama run qwen38-dflash2 --think high

5. oMLX(Apple M 系列芯片 GUI/API 运行)

  1. 下载安装适配 DFlash 2 的 oMLX-0.6.2-zlab-dflash2-arm64-signed.dmg 预编译包。
  2. 打开模型下载管理界面下载目标权重 mlx-community/Qwen3.8-27B-4bit 与草稿模型 incoai/Qwen3.8-27B-DFlash2。
  3. 进入 Model Manager 配置目标模型投机参数:

    • DFlash:开启(enabled)
    • Draft model:指定为 incoai/Qwen3.8-27B-DFlash2
    • Draft quantization:开启量化(enabled)
    • Runtime block size:设定为 5
    • Verify mode:配置为 dflash
  4. 保存配置并加载目标模型完成服务暴露。


参考文献与引用汇总

  1. Modal [2026]

    • 文献名:Speculation Is All You Need (URL: https://modal.com/blog/spec-is-all-u-need)
    • 正文引用位置:引言第一段尾部注脚 1。
    • 原文描述与作用:指出投机解码对于低延迟模型服务是不可或缺的关键优化。作者致谢其在 DFlash 发布以来的支持与技术交流。
  2. DFlash [2026]

    • 文献名:DFlash (arXiv:2602.06036)
    • 正文引用位置:引言第二段。
    • 原文描述与作用:作为本文基线与前作,DFlash 首创了将投机草稿生成转为单次前向并行预测的架构,现已被各大推理引擎集成。
  3. Domino [2026]

    • 文献名:Domino (arXiv:2605.29707)
    • 正文引用位置:第 2 节开头段落。
    • 原文描述与作用:作为对比方法,指出其通过串行自回归重写全词表概率分布来保证候选连贯性,带来了高昂的计算延迟。
  4. DSpark [2026]

    • 文献名:DSpark (arXiv:2607.05147)
    • 正文引用位置:第 2 节开头段落、表 2、表 3、表 4 及表 5。
    • 原文描述与作用:作为直接对比基线,DSpark 利用序列修正头恢复候选连贯性,增加了 77.8M 参数量与 9.6% 周期延迟,接受长度全面被 DFlash 2 超越。
  5. Canon Layers [2025]

    • 文献名:Canon Layers (arXiv:2512.17351)
    • 正文引用位置:第 3.1 节首段。
    • 原文描述与作用:为本文两抽头动态卷积算子设计提供了理论与结构依据。
  6. Dynamic Short Convolutions [2026]

    • 文献名:Dynamic Short Convolutions (arXiv:2606.03825)
    • 正文引用位置:第 3.1 节首段。
    • 原文描述与作用:提供了根据局部上下文动态生成卷积核修正项的技术参考。
  7. Convolution for Large Language Models [2026]

    • 文献名:Convolution for Large Language Models (arXiv:2607.18413)
    • 正文引用位置:第 3.1 节首段。
    • 原文描述与作用:支撑了在 Transformer 注意力与前馈层前后插入短程局部卷积以增强局部邻近交互的设计方案。