投机解码的通行做法是让小模型打草稿、大模型并行验收。块扩散把这件事推进一步:一个轻量扩散草稿器在前向里一次吐出一整块 token,而不是逐个猜。但香港城市大学、香港中文大学与华为研究团队在 10 月 5 日放出的 D-Loop 论文里,指出了这套方案的一个系统性毛病——他们称之为「重复陷阱」:块内每个位置都在预测自己的边缘分布,谁也看不见谁,结果相邻位置常常连发同一个 token。草稿一旦重复,验收时就会被目标模型拦腰截断,接受长度上不去,加速比自然缩水。
重复陷阱有多严重
论文统计了 DFlash 草稿输出里的重复情况(接受长度按 Qwen3-8B、采样解码计)。GSM8K 上相邻重复率 17.4%,LiveCodeBench 29.4%,到对话基准 MT-Bench 已经到 42.6%;连续重复内容词出现在 72.5%–94.5% 的草稿块里,MT-Bench 上最长的连续重复段平均 4.7 个 token。而三个基准对应的接受长度分别是 5.28、3.26 和 3.10——重复越凶,接受越短。
两遍循环,一个模型
此前的修法是给草稿器外挂一个因果头,或者再训一个独立草稿器,参数和训练目标都变多。D-Loop 的思路相反:不加任何新模块,让同一个草稿骨干循环跑两遍。第一遍照常提议一整块;第二遍选定一个前缀作为条件,并行重写剩下的后缀。配套的「前缀–后缀互补目标」让同一组参数同时学会「无锚点预测前缀」和「给定前缀预测后缀」两种模式。消融显示,仅第二轮(K=1)就把 GSM8K、LiveCodeBench、MT-Bench 的相邻重复率砍掉 73.7%、83.0% 和 79.8%。
加速数字
在数学、代码、对话共八个基准上(实测 GSM8K、MBPP、LiveCodeBench、MT-Bench、Alpaca 等),Qwen3-4B 在两种温度下的接受长度都在作者实测的方法里排在第一位,平均加速 5.06×(贪心)与 4.11×(采样);Qwen3-8B 上平均接受长度 7.19 与 5.77,平均加速 5.02× 与 4.03×。值得留意的是采样场景:相对 DSpark 的平均加速优势在 4B 上从 2.2% 扩大到 15.4%,在 8B 上从 9.7% 扩大到 26.2%——温度一高,边缘分布的重复病更重,第二遍循环的价值也就更大。
所以呢
对部署侧来说,采样解码才是对话与创意生成的日常状态,D-Loop 的增益恰好在这种场景放大,而且不加参数、不引入第二套训练目标,工程上好接。当然,它对比的 DFlash 与 DSpark 是作者自己复现的版本,EAGLE-3 数字引自 DFlash 论文(tree size 60),不同树大小下的对比还留有讨论空间。但「用循环换质量、用共享参数换部署成本」这条路线,确实给扩散式投机解码补上了一块关键拼图——详见 arXiv:2610.06011。