Skip to main content
QUICK REVIEW

[論文レビュー] Comparing large language models and human programmers for generating programming code

Wenpin Hou, Zhicheng Ji|arXiv (Cornell University)|Mar 1, 2024
Software Engineering Research被引用数 4
ひとこと要約

本研究では、多様なプロンプト戦略、プログラミング言語、およびタスクの難易度を用いて、7つの大規模言語モデル(LLMs)のプログラミングコード生成性能を体系的に評価した。GPT-4は、特に最適化されたプロンプト戦略を用いることで、LeetCodeおよびGeeksforGeeksのコーディングコンテストにおいて85%の参加者を上回り、強力なクロス言語コード翻訳、エラーからの学習、計算的に効率的なコード生成を示し、ソフトウェア開発における優れたアシスタントとして位置づけられる。

ABSTRACT

We systematically evaluated the performance of seven large language models in generating programming code using various prompt strategies, programming languages, and task difficulties. GPT-4 substantially outperforms other large language models, including Gemini Ultra and Claude 2. The coding performance of GPT-4 varies considerably with different prompt strategies. In most LeetCode and GeeksforGeeks coding contests evaluated in this study, GPT-4 employing the optimal prompt strategy outperforms 85 percent of human participants. Additionally, GPT-4 demonstrates strong capabilities in translating code between different programming languages and in learning from past errors. The computational efficiency of the code generated by GPT-4 is comparable to that of human programmers. These results suggest that GPT-4 has the potential to serve as a reliable assistant in programming code generation and software development.

研究の動機と目的

  • 複数のプログラミング言語およびタスク難易度にわたる、7つのLLMsのプログラミングコード生成性能を体系的に評価すること。
  • 異なるプロンプト戦略がLLMのコーディングパフォーマンスに与える影響、特に標準的プロンプトとの比較を調査すること。
  • 実際のコーディングコンテストにおけるLLM生成コードのパフォーマンスと人間プログラマーのパフォーマンスを直接比較すること。
  • LLMsが異なるプログラミング言語間でコードを翻訳できる能力と、人間が書いたコードに対する計算効率を評価すること。
  • LLMsが過去の誤りから学び、繰り返し試行することで改善するかどうかを検討すること。

提案手法

  • 本研究では、2021年9月以降のLeetCodeコンテストからランダムに選択された25件のコンテストから100のプログラミングタスクを用い、GeeksforGeeksからも小規模なデータセットを取得した。GPT-4の知識カットオフに合わせた期間に限定した。
  • 5つの異なるプロンプト戦略を開発・テストした:標準プロンプト、チェーン・オブ・トゥグラウンディング(CoT)を伴うフィードバック(feedback CI)、チェーン・オブ・トゥグラウンディングとセルフコンシステンシーを伴うフィードバック、および2種類のFew-shotプロンプトの変種。
  • LLMのパフォーマンスは、1回試行での成功確率、5回試行での成功確率、救済率(後続の試行で成功する確率)、および計算効率(実行時間とメモリ使用量のパーセンタイル)で測定した。
  • コード翻訳の評価では、GPT-4がフィードバック CI プロンプトを用いてPython3コードを生成し、その後Java、JavaScript、C++に翻訳した。タスク難易度に応じて成功確率を評価した。
  • 計算効率は、GPT-4が生成したコード(自己最適化前後)と人間が書いたコードを同一タスクで比較し、実行時間およびメモリ使用量のパーセンタイル順位を用いて評価した。
  • 人間のパフォーマンスは、LeetCodeおよびGeeksforGeeksの公式コンテスト順位を用いてベンチマーク化した。LLMの順位は、人間参加者とのパーセンタイル比較によって決定した。
Figure 1: A schematic illustrating the prompt strategies that were developed and assessed in this study.
Figure 1: A schematic illustrating the prompt strategies that were developed and assessed in this study.

実験結果

リサーチクエスチョン

  • RQ1プロンプト戦略の選択が、異なるタスク難易度における大規模言語モデルのコーディングパフォーマンスにどのように影響するか?
  • RQ2最適なプロンプトを使用した場合、GPT-4はLeetCodeおよびGeeksforGeeksの実際のコーディングコンテストで、どの程度人間プログラマーを上回るか?
  • RQ3大規模言語モデルは、異なるプログラミング言語間でコードを効果的に翻訳できるか?翻訳成功確率はタスク難易度にどのように変化するか?
  • RQ4自己最適化の前後を含め、LLMsが生成したコードの計算効率は、人間が書いたコードと比べてどの程度か?
  • RQ5LLMsは過去の誤りから学び、複数回の試行で改善できるのか?救済率の観点から検証できるか?

主な発見

  • GPT-4は、最適なプロンプト戦略(フィードバック付きチェーン・オブ・トゥグラウンディングとセルフコンシステンシー)を用いることで、LeetCodeの簡単なタスクでは1回試行での成功確率が86.2%、中程度のタスクで60.0%、難しいタスクで14.3%を達成し、大多数のコンテストで85%の参加者を上回った。
  • GPT-4の救済率は試行回数が増えるにつれて顕著に向上し、5回目の試行では中程度および難しいタスクで90%を超えた。これは、誤りからの回復力と学習能力が非常に高いことを示している。
  • GPT-4は高いコード翻訳成功率を示した。中程度の難易度タスクでは、正しく生成されたPython3コードの80%が、Java、JavaScript、C++に成功裏に翻訳された。また、元のコードが誤りであった場合でも、強力な性能を維持した。
  • GPT-4が生成したコードの計算効率は、人間が書いたコードと同等であった。自己最適化後、GPT-4のコードは、すべてのタスク難易度で実行時間およびメモリ使用量の両方で90パーセンタイル以上にランクされた。
  • GPT-4は、Gemini Ultra や Claude 2 を含む他のLLMsをすべての指標で上回り、特に複雑で難しいタスクで最大の性能差を示した。
  • 本研究では、プロンプト工学がLLMのコーディングパフォーマンスを顕著に向上させることを確認した。フィードバック CI 戦略は、すべてのモデルで最高の成功確率と救済率を達成した。
Figure 2: Five-attempt and one-attempt success rates for tasks with varying difficulty levels. Each row represents a different prompt strategy and a different LLM. The text within each bar displays the success rate, the number of programming tasks solved, and the total number of tasks. Rows are orde
Figure 2: Five-attempt and one-attempt success rates for tasks with varying difficulty levels. Each row represents a different prompt strategy and a different LLM. The text within each bar displays the success rate, the number of programming tasks solved, and the total number of tasks. Rows are orde

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。