Papers

013 · Diffusion LLM 解码

DAWN:先看 token 依赖,再决定这一轮并行提交谁

DAWN 怎么排 token:它不改训练,只在 diffusion LLM 解码时工作。每次 forward 已有的 confidence 和 attention map 被用来建立 token 依赖图;可靠上下文支撑的位置可以提前解除 mask,强耦合的未决位置则不会在同一轮提交。

本文目录 · 16 节
  1. 1. 前置背景:论文解决的不是训练,而是提交时机
  2. 2. Nonindependent prediction:poker hand 反例
  3. 3. 普通 dLLM sampler 与速度瓶颈
  4. 4. Confidence-aware baseline 为什么不够
  5. 5. DAWN 一轮的完整流水线
  6. 6. 从 attention 构造 dependency graph
  7. 7. Attention sink 为什么必须过滤
  8. 8. Anchor 是什么,为什么它能降低门槛
  9. 9. Anchor-Guided 的两类接受条件
  10. 10. Conflict graph:有任一方向的边就互斥
  11. 11. 八位置完整数值例子
  12. 12. 它为什么不是 speculative decoding
  13. 13. 与 DiffusionGemma、DSB 的关系
  14. 14. 实验逐表阅读
  15. 15. 消融说明了什么,方法在哪里失效
  16. 16. 复现清单与结论边界

1. 前置背景:论文解决的不是训练,而是提交时机

DAWN 不训练新的 diffusion backbone,不修改权重,也不训练 draft model。LLaDA、Dream 或类似 masked text diffusion model 负责根据当前 canvas 输出所有 mask 位置的 token distribution;DAWN 位于 sampler 一层,回答这一轮哪些位置可以永久从 [MASK] 变成预测 token。

这个区分很重要:dLLM 的一次 forward 本来就并行计算全位置 logits,计算并行并没有错。风险来自并行 commit。某位置一旦解除 mask,后续轮次会把它当成条件;错误 token 会改变别的位置分布并传播。DAWN 因此优化的是“每次 forward 推进多少个可靠 token”,即质量与 NFE/TPS 的折中。

2. Nonindependent prediction:poker hand 反例

设 canvas 是 The poker hand is [MASK] [MASK].,合法短语包括 high cardtwo pairfull housestraight flush。两个位置分别看边缘分布时,第一个位置可能把 high 排第一,第二个把 house 排第一;同时 argmax 就得到非法的 high house

错误独立近似:p(y_i,y_j | X,y^(t))
            ≈ p(y_i | X,y^(t)) p(y_j | X,y^(t))

条件分解:p(y_i,y_j | X,y^(t))
        = p(y_j | X,y^(t)) p(y_i | y_j,X,y^(t))

若第一轮只确定 [MASK] house,下一轮模型看到 house 后,前一位置的条件分布会把 full 推高。这个例子揭示论文的核心:两个位置都“各自看起来合理”,不代表它们的组合合理。安全并行必须知道位置间的 coupling。

3. 普通 dLLM sampler 与速度瓶颈

给定 prompt X 与预设回答长度 L,初始化 y^(0)=([MASK],...,[MASK])。第 t 轮模型对所有 mask 位置输出词表概率,每个位置 confidence 是其最大 token 概率:

M^(t) = {i | y_i^(t) = [MASK]}
c_i^(t) = max_(v∈V) p_θ(y_i=v | X,y^(t))

Top-1:i_t = argmax_(i∈M^(t)) c_i^(t)

Top-1 每轮只提交一个位置,质量相对稳,但生成 L 个 token 最坏接近 L 次 forward,几乎放弃 diffusion 的并行潜力。另一极端是一次提交所有 mask,forward 很少,却让大量依赖位置在缺少条件时同时落锤。DAWN 要在两者之间找到更大的安全更新集。

离散 masked diffusion 的状态是什么

这里的“扩散”不是把连续向量加高斯噪声,而是把离散 token 替换成特殊的掩码符号。生成开始时,回答区的所有位置都处于最大噪声状态;每次去噪 forward 接收完整 prompt 和当前回答画布,双向 attention 允许每个回答位置同时观察 prompt、已经提交的 token 以及仍是掩码的位置。模型输出的不是一个 next-token distribution,而是每个掩码位置各有一份词表分布。Sampler 再选择若干位置和各自概率最高的 token,形成下一状态。

