中文

CodeImprove: 针对深度代码模型的程序适应

软件工程 2025-06-18 v2

摘要

利用基于深度学习 (DL) 的代码分析工具来解决软件工程任务的做法日益流行。然而, 代码模型常因多种原因导致性能下降(如代码数据漂移)。重新训练虽可缓解此问题, 但频繁的模型更新在标注成本与部署方面都昂贵。本文探索一种替代方案: 调整程序输入以适应代码模型。该方法通过两个步骤实现: 1) 输入验证, 关注识别是否为超出模型处理能力的超出范围输入程序; 2) 输入适应, 将超出范围输入转换为适范围输入。输入验证具有挑战性, 因为现有技术侧重于连续输入(如图像数据), 难以处理离散输入如代码数据, 其独特特征在深度学习模型中加以不同处理。适应超出范围程序同样具有挑战, 由于其巨大的搜索空间。因此, 本文提出 CodeImprove, 通过程序转换将超出范围输入区分为正常输入并转换回适范围输入。具体而言, 我们提出一种有效性评分指标用于识别超出范围输入, 并利用遗传算法应用语义保持程序转换将其转换为适范围输入。实验结果表明, CodeImprove 在三个代码模型的两个软件工程任务中, 可提升最高 8.78% 的准确率, 以及 51.28% 的相对改进。此外, 我们的输入验证在检测超出范围输入方面表现良好, AUC 分数达 0.924。

关键词

引用

@article{arxiv.2501.15804,
  title  = {CodeImprove: Program Adaptation for Deep Code Models},
  author = {Ravishka Rathnasuriya and Zijie Zhao and Wei Yang},
  journal= {arXiv preprint arXiv:2501.15804},
  year   = {2025}
}

备注

In Proceedings of the 47th IEEE/ACM International Conference on Software Engineering (ICSE 2025)