面向代码生成的结构化思维链提示
软件工程
2023-09-08 v3 计算与语言
摘要
大语言模型(LLM)(如 ChatGPT)在代码生成中展现出令人印象深刻的性能。LLM 以提示(prompt)为输入,而思维链(CoT)提示是当前最先进的提示技术。CoT 提示要求 LLM 先生成 CoT(即中间自然语言推理步骤),再输出代码。然而,CoT 提示是为自然语言生成设计的,在代码生成中准确率较低。本文中,我们提出结构化 CoT(SCoT)并给出一种用于代码生成的新型提示技术,称为 SCoT 提示。我们的动机在于源代码包含丰富的结构信息,且任何代码均可由三种程序结构(即顺序、分支和循环结构)组成。直观上,结构化的中间推理步骤有助于生成结构化的源代码。因此,我们要求 LLM 利用程序结构来构建 CoT,从而得到 SCoT。随后,LLM 基于 SCoT 生成最终代码。与 CoT 提示相比,SCoT 提示显式约束 LLM 从源代码视角思考如何满足需求,从而进一步提升 LLM 在代码生成中的性能。我们将 SCoT 提示应用于两个 LLM(即 ChatGPT 和 Codex)并在三个基准(即 HumanEval、MBPP 和 MBCPP)上评估。(1)SCoT 提示在 Pass@1 上比最先进基线——CoT 提示最高高出 13.79%。(2)人工评估显示开发者更偏好 SCoT 提示生成的程序。(3)SCoT 提示对示例具有鲁棒性并取得显著提升。
引用
@article{arxiv.2305.06599,
title = {Structured Chain-of-Thought Prompting for Code Generation},
author = {Jia Li and Ge Li and Yongmin Li and Zhi Jin},
journal= {arXiv preprint arXiv:2305.06599},
year = {2023}
}
备注
arXiv admin note: text overlap with arXiv:2303.17780