中文

前所未有的代码变更自动化:LLM 与示例变换的融合

软件工程 2024-06-18 v3

摘要

软件开发人员经常在项目内部和项目之间重复进行代码变更,这些变更被称为“代码变更模式”(CPAT)。自动化这些 CPAT 可以加速开发,但当前的示例变换(TBE)技术受到输入示例质量和数量的限制,会遗漏语法或流程不同但语义相似的变体。在大量代码数据集上训练的大型语言模型(LLM)可以通过生成语义等价、未见过的 CPAT 变体来克服这些限制,从而增强 TBE 的有效性。我们确定了使用 LLM 生成满足正确性、有用性和适用性标准的代码变体的最佳实践。在 PyCraft 中实现这些实践,将静态和动态分析与 LLM 相结合,我们在识别正确变体方面达到了 96.6% 的 F 值,平均将输入扩展了 58 倍,并通过自动化变更将目标代码增加了多达 39 倍。来自 PyCraft 的补丁已提交给 microsoft/DeepSpeed 和 IBM/inFairness 等项目,接受率为 83%,验证了我们方法的有用性。

关键词

引用

@article{arxiv.2402.07138,
  title  = {Unprecedented Code Change Automation: The Fusion of LLMs and Transformation by Example},
  author = {Malinda Dilhara and Abhiram Bellur and Timofey Bryksin and Danny Dig},
  journal= {arXiv preprint arXiv:2402.07138},
  year   = {2024}
}

备注

This paper is accepted to Proceedings of the 32nd ACM Symposium on the Foundations of Software Engineering (FSE - 2024), This is an author copy