EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试
7170点击    2026-09-11 15:58

扩散语言模型(Diffusion Large Language Models,dLLMs)凭借并行生成多个 token 的能力,为高效代码生成提供了一条新的技术路线,尤其可以用于高效生成测试用例,快速提升代码覆盖率。然而,扩散语言模型仍面临一个关键问题:生成得更快,往往会导致生成质量下降


针对这一问题,本文提出了面向扩散语言模型生成单元测试的加速框架 DiffuTester。其核心思想来自一个简单但重要的现象:针对同一个被测方法生成的多个单元测试,往往共享大量相似的代码结构模式


DiffuTester 利用抽象语法树(Abstract Syntax Tree,AST)动态挖掘这些结构模式,并在扩散解码过程中额外保留与这些结构模式相对应的 token,从而让模型能够在一次去噪步骤中解码更多 token,减少整体推理步数。


实验证明,DiffuTester 在不同的扩散语言模型以及三种编程语言上均取得稳定加速效果:在保持测试覆盖率的同时,可实现最高约 2–3× 的生成加速,并显著降低计算开销。相关论文已被 EMNLP 2026 接受,代码已开源。


本研究由清华大学人工智能学院 AI Agent 课题组完成。通讯作者为清华大学人工智能学院李佳助理教授,主要研究智能化软件开发。第一作者杨乐康为清华大学人工智能学院 2026 级直博生。


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


  • 论文标题:DiffuTester: Accelerating Unit Test Generation for Diffusion LLMs via Mining Structural Pattern
  • 论文链接:https://arxiv.org/pdf/2509.24975
  • 代码链接:https://github.com/THU-Agent/DiffuTester


研究背景


扩散语言模型通过迭代去噪并行预测多个 token,相比传统自回归模型具备更强的并行生成潜力,因此在高效代码生成场景中受到越来越多关注。


但 dLLM 的生成效率和生成质量之间存在明显的 speed-quality trade-off:如果每个去噪步骤只保留少量高置信度 token,生成质量较稳定,但并行优势难以充分发挥;如果简单增加每一步保留的 token 数量,虽然可以加速解码,却会导致生成质量下降。


这一问题在单元测试生成中尤为值得关注。现实世界中的软件项目通常包含大量需要测试的方法,开发者需要为其生成多个测试用例以覆盖不同语句和分支,因此 UTG 对生成效率有天然需求,而 dLLM 的并行生成能力与这一场景十分契合。


进一步观察发现,单元测试本身还具有一个非常适合 dLLM 加速的特性:大量重复的结构模式,如下图所示。因此,本文的核心出发点是:利用 UT 中广泛存在的重复结构,帮助 dLLM 在每一步解码更多 token,在尽量不牺牲测试质量的前提下加速生成


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


解决了什么问题?


本文关注的核心问题是:如何在不降低生成质量的前提下,加速 dLLM 的单元测试生成过程


现有 dLLM 的 training-free 加速方法大致可以分为两类:基于缓存的方法和基于采样的技术。前者通过复用不同去噪步骤之间相似的中间表示或 KV Cache,减少重复计算,从而降低单步推理开销;后者则主要从解码过程的采样策略入手,通过在一次去噪过程中解码更多 token、动态调整采样过程等方式,减少整体推理步数。


这两类方法都能够有效提升生成效率,但它们一般也会导致生成质量的下降。DiffuTester 也是在采样策略上的优化,但 DiffuTester 不仅不会降低生成质量,而且还和其他基于缓存的方法兼容。


提出了什么方法?


针对上述问题,本文提出了 DiffuTester:一个面向 dLLM 单元测试生成的、无需训练(training-free)的加速框架。其核心思想是:动态挖掘多个测试用例之间的共享结构,并利用这些结构信息辅助解码更多 token,从而减少整体去噪步数


如下图所示,在每个解码步骤中,DiffuTester 首先执行 dLLM 原有的基于置信度的解码,保留模型最有把握的一部分 token;随后进一步执行基于结构模式的解码。具体来说,DiffuTester 对当前 batch 中多个尚未完全生成的测试用例构建 AST,并通过合并不同 AST 来识别其中的共享结构。与这些公共结构对应的 token 会被额外保留,因此模型能够在一次推理中解码更多内容。


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


由于扩散模型在生成早期的代码可能包含语法错误,DiffuTester 并不直接对完整测试用例构建 AST,而是采用逐行解析的方式,从而降低局部语法错误对结构挖掘的影响。


此外,DiffuTester 还采用了两项辅助设计:一是只保留置信度高于一个预设的阈值的 token,避免低置信度影响代码质量;二是不在每个去噪步骤都执行 AST 结构分析,而是间隔若干步进行一次,以进一步降低额外开销。


整体而言,DiffuTester 可以概括为:


在原有置信度解码的基础上,引入来自多个测试用例的结构信息,一次解码更多 token,实现更高效的 dLLM 单元测试生成。


实验结果与分析


本文在 DiffuCoder 和 Dream 两个代表性 dLLM 上进行实验,在 TestEval 数据集上进行测试,为了验证方法在不同编程语言上的有效性,我们还将原来的数据集扩展到三个不同编程语言,即 Python, C++, Java。


  • 主实验结果:显著加速,同时保持测试质量。DiffuTester 在不同模型、编程语言下都可以稳定提升生成效率,并且不会影响峰值覆盖率。


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


  • 与其他基于采样的加速方法相比:兼顾速度与质量。与其他基于采样的加速方法相比,DiffuTester 在速度和质量上取得了更好的平衡。


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


  • 与基于缓存的加速方法相比:可叠加。另一类常见的 dLLM 加速方法是基于 KV Cache 的方法。DiffuTester 主要减少需要执行的解码步骤,而缓存方法主要降低每一步推理的计算开销,因此二者天然兼容。


EMNLP 2026 | DiffuTester: 加速扩散语言模型生成单元测试


文章来自于微信公众号 “机器之心”,作者 “机器之心”

AI转型,免费服务,就找AITNT
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md