中文

从误用到精通:以知识驱动的 AI 链式调用增强代码生成

软件工程 2023-09-28 v1

摘要

大型语言模型(LLMs)在自动代码生成方面展现出有前景的结果,在一定程度上提升了编码效率。然而,由于 LLMs 缺乏良好的编程实践,尤其在异常处理方面,生成高质量且可靠的代码仍是一项艰巨任务。本文首先开展一项实证研究,总结出 LLMs 在异常处理中的三个关键挑战,即异常处理不完整、异常处理不正确以及 try-catch 的滥用。随后,我们尝试了不同粒度的提示以应对这些挑战,发现细粒度的知识驱动提示效果最佳。基于实证研究,我们提出一种新颖的基于知识驱动提示链(Knowledge-driven Prompt Chaining)的代码生成方法,命名为 KPC,该方法将代码生成分解为带有迭代检查-重写步骤的 AI 链,并链式调用细粒度知识驱动提示,以辅助 LLMs 考虑异常处理规范。我们使用从 Java 官方 API 文档中提取的 3079 个代码生成任务评估基于 KPC 的方法。大量实验结果表明,基于 KPC 的方法在改善 LLMs 生成代码质量方面具有可观潜力。其通过熟练管理异常,在静态评估方法下分别取得 109.86% 和 578.57% 的显著提升,并在采样数据集的动态验证中减少了 18 个运行时错误。

关键词

引用

@article{arxiv.2309.15606,
  title  = {From Misuse to Mastery: Enhancing Code Generation with Knowledge-Driven AI Chaining},
  author = {Xiaoxue Ren and Xinyuan Ye and Dehai Zhao and Zhenchang Xing and Xiaohu Yang},
  journal= {arXiv preprint arXiv:2309.15606},
  year   = {2023}
}

备注

Accepted by 38th IEEE/ACM International Conference on Automated Software Engineering (ASE 2023)