提交与临时预测必须区分。一次 forward 会给所有掩码一个临时 argmax,但没有被 sampler 选中的位置在下一轮仍写成掩码,模型不会把它的临时词当作确定上下文。被选中的位置则永久写入画布,后续轮次条件在它之上。论文所说的 consistency,是某位置当前临时 argmax 与最终完整去噪结果相同;如果一致,即使现在 confidence 略低,提前提交也不会改变最终 token。Anchor 实验测的正是这种一致率。

Block inference 与并行位置选择是两层约束

论文实验把生成长度设为二百五十六、block length 设为三十二。回答被大致分块以维持从左到右的语言因果,当前 block 内仍有多个掩码可并行选择。DAWN 主要改当前允许区域内的选择规则,并没有移除 block-causal 外壳。每轮处理多少位置由三件事共同决定:block 允许哪些位置、confidence 与依赖图选中哪些位置、模型的当前概率给这些位置填什么 token。把速度收益全归因于“全局任意位置并行”会误解实验设置。

4. Confidence-aware baseline 为什么不够

Fast-dLLM 一类 baseline 用阈值直接决定:

U_conf^(t) = {i∈M^(t) | c_i^(t) ≥ τ}

例如五个位置预测 confidence 为 0.96、0.92、0.84、0.78、0.95,τ=0.9 时只提交 1、2、5。它保守而便宜,但丢失两类信息:0.84 的位置可能已经被一个可靠 token 强条件化,实际可安全提交;两个都是 0.85 的位置可能彼此高度依赖,直接把 τ 降到 0.8 又会一起出错。

KLASS 增加 KL divergence,LocalLeap 也利用局部 anchor,但判断仍较粗。DAWN 把 scalar rule f(c_i) 改成 graph-aware rule f(c_i,G^(t),U^(t)):既看自己的 confidence,也看可靠依赖和候选间冲突。

5. DAWN 一轮的完整流水线

  1. dLLM 对当前 canvas forward,得到各 mask 的 logits/confidence 与 attention。
  2. Dependency Graph Construction 聚合 attention、滤掉 sink 与 self-loop,再阈值化成稀疏有向图。
  3. Anchor-Guided Decoding 先收极高 confidence 位置,再收由可靠 anchor 支撑、通过较低阈值的位置。
  4. Conflict-Based Scheduling 在剩余中低 confidence 候选上建立无向冲突关系,贪心选一个互不相邻集合。
  5. 并集 U_anchor^(t) ∪ U_conflict^(t) 同时解除 mask;下一轮重新 forward、重建图,不复用旧图假设。

三个模块不是串联过滤同一规则。图构造给出关系;AGD 用“依赖可靠上下文”放宽;CBS 用“候选彼此依赖”互斥。前者增加可接纳 token,后者控制激进阈值的风险。

输入:prompt X,回答长度 L,阈值集合,dLLM f_theta
状态:画布 y,可靠 anchor 集 A

y <- [MASK]^L
while y 仍含 [MASK]:
    logits, attention <- f_theta(X, y)
    对每个 mask i:
        token_i <- argmax_v softmax(logits_i)[v]
        c_i     <- max_v softmax(logits_i)[v]

    G <- BuildGraph(attention, tau_sink, tau_edge)
    I <- {mask i | 存在 anchor a 且图中 a -> i}
    U_anchor <- {i | c_i>=tau_high
                    或 (i 属于 I 且 c_i>=tau_induced)}

    C <- 未被 U_anchor 选择、且 c_i>=tau_low 的 mask
    U_conflict <- GreedyIndependentSet(C, G, U_anchor)
    U <- U_anchor 并 U_conflict
    若 U 为空:至少提交当前最高 confidence 位置,保证前进

    对 i 属于 U:y_i <- token_i
    把本轮以 c_i>=tau_high 提交的位置登记为可靠 anchor
返回 y

兜底前进规则在任何阈值 sampler 中都重要:若所有 confidence 都低于下界而算法又不提交,循环会停住。论文以原始 Top-1 采样作为最保守参照,实际实现必须确保每轮至少有位置更新。可靠 anchor 记录的是提交瞬间的置信度,而不是之后重复计算一个已确定位置的分数;否则 anchor 定义会随画布变化,无法对应论文的观察。

