中文

CodeCoT:解决代码生成中思维链推理的代码语法错误

软件工程 2024-02-26 v2 人工智能

摘要

思维链(CoT)已成为NLP中一种突破性工具,尤其因其在数学证明等复杂推理任务中的效力而著称。然而,其在代码生成中的应用面临一个独特挑战,即:尽管经CoT推理生成的代码在逻辑上正确,但在代码执行时会遇到语法错误(例如,无效语法错误报告)的问题,这导致其在HumanEval上的CoT结果pass@1甚至低于零样本结果。本文提出Code Chain-of-Thought (CodeCoT),将CoT与代码生成的自检查过程相结合。CodeCoT首先由LLM使用CoT进行初始代码开发,以确保生成的代码遵循正确的逻辑流程。随后,CodeCoT将生成测试用例以验证代码在执行过程中是否存在语法错误。接着,CodeCoT采用自检查阶段,在本地环境中针对这些测试用例执行所生成的代码。若本地环境报错信息(例如无效语法错误),CodeCoT将基于反馈信息迭代地精炼代码。在此循环中,CodeCoT可确保其生成的代码不仅遵循代码描述的逻辑流程,且语法错误也能通过自检查过程得到解决。我们的评估结果表明,CodeCoT提升了代码生成的有效性。例如,在HumanEval数据集上,CodeCoT将pass@1从75.6%提升至79.3%。

关键词

引用

@article{arxiv.2308.08784,
  title  = {CodeCoT: Tackling Code Syntax Errors in CoT Reasoning for Code Generation},
  author = {Dong Huang and Qingwen Bu and Yuhao Qing and Heming Cui},
  journal= {arXiv preprint arXiv:2308.08784},
  year   = {2024}
}

备注

Title changed