Structured Chain-of-Thought Prompting for Code Generation

要約

大規模言語モデル (LLM) (ChatGPT など) は、コード生成において優れたパフォーマンスを示しています。
LLM はプロンプトを入力として受け取り、思考連鎖 (CoT) プロンプトは最先端のプロンプト手法です。
CoT プロンプトは、まず LLM に CoT (つまり、中間の自然言語推論ステップ) を生成してから、コードを出力するように要求します。
ただし、CoT プロンプトは自然言語生成用に設計されており、コード生成の精度は低くなります。
この論文では、構造化 CoT (SCoT) を提案し、SCoT プロンプティングと呼ばれるコード生成のための新しいプロンプト手法を紹介します。
私たちの動機は、ソース コードには豊富な構造情報が含まれており、どのコードも 3 つのプログラム構造 (シーケンス、分岐、ループ構造) で構成できることです。
直観的には、構造化された中間推論ステップにより、構造化されたソース コードが作成されます。
したがって、LLM にプログラム構造を使用して CoT を構築し、SCoT を取得するように依頼します。
次に、LLM は SCoT に基づいて最終コードを生成します。
CoT プロンプトと比較して、SCoT プロンプトは、LLM がソース コードの観点から要件を解決する方法を考えるように明示的に制約し、コード生成における LLM のパフォーマンスを向上させます。
SCoT プロンプトを 2 つの LLM (つまり、ChatGPT と Codex) に適用し、3 つのベンチマーク (つまり、HumanEval、MBPP、および MBCPP) で評価します。
(1) SCoT プロンプトは、最先端のベースラインを上回ります。Pass@1 では、CoT プロンプトが最大 13.79% 向上します。
(2) 人間による評価は、人間の開発者が SCoT プロンプトからのプログラムを好むことを示しています。
(3) SCoT プロンプトは例に対して堅牢であり、大幅な改善を達成します。

要約(オリジナル)

Large Language Models (LLMs) (e.g., ChatGPT) have shown impressive performance in code generation. LLMs take prompts as inputs, and Chain-of-Thought (CoT) prompting is the state-of-the-art prompting technique. CoT prompting asks LLMs first to generate CoTs (i.e., intermediate natural language reasoning steps) and then output the code. However, CoT prompting is designed for natural language generation and has low accuracy in code generation. In this paper, we propose Structured CoTs (SCoTs) and present a novel prompting technique for code generation, named SCoT prompting. Our motivation is source code contains rich structural information and any code can be composed of three program structures (i.e., sequence, branch, and loop structures). Intuitively, structured intermediate reasoning steps make for structured source code. Thus, we ask LLMs to use program structures to build CoTs, obtaining SCoTs. Then, LLMs generate the final code based on SCoTs. Compared to CoT prompting, SCoT prompting explicitly constrains LLMs to think about how to solve requirements from the view of source code and further the performance of LLMs in code generation. We apply SCoT prompting to two LLMs (i.e., ChatGPT and Codex) and evaluate it on three benchmarks (i.e., HumanEval, MBPP, and MBCPP). (1) SCoT prompting outperforms the state-of-the-art baseline – CoT prompting by up to 13.79% in Pass@1. (2) Human evaluation shows human developers prefer programs from SCoT prompting. (3) SCoT prompting is robust to examples and achieves substantial improvements.

arxiv情報

著者 Jia Li,Ge Li,Yongmin Li,Zhi Jin
発行日 2023-09-07 11:39:07+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.SE パーマリンク