时间复杂度上,大模型 forward 仍是主体。设允许区长度为 n,attention 聚合与阈值扫描最坏涉及 n 平方个条目;得到稀疏边集 E 后,贪心冲突调度可用按 confidence 排序加邻接表实现,约为排序成本加边遍历成本。算法没有求解精确最大独立集,也不回溯搜索,这保证图调度不会取代模型 forward 成为组合优化瓶颈。

6. 从 attention 构造 dependency graph

聚合 attention matrix 记为 A^(t)∈R^(L×L)。若 query 位置 i 对 key 位置 j 的 attention 超过 τ_edge,就建有向边 j→i,含义是 i 的预测可能强依赖 j。论文为降低噪声,平均最后 4 层与全部 attention heads;不同 denoising iteration 的 attention 会变,因此图每轮重建。

若 cleaned_A_ij^(t) > τ_edge:添加 j -> i

例:France -> Paris
    capital -> Paris
表示 Paris 的当前预测受到已知 France/capital 支撑

它不是要估计完整联合概率,也不声称边是严格因果。目标只是提取足够便宜、足够稀疏的 coupling proxy,供本轮 scheduler 做二元判断。

矩阵方向必须读对

聚合矩阵的第 i 行是 query i 对所有 key 的权重。若 A 的第 i 行第 j 列很大,含义是预测位置 i 在读取位置 j,因而依赖方向写作 j 指向 i。把边反过来会让 anchor 搜索完全错误:可靠的 j 本应诱导 i,却会被解释成 i 支撑 j。冲突阶段虽然把任一方向的边都无向化,不受方向翻转影响,但 AGD 明确依赖方向,所以实现单元测试应构造一个已知小矩阵检查边向。

层与头如何聚合

原文选择最后四层,是因为靠近输出的注意模式更贴近最终 token prediction;再对所有头平均以降低单头噪声。若模型有 h 个头、选 k 层,可先对同一 query-key 条目的 k×h 个值求均值,得到一张二维矩阵。Prompt 位置与已提交回答位置都可成为依赖源,尚未提交的位置也能形成候选间的冲突边。图节点因此覆盖当前序列位置,而不是只覆盖本轮 mask。

高性能 attention kernel 往往在线计算 softmax 与 value 乘积,不输出完整概率矩阵。论文方法逻辑上使用 attention map,工程上可选择让指定的最后四层返回权重,或在 kernel 内直接累计每个 key 的平均入向质量并输出超过边阈值的稀疏统计。前者实现简单但有显存和带宽成本,后者更接近生产系统却需要改 kernel。复现实验应把该统计成本计入端到端 TPS,而不能只测图选择函数。

7. Attention sink 为什么必须过滤

dLLM 中少数标点、特殊 token 会吸收异常大的 attention mass,而且 sink 会随 denoising step 移动。若许多 query 都高 attention 到逗号,未经处理的图会把逗号连向大量位置,误判为核心语义条件,随后 AGD 放宽错误位置、CBS 制造大量伪冲突。

A_bar_j^(t) = (1/L) Σ_i A_ij^(t)
若 A_bar_j^(t) > τ_sink:j 标记为 sink,过滤其入向 attention mass
同时忽略 A_ii:self-attention 不表示跨位置依赖

原文 Figure 1 显示 sink 位置跨 step 改变,频繁 sink 多为标点和特殊 token,与词义关系弱。去 sink 因而是 dependency proxy 能成立的前提,不是普通数值清洗。剩余 attention 再按 τ_edge 稀疏化,避免弱边让图接近完全图。

过滤的对象是 sink 作为 key 收到的异常 attention,不是从序列中删掉这个 token。标点仍留在画布,也仍可正常被模型预测和提交;只是图构造不再因为系统性注意偏置把它解释为强依赖源。若直接删除对应 token 或屏蔽它参与模型 attention,会改变 backbone 计算,已经超出 training-free sampler 的范围。

τ_sink 与 τ_edge 的作用也不同。前者做列级离群检测,回答“这个 key 是否整体异常吸引所有 query”;后者做边级稀疏化,回答“某一对位置的联系是否足够显著”。只有 τ_edge 没有 sink filtering 时,一个 sink 会留下大量高分边;只有 sink filtering 没有 τ_edge 时,大量普通弱边会让冲突图过密,CBS 每轮只能选很少节点。两级处理共同决定图的精度和密度。

