JumpCoder:通过在线修改超越自回归编码器
计算与语言
2024-09-26 v2 人工智能
软件工程
摘要
尽管现有的代码大型语言模型(code LLMs)在代码生成方面展现出令人印象深刻的能力,但其自回归顺序生成本质上缺乏可逆性。这一局限阻碍了它们像人类一样在编码过程中及时纠正先前缺失的语句,常常导致错误传播和次优性能。我们引入了 JumpCoder,一个新颖的模型无关框架,它使类人的在线修改和非顺序生成成为可能,以增强代码 LLMs。JumpCoder 背后的关键思想是在生成过程中必要时将新代码插入到当前已生成的代码中,这是通过一个与代码 LLM 协同工作的辅助填充模型来实现的。由于预先确定最佳填充位置是棘手的,我们采用了一种“先填充,后评判”的策略,即在生成每一行后,在 个最关键的位置尝试填充,并使用抽象语法树(AST)解析器以及生成模型评分来有效判断每个潜在填充的有效性。在多个多语言基准上使用六个最先进的代码 LLMs 进行的大量实验一致表明,相较于所有基线方法都有显著改进。我们的代码公开于 https://github.com/Keytoyze/JumpCoder。
引用
@article{arxiv.2401.07870,
title = {JumpCoder: Go Beyond Autoregressive Coder via Online Modification},
author = {Mouxiang Chen and Hao Tian and Zhongxin Liu and Xiaoxue Ren and Jianling Sun},
journal= {arXiv preprint arXiv:2401.07870},
year = {2024}
}
备注
ACL 2024 (main)