Unprecedented Code Change Automation: The Fusion of LLMs and Transformation by Example

2024年02月11日
  • 简介
    软件开发人员经常在项目内和项目间重复使用代码更改,这被称为“代码更改模式”(CPATs)。自动化这些CPATs可以加速开发,但是目前的“Transformation by Example”(TBE)技术受到输入示例的质量和数量的限制,缺少不同语法或流程但语义相似的变化。基于大量代码数据集训练的大型语言模型(LLMs)可以通过生成语义等价的未见过的CPAT变体来克服这些限制,从而增强TBE的效果。我们确定了使用LLMs生成符合正确性、实用性和适用性标准的代码变体的最佳实践。在PyCraft中实现这些实践,将静态和动态分析与LLMs相结合,我们实现了96.6%的F-measure来识别正确的变体,平均扩展输入58倍,并自动更改以将目标代码增加多达39倍。来自PyCraft的补丁被提交到项目,如microsoft/DeepSpeed和IBM/inFairness,接受率达83%,验证了我们方法的实用性。
  • 作者讲解
  • 图表
  • 解决问题
    本论文旨在解决代码变更模式的自动化问题,通过结合静态和动态分析与大型语言模型(LLMs)生成语义上等价但不同语法和流程的代码变体,以提高Transformation by Example (TBE)的效率。
  • 关键思路
    本论文的关键思路是利用大型语言模型生成语义等价但不同于输入示例的代码变体,以提高Transformation by Example (TBE)的效率。同时,通过结合静态和动态分析,确保生成的代码变体满足正确性、实用性和适用性等标准。
  • 其它亮点
    本论文通过实验验证了使用大型语言模型生成代码变体的有效性。实验结果表明,使用PyCraft工具结合静态和动态分析,能够将输入扩展58倍,并将目标代码增加39倍。此外,论文还提供了开源代码,并将其应用于微软和IBM等项目中,验证了其实用性和可行性。
  • 相关研究
    在相关研究方面,最近的研究主要集中在使用机器学习技术自动生成代码、使用程序合成技术自动生成代码等方面。例如,Recent Advances in Neural Program Synthesis、DeepCoder:Learning to Write Programs、Sketching with Code:A Data-Driven Creation of Generative Code Models等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问