8. Anchor 是什么,为什么它能降低门槛

Anchor 是已经解除 mask、且提交时 confidence 不低于 τ_high 的位置。它与普通已提交 token 不同:DAWN保留其“当时有多可靠”这一证据。原文在 LLaDA-8B-Instruct 的 GSM8K、HumanEval 样本上分析 induced consistency:当 anchor confidence 高于约 0.9,强依赖它的 mask 位置即使当前 confidence 较低,也往往与最终完整解码结果一致。

直觉是条件已经变强。例如 canvas 为 The capital of France is [MASK],France、capital、is 都是高置信已提交 token,图中它们指向最后位置。即使 Paris 当前只有 0.82,仍比一个没有可靠语义条件的 0.82 token 更可信。仅比较两个 scalar confidence 会丢掉这个差异。

9. Anchor-Guided 的两类接受条件

AGD 输出集合包含两类位置。第一类不需要图支持,只要自身达到保守高阈值;第二类是由 anchor 通过依赖边到达的 induced position,只需达到较低 τ_induced:

I^(t) = 当前图中由可靠 anchor 指向的 mask 位置

U_anchor^(t) = { i∈M^(t) |
  c_i ≥ τ_high
  or (i∈I^(t) and c_i ≥ τ_induced) }

τ_induced < τ_high;论文 τ_high=0.9
位置confidence有可靠 anchorAGD
A0.95接受:高阈值
B0.82接受:induced 阈值
C0.82不接受
D0.68仍不接受

图支持不是免检通行证。位置 D 即使依赖 anchor,也必须过 τ_induced;否则 noisy attention 会把极不确定 token 提前冻结。

第一类高 confidence 位置为何可以近似同时提交?论文沿用已有工作的经验:足够高置信的预测通常在后续轮次不再改变,而且高阈值使它们彼此冲突的概率较低。DAWN 并未证明它们严格独立,仍是一项经验假设。第二类 induced 位置则依赖不同逻辑:它本身没有达到保守阈值,但它的主要条件已经成为稳定 anchor,所以当前预测更接近最终条件预测。这两个理由不能合并成一个连续分数,否则很难从消融中判断额外并行来自哪里。

多个 anchor 同时指向一个位置时,论文规则仍是二元可达,不会把边数线性加到 confidence 上。这样避免 attention head 数、序列长度改变时分数尺度漂移,也意味着方法没有利用“受到多个独立证据支持”可能更可靠的信息。相反,只要一条超过 τ_edge 的 anchor 边就算 induced,伪阳性边会放宽门限;这正是 sink 过滤和 τ_induced 下界不可省略的原因。

10. Conflict graph:有任一方向的边就互斥

AGD 后还剩一批达到更低阈值 τ_low 的候选。若原有向 dependency graph 存在 i→jj→i,CBS 就把 i、j 当作无向 conflict。方向在解释依赖时有用,但对“能否同时提交”而言,只要一方依赖另一方就应错开。

因此选择问题转成图上的 independent set:从候选中选尽量多节点,任意两点之间没有 conflict edge。精确 maximum independent set 代价高,且图每轮改变,不适合推理热路径。论文使用按 confidence 降序的 greedy maximal independent set。

X = U_anchor 及它们的冲突邻居
R = {i | c_i ≥ τ_low} \ X
while R 非空:
  i* = argmax_(i∈R) c_i
  U_conflict 加入 i*
  R 删除 i* 与 N(i*)

先排除 U_anchor 的邻居也很关键:否则 CBS 可能选到一个与本轮 AGD token 冲突的位置,两个模块各自无冲突但并集有冲突。

为什么是 maximal,而不是 maximum

贪心结束时,任何未选候选都与已选节点冲突,所以集合是 maximal,也就是无法再加节点;它不保证节点数全局 maximum。举例说,某个置信度最高的中心节点连接三个彼此不相连的叶子,贪心先选中心只得到一个节点,而最大独立集会选三个叶子。DAWN 仍优先置信度,是因为推理目标不只是本轮选得最多,还要降低错误提交风险。用较低 confidence 的三叶换更多数量可能导致质量更差,且精确求解每轮图没有必要。

