返回
Directional Diffusion-Style Code Editing Pre-Training
DOI:10.1109/TSE.2025.3592841.png)
摘要
En 中文
代码预训练模型已在各种软件工程任务中显示出良好的有效性。在这些任务中,许多任务与软件演化及/或代码编辑相关。然而,现有的代码预训练模型通常忽略了现实世界中的代码编辑数据以及编辑过程的演化特性。在本文中,为了模拟人类开发者的逐步代码编辑过程,我们提出了基于数据级方向扩散的预训练模型DivoT5。在DivoT5中,我们采用了两类预训练任务。第一类是添加了表示代码演化方向的扩散方向的掩码和去噪任务。也就是说,我们首先对演化前的代码片段应用噪声过程,然后让预训练过程将带有噪声的片段恢复为演化后的代码片段。第二类是旨在强化演化方向的任务。也就是说,我们首先为每个演化前后的代码片段对生成各种中间版本,然后让预训练过程将每个对的中间版本转换为演化后的代码片段。我们使用四个下游任务对DivoT5进行了两个代码编辑场景(包括多项任务)和一个非编辑场景的评估。对于每个下游任务,我们在多个对应数据集上对预训练的DivoT5进行微调,并评估其在不同场景中的有效性。我们的实验结果表明,与同规模(220M)、大规模(770M、6.7B)微调模型以及十亿规模(6.7B、8B、ChatGPT)的指令模型相比,DivoT5在大多数任务上达到了最先进(SOTA)的性能。对于一项代码编辑任务(即NL-based CodeRefinement任务中的CodeReview),基于CodeT5-small(60M)预训练的DivoT5甚至可以超越CodeT5-base(220M)和其他具有220M参数的预训练模型,唯一的例外是基于CodeT5-base(220M)预训练的DivoT5。
Keyword:
Pre-training
code editing
software evolution
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W
机构
引用论文
暂无论文信息

