中文

良好方法名在神经代码生成中有多重要?——从模型鲁棒性视角

软件工程 2023-08-01 v2

摘要

预训练代码生成模型(PCGMs)已广泛应用于神经代码生成,可根据自然语言的功能描述(可能连同签名)生成可执行代码。尽管 PCGMs 性能大幅提升,方法名在神经代码生成中的作用尚未被深入探究。本文从模型鲁棒性视角研究并展示了利用方法名提升 PCGMs 性能的潜力。具体地,我们提出一种名为 RADAR(neuRAl coDe generAtor Robustifier)的新方法。RADAR 包含两个组件:RADAR-Attack 与 RADAR-Defense。前者通过生成语义与视觉上相似于原始输入、但可能诱使 PCGM 生成完全无关代码片段的对抗性方法名来攻击 PCGM。作为对此类攻击的应对,RADAR-Defense 从功能描述合成新方法名并提供给 PCGM。评估结果表明,在微调代码生成任务中,RADAR-Attack 可使三个 SOTA PCGMs(即 CodeGPT、PLBART 与 CodeT5)生成代码的 CodeBLEU 降低 19.72% 至 38.74%;在零样本代码生成任务中,可使三个 SOTA PCGMs(即 Replit、CodeGen 与 CodeT5+)生成代码的 Pass@1 降低 32.28% 至 44.42%。此外,RADAR-Defense 能够借助合成方法名恢复 PCGMs 的性能。这些结果凸显了良好方法名在神经代码生成中的重要性,并暗示了在软件工程中研究模型鲁棒性的益处。

关键词

引用

@article{arxiv.2211.15844,
  title  = {How Important are Good Method Names in Neural Code Generation? A Model Robustness Perspective},
  author = {Guang Yang and Yu Zhou and Wenhua Yang and Tao Yue and Xiang Chen and Taolue Chen},
  journal= {arXiv preprint arXiv:2211.15844},
  year   = {2023}
}

备注

UNDER REVIEW