CBS 的输出大小不能单独衡量好坏。图太稀时集合很大,却可能漏掉冲突;图太密时集合很小,又退回保守 sampler。评测必须同时报告准确率、TPS 和 NFE。阈值调节是在图的误报、漏报与可接受的 confidence 风险之间取平衡。

11. 八位置完整数值例子

一轮有 8 个 mask,confidence 依次为:1=0.96、2=0.80、3=0.90、4=0.70、5=0.85、6=0.77、7=0.92、8=0.75。为演示设 τ_high=0.9、τ_induced=0.8、τ_low=0.7。此前 anchor A 指向位置 2,anchor B 指向位置 5;剩余冲突链为 4—6—8

  1. 高阈值:1、3、7 直接进 U_anchor。
  2. Anchor induced:2 的 0.80、5 的 0.85 都达到 τ_induced 且有可靠 anchor,也进 U_anchor。此时 U_anchor={1,2,3,5,7}。
  3. 剩余 4、6、8 都达到 τ_low。按 confidence 先选 6=0.77,删除与它冲突的 4 和 8,得到 U_conflict={6}。
  4. 本轮并行提交 {1,2,3,5,6,7},4、8 保留 mask。下一轮模型在 6 已确定的条件下重新估计 4、8,attention 与 conflict 也重新计算。

纯 0.9 confidence baseline 只提交 {1,3,7};把阈值粗暴降到 0.7 会提交全部 8 个;DAWN 提交 6 个,并有明确理由留下 4、8。这个例子展示的是算法结构,论文实际低阈值按设置在 0.7–0.85 间选择,不应把演示值当作全模型默认。

下一轮如何继续

提交后,位置六的 token 写入画布,位置四和八仍是掩码。第二轮模型不沿用第一轮对四和八的概率,因为条件已经变化;它重新计算全序列。若新图显示六指向四,而且六提交时达到高阈值,它可成为 anchor,位置四可能以 induced 条件进入。若六只有中等 confidence,是 CBS 选中的而非可靠 anchor,它不会自动给四降阈值。这样可以防止“一个激进提交再连锁放宽更多位置”的错误级联。

假设第二轮四升到零点八三并受可靠位置三指向,八升到零点九一。二者没有边,则都可进入 U_anchor 并结束;若四和八仍有冲突,八因高阈值已进入 U_anchor,四作为其邻居会从 CBS 候选排除,留到第三轮。由此可见,冲突不是永久规定两个位置的先后,图与 confidence 会随上下文演化,算法每轮重新判断。

12. 它为什么不是 speculative decoding

标准 speculative decoding 让 draft model 生成连续前缀 A、B、C、D,target 从左到右验证,C 被拒后 D 也作废;借助 rejection sampling 可保持 target distribution。DAWN 没有 draft,也没有“验证另一个模型”的阶段。它在同一次 diffusion forward 后选择任意非连续 mask,例如位置 1、3、4、6,目标是决定哪些当前预测可 commit。

维度Speculative decodingDAWN
基础模型自回归 LLMmasked diffusion LLM
额外 draft通常需要不需要
选择对象连续前缀任意 mask 位置
接受依据target 概率校正confidence + dependency graph
分布保证标准算法可严格保持依靠经验质量结果,无严格等价保证

二者的共同点只有“一次大模型计算推进多个 token”。DAWN 没有 draft/target 接受校正,核心机制是图调度,因此不宜把它称作 diffusion 版 speculative verification。

Speculative decoding 的 target verification 会计算 draft token 在 target 下的概率,并在第一个拒绝处纠正,因此加速依赖 acceptance length;DAWN 的当前 token 本来就来自同一个 target dLLM,没有另一个模型需要验证。它减少的是 denoising forward 数,不是把多个自回归 target step 合成一次。标准推测解码还要求接受前缀连续,因为 causal KV state 只能沿前缀复用;DAWN 允许非连续画布更新,是双向 masked 建模给出的自由。

分布保证差异带来评价差异。推测解码若实现标准校正,可以主要报告速度并检查数值一致;DAWN 必须把每个 benchmark 的任务准确率和速度一起报告,因为调度本身可能改变最终样本。开放式生成部署还应额外测长度、重复、多样性和人工偏好,不能用四个正确率 benchmark 代替所有质量维度。

13. 与 DiffusionGemma、DSB 的关系

