arXivDaily arXiv每日学术速递 周一至周五更新

PAPERDAILY REPORTS

Meta等让扩散模型先猜长度再补代码:快1.82倍,通过率升4.8点

作者:arXivDaily编辑部 arXiv 2609.02108 cs · cs.AI · cs.CL

论文导读

伊利诺伊大学厄巴纳-香槟分校、Meta联合提出PILL,让扩散语言模型补代码或文本时先预测缺口长度,再并行尝试附近候选。它在5种模型、8个基准上比最强基线快1.82倍,代码平均通过率提高4.8点、文本BLEU-2提高6.0点;结果不代表所有代码生成任务都同幅提升。

扩散模型补中间内容,先要知道缺口多长

自回归模型从左向右生成,扩散语言模型则能同时参考缺口前后的内容,适合补齐函数中间几行代码或句子中间一段文字。但扩散模型通常要在开始前放好固定数量的掩码位置,长度猜错会影响内容正确性。

已有动态长度方法仍要给一个初始长度,再边生成边插删位置,或为多个长度反复运行多步去噪。前者容易被初值牵制,后者增加大量前向计算。PILL把“长度是多少”单独变成一次快速预测。

图:论文图1展示基线对预设长度敏感,而PILL不需要初始长度。

三步完成长度预测、并行解码和选择

第一步,模型读取一个掩码位置的隐藏状态,预测目标长度。第二步不只尝试这个整数,而是在预测值附近建立一组候选长度,用专门的注意力掩码把它们放进同一次并行解码,减少逐个候选重复计算。

第三步在一次额外前向计算中给各候选片段打分,选出最终补全。这样既允许长度预测有小误差,又避免每个候选都运行完整的多轮去噪流程。方法不要求预设搜索起点,计算量主要由候选范围而非初始长度决定。

图:论文图2展示长度探测、邻近长度并行解码和事后选择。

速度提高1.82倍,代码和文本指标同时上升

实验覆盖5种不同家族、架构和训练方式的扩散语言模型,以及8个代码与文本补全基准。相对论文中的最强动态长度基线,PILL在代码任务上的平均通过率提高4.8点,文本BLEU-2提高6.0点,运行速度达到1.82倍。

速度—质量散点图中,PILL位于更靠近“时间少、BLEU高”的区域,基线则会随预设长度改变位置。该对比说明免初值和并行候选在测试设置中减少了无效搜索;具体加速仍取决于候选半径、补全长度、批处理和硬件。

图:论文图5比较Wikitext上的耗时与BLEU-2,基线标注不同预设长度。

通过率和BLEU衡量的是不同任务:前者检查生成代码是否通过测试,后者看文本片段与参考答案的词组重合。两项都提高能说明方法没有只用速度换质量,但不能证明补全一定符合用户未写出的意图。

向编辑器和代码仓库应用扩展

代码编辑器可以把前后文、类型信息和测试失败反馈加入长度预测,避免只根据局部词元决定缺口大小。仓库级补全还要处理跨文件依赖,候选长度可能从几行扩展到多个函数,当前固定邻域搜索是否仍高效需要重新测试。

下一步应报告长缺口、多个缺口和流式输入下的显存与首个结果时间,并把编译、单元测试和静态检查纳入选择阶段。对实际开发者,最快生成并非唯一目标;能否少改已有代码、保持接口兼容和在失败后给出可诊断候选同样重要。

参考资料

https://arxiv.org/abs/2609.02108

https://github.com/Hsu1023/PILL