中文

目标验证问题链:提高LLM生成代码的可靠性

软件工程 2024-05-24 v1 人工智能

摘要

基于LLM的助手,如GitHub Copilot和ChatGPT,有潜力生成满足自然语言描述(称为提示)的编程任务的代码。这些助手的广泛可访问性使具有不同背景的用户能够生成代码并将其集成到软件项目中。然而,研究表明,LLM生成的代码容易出错,并且可能遗漏任务规范中的各种边界情况。向用户呈现此类有缺陷的代码可能会影响他们对基于LLM的助手的可靠性和信任。此外,用户需要付出大量努力来检测和修复代码中的任何错误,尤其是在没有测试用例的情况下。在本研究中,我们提出了一种自精炼方法,旨在通过在执行前、无需人工干预且没有测试用例的情况下最小化错误数量,来提高LLM生成代码的可靠性。我们的方法基于目标验证问题(VQ)来识别初始代码中的潜在错误。这些VQ针对初始代码的抽象语法树(AST)中的各种节点,这些节点有可能触发LLM生成代码中常见的特定类型错误模式。最后,我们的方法尝试通过使用目标VQ和初始代码重新提示LLM来修复这些潜在错误。基于CoderEval数据集中的编程任务的评估表明,我们提出的方法优于最先进的方法,将代码中的目标错误数量减少了21%至62%,并将可执行代码实例的数量提高了13%。

关键词

引用

@article{arxiv.2405.13932,
  title  = {Chain of Targeted Verification Questions to Improve the Reliability of Code Generated by LLMs},
  author = {Sylvain Kouemo Ngassom and Arghavan Moradi Dakhel and Florian Tambon and Foutse Khomh},
  journal= {arXiv preprint arXiv:2405.13932},
  year   = {2024}
}

备注

10 pages, 2 figures