从推理栈位置看,DiffusionGemma 这类 masked text diffusion backbone 负责给当前 canvas 产生 logits;DAWN 可以作为 position-commit policy 使用 confidence 与 attention 决定本轮更新集。但论文没有在 DiffusionGemma 上实验,只测试 LLaDA 与 Dream,因此只能说概念上匹配,不能说已经即插即用。

现实适配还取决于三点:运行时能否暴露需要的 attention statistics;DiffusionGemma 原生 sampler 的 block/self-conditioning 规则是否允许任意非连续位置提交;attention kernel 是否会 materialize 足够信息。若高性能 fused attention 只返回输出而不保留 L×L matrix,需要修改 kernel 或在线聚合统计,成本需重新测。

DSB 与 DAWN 都是 training-free dLLM inference scheduling,但粒度不同。DSB 动态移动 active block 左右边界,解决固定 block 被难 token 卡住;DAWN 在允许考虑的位置中,处理 anchor 与 pairwise conflict。理论上可先用 DSB 给 active region,再用 DAWN 选 region 内更新集,但两篇论文都没有验证组合,缓存、阈值和因果约束可能互相影响。

对 DiffusionGemma 的最小集成点应位于其原生采样循环中:保留 backbone、噪声日程、自条件输入和 block 规则,只替换每轮“根据 confidence 选哪些位置”的函数,并额外取得 attention statistics。若原生 sampler 会重新掩码已提交位置,或用与 LLaDA 不同的 confidence 校准,anchor 的永久性和阈值都要重新定义。论文没有给出这部分结果,所以本页只说明接口对应,不能把 LLaDA 上的四点三三倍直接当作 DiffusionGemma 性能。

14. 实验逐表阅读

实验在单张 NVIDIA H100 80GB 上,generation length 256、block length 32;attention 平均最后 4 层,τ_high=0.9,其他 confidence threshold 在 0.7–0.85 范围。模型为 LLaDA-8B-Instruct、LLaDA-1.5、Dream-v0-Base-7B、Dream-v0-Instruct-7B;任务为 GSM8K 5-shot、MATH 4-shot、HumanEval 0-shot、MBPP 3-shot。baseline 包括 Original Top-1、Confidence、KLASS、LocalLeap。

模型 / 任务OriginalConfidenceLocalLeapDAWN
LLaDA-8B / GSM8K77.94 / 10.32 TPS78.39 / 33.4477.33 / 44.1977.94 / 44.72,4.33×
LLaDA-8B / MBPP29.60 / 9.4630.00 / 34.8130.80 / 44.1330.80 / 45.17,4.77×
LLaDA-1.5 / MBPP38.80 / 3.4538.80 / 20.4039.20 / 27.0037.60 / 27.80,8.06×
Dream-Base / HumanEval38.41 / 20.9039.63 / 61.5436.59 / 68.2839.63 / 68.96,3.29×
Dream-Base / MBPP53.40 / 11.8553.80 / 50.3753.60 / 59.3853.20 / 64.55,5.45×

论文汇总的加速范围是 1.80–8.06×。但“preserving quality”应理解为大多数 benchmark 的准确率接近,而不是逐格无损:LLaDA-1.5/MBPP 从 38.80 降到 37.60;Dream-Base/GSM8K 也有一定下降。反过来,Dream-Base/HumanEval 相比 LocalLeap 同时提高准确率与 TPS。正确读法是 DAWN 给出更好的质量–速度 Pareto trade-off,而非 distribution-preserving 定理。

四类 baseline 分别控制什么变量

Original 每轮提交最高 confidence 的一个位置,给出质量与 NFE 的保守参照。Confidence 允许超过固定阈值的位置并行,用来判断单靠概率校准能走多远。KLASS 同时考虑 confidence 与 KL divergence,代表更复杂但仍以位置统计为主的筛选。LocalLeap 也从 anchor 出发做局部放宽,是与 AGD 最接近的对手。DAWN 相对 LocalLeap 在多数格的 TPS只多零点零五到五点一七,同时准确率最多提高三点零四个百分点;这比相对 Top-1 的巨大倍数更能隔离 dependency graph 与 conflict scheduling 的增量价值。

