本研究では、大規模言語モデル(Large Language Model:LLM)を用いたソースコード生成に着目し、プロンプト(LLMへの指示文)の違いがコード生成の正確性に与える影響について調査しました。
近年、OpenAIが開発した大規模言語モデルGPT-4を搭載したChatGPTをはじめとするLLMの発展により、プログラムの自動生成が可能となり、開発効率の向上が期待されています。しかし、LLMはプロンプトの内容によって生成結果が大きく変化し、必ずしも正しいコードを生成できるとは限りません。そのため、どのようなプロンプトを与えれば、より正確なコードを生成できるかを明らかにすることが重要です。
調査では、OpenAIの大規模言語モデルGPT-4を用い、競技プログラミングサイトAtCoder(https://atcoder.jp/)の問題37問を対象として、Zero-Shot PromptingとZero-Shot Chain of Thought(Zero-Shot CoT)の2種類の手法を比較しました。Zero-Shot Promptingは問題文のみを与えてコードを生成する手法であり、Zero-Shot CoTはコードを生成する前に推論過程を考えさせる手法です。生成されたコードはAtCoderのオンラインジャッジシステムで評価し、正解率やエラーの発生状況を分析しました。
調査の結果、Zero-Shot Promptingでは9問、Zero-Shot CoTでは8問が正解となりました。一方で、Zero-Shot CoTではコンパイルエラーや時間超過が減少したものの、不正解となるコードが増加する傾向が見られました。また、どちらの手法でも比較的難易度の高い問題では正確なコードを生成することが難しいことが分かりました。
今後は、不正解となったコードの原因分析を進めるとともに、Few-Shot Promptingなど他のプロンプト手法についても調査し、より高精度なソースコード生成の実現を目指します。

図1 . オンラインジャッジシステムの判定結果
