扩散语言模型约束解码新方法
机器之心 · wechat · 2026-07-15
扩散语言模型在代码、JSON、SMILES 等形式语言生成中容易出现语法错误。本文提出 **LAVE(Lookahead-then-Verify)**:先利用扩散模型对中间 `[MASK]` 的概率分布做前瞻补全,再用上下文无关文法解析器验证这些补全是否仍可扩展为合法输出,从而为生成过程提供语法约束。 论文指出,现有解析器难以直接处理带 `[MASK]` 的不完整前缀,而暴力枚举补全又不可行。LAVE 的做法是在每次生成新 token 后,截取当前需要验证的前缀,对剩余 `[MASK]` 采样出若干高概率候选,交给解析器并行检查;只要存在一个候选可通过验证,就接受该 token,否则拒绝并重试。 实验覆盖 LLaDA-8B、LLaDA-1.5、Dream-7B、DiffuCoder-7B,在 C++、Java、Go、JSON、SMILES 等任务上显著提升语法正确率,多个设置下平均接近 100%。功能正确率也同步提升,例如 Dream-7B 的 C++ 功能正确率从 25.6% 提升到 33.5%。额外推理开销总体较小,JSON 任务平均仅增加约 3% 时间;SMILES 任务中还因减少无关自然语言输出而出现推理时间下降。论文已被 ISSTA 2026 接收,代码已开源。