LLaDA-8B 的 GSM8K 中,Confidence 的准确率七十八点三九略高于 DAWN 的七十七点九四,但速度三十三点四四低于四十四点七二;LocalLeap 速度四十四点一九已经很接近,DAWN 恢复了原始准确率。HumanEval 中 LocalLeap 一百零九点八零 TPS 略高于 DAWN 一百零八点九九,但准确率三十九点六三低于四十点二四。这些格子说明不存在所有指标都单调胜出的单一方法,论文结论是整体折中更好。

Dream-v0-Base 的 GSM8K 是较弱点:Original 七十六点四二,DAWN 七十三点五四,虽然速度从十四点三七升到二十五点八八。Dream-v0-Base 的 MATH 则 Original 三十四点七零、DAWN 三十四点零零,速度十八点一六到五十一点四五。部署者若把数学准确率下降视为不可接受,应提高低阈值或选择较保守设置,而不是直接套最大 TPS 参数。

为什么同一方法在不同任务的加速差很多

加速不只由模型大小决定,还由回答中可并行位置的结构决定。代码经常有括号、缩进、变量引用等局部强约束,一旦函数签名和语法骨架成为可靠锚点,多个后续位置可能提前稳定;数学推理则可能存在逐步依赖,后一步要等前一步数值确定,冲突图更密。不同任务的平均输出长度、提前结束比例和正确答案判定方式也会影响每秒 token 与准确率。因此八点零六倍是 LLaDA 一点五在 MBPP 的特定组合,不是 DAWN 的固定算法常数。

模型训练方式也影响 confidence 校准和 attention 可解释性。LLaDA 与 Dream 即使参数规模接近,它们的初始化、训练目标和 shift 处理不同,同样的零点九阈值可能代表不同的真实正确率。DAWN 在四个模型上都获得速度收益,证明方法不是只适用于单一 checkpoint;准确率波动仍说明部署前必须以目标模型重新画质量与速度曲线,不能直接复制另一模型的阈值。

任务准确率与生成质量的区别

GSM8K 和 MATH 通常从最终文本抽取答案,推导文字改变但数值相同仍算正确;HumanEval、MBPP 运行生成代码的测试,注释和写法差异不影响通过率。这些指标适合检查并行提交是否破坏任务结果,却看不到开放对话的语气、事实密度、重复和多样性。一个 scheduler 可能让答案率保持不变,同时系统性偏好更高 confidence 的常见措辞,缩小样本分布。论文没有声称解决这一评价缺口,因而“质量保持”应限定在报告的任务指标。

还要区分平均准确率变化和逐样本一致性。DAWN 可能修正一些 Original 错误,同时把另一些正确样本改错,最终准确率恰好相同;这不表示两种 sampler 生成完全一致。若产品要求可重复或需要与旧系统逐请求比对,应额外记录 exact match、token 编辑距离和随机种子下的输出一致率,而不是只比较数据集平均分。

15. 消融说明了什么,方法在哪里失效

消融:Dependency Graph 是后两模块共同基础,论文主要去掉 AGD 或 CBS。在 LLaDA-8B/GSM8K 上,完整 DAWN 为 77.94 accuracy、44.72 TPS;去 AGD 为 76.80、22.31,吞吐近乎减半,说明 anchor threshold relaxation 是主要并行来源;去 CBS 为 78.47、33.83,准确率略升但速度下降,说明 CBS 以可控质量风险换取更多中低 confidence 并行。生成长度与 τ_low 的敏感性还表明阈值越低并行越大,图只能缓解而不能消除错误。

DAWN 把 position selection 改写成动态依赖图上的调度。已有方法只问“这个 token 自己够不够自信”;DAWN 还检查它是否有可靠 anchor,以及它是否与同轮候选冲突。Attention sink filtering、两层接受条件和独立集调度缺一不可,拆开其中任一组件都不能代表完整方法。

边界:attention 不是统计因果,sink/edge/high/induced/low 多个阈值可能随模型、任务、长度漂移;attention map 的显式获取会增加显存访问,fused kernel 上尤其要重做工程评估。方法没有标准 speculative decoding 那种采样等价性。GSM8K/HumanEval 等最终准确率也不能完整衡量开放文本多样性、校准和长文一致性。最后,它只处理 nonindependent position prediction,不解决 bidirectional attention 与 KV-cache 的根本冲突。

长度与阈值敏感性应如何理解

回答变长时,Top-1 需要的 forward 近似随位置数增长,DAWN 的并行收益空间更大;但 attention 图节点和潜在边也增加,长程依赖与 sink 统计可能改变。论文用不同 generation length 检查 DAWN 相对 Original 的准确率与吞吐趋势,结论是在测试长度上仍持续加速,不能据此假定百万 token 仍有同样比例。

τ_low 越低,CBS 候选越多,图的漏边风险越直接转成错误提交;越高则 CBS 退化成接近 confidence baseline。τ_induced 决定 anchor 放宽幅度,τ_edge 决定一条注意联系是否足够强,二者联动:边阈值低会产生更多 induced 与 conflict,前者提高 AGD 接受,后者压低 CBS 接受,不一定单调增速。复现时应一次只改变一项并同时记录平均每轮提交数、图边数、NFE、TPS 和准确率,单看最终 TPS 无法定位机制。

没有被解决的 KV-cache 问题

自回归模型的已提交前缀不再受未来 token 影响,K/V 可永久缓存;dLLM 双向 attention 下,其他位置从 mask 变成 token 后,旧位置表示可能改变。DAWN 减少 denoising 次数,却没有给出新的 cache consistency 方案。它与 Fast-dLLM 等 block/cache 技术可处于同一系统,但表中速度包含论文指定实现的整体结果,不能把 DAWN 图选择视为独立解决全部 dLLM serving 瓶颈。

生产系统该如何选择阈值

可以从保守配置开始:固定高阈值为论文使用的零点九,先关闭 CBS,只开启经过 sink 清洗的 anchor 放宽;在目标验证集上确认准确率与 Original 接近后,再逐步降低 induced 阈值。随后开启 CBS,从较高的低阈值开始,每次只下降一小档,观察每轮额外提交数是否真的降低函数调用次数。若边数突然增大、独立集反而缩小,应先检查 attention 阈值和 sink,而不是继续降 confidence。

线上还应设置质量保护和回退。对结构约束很强的输出,可以在提交前加入语法检查;对高风险请求,可选择 Original 或只开 AGD;当图统计偏离离线分布,例如 sink 数或平均度异常时,回退 confidence sampler。这样的保护不是论文核心算法,却是把经验质量保证用于服务时必要的边界控制。

16. 复现清单与结论边界

模型、任务与硬件

首先固定论文的四个模型变体、lm-eval 任务模板、few-shot 数、回答长度二百五十六和 block length 三十二;单张 H100 八十吉字节上分别跑 Original、Confidence、KLASS、LocalLeap 与 DAWN。所有方法应使用相同 prompt、最大长度、精度、batch 和计时区间。TPS 要包含 attention 统计、构图与调度,首次编译和模型加载应与稳态生成分开记录。

算法核对

实现应检查五件事:聚合最后四层全部头;矩阵边方向从 key 指向 query;对角线不建边;sink 只从 dependency proxy 过滤而不改变模型输入;CBS 先移除 U_anchor 及其邻居,再按 confidence 贪心。用八位置例子写确定性测试,确认最终集合为一、二、三、五、六、七,并检查下一轮会重新 forward 而非沿用旧预测。

必须记录的中间指标

除准确率和 TPS 外,还应记录 NFE、每轮 AGD 与 CBS 各选择多少位置、平均图边数、sink 数、attention statistics 的显存和耗时。消融分别关闭 AGD 与 CBS;阈值实验保持其余参数不变。若只有最终速度,很难判断加速来自真正更多安全并行,还是计时漏掉 attention materialization。

最终结论

从系统角度看,它是一套每轮重算证据、再做受约束批量提交的在线规则;从算法角度看,它用廉价的关系代理近似原本难以直接求出的联合依赖。

DAWN 把 masked diffusion 解码从逐位置 confidence 筛选提升为依赖图调度。极高 confidence 位置按保守规则提交;被可靠 anchor 条件化的位置用较低门限提前提交;剩余候选只从冲突图的贪心独立集中提交。它以可用的 attention 代理换取一到八倍量级的实测加速范围,质量通常接近原 sampler,但没有严格分布保证,也没有消除 attention 获取、阈值迁移和 KV-cache 一致性成本。把这些边界与实验逐格结果一起保留,才是对论文结论的完整理解。