[論文レビュー] A Performance Study of LLM-Generated Code on Leetcode - Code and Dataset artifacts
本稿では、プロンプトのバリエーションと温度設定が、アルゴリズム的コーディングタスクにおけるCodexおよびGitHub Copilotのパフォーマンスに与える影響を調査する。LeetCodeおよびHumanEvalにおける自動実験を通じて、これらのパrameterをチューニングすることで、1ショット生成において最大79.27%の成功率に到達可能であることを示している。これはデフォルト設定を著しく上回るものであり、現在のコード生成モデルが大きな潜在的性能と同時に根本的な脆さを有していることを明らかにしている。
Language models are promising solutions for tackling increasing complex problems. In software engineering, they recently gained attention in code assistants, which generate programs from a natural language task description (prompt). They have the potential to save time and effort but remain poorly understood, limiting their optimal use. In this article, we investigate the impact of input variations on two configurations of a language model, focusing on parameters such as task description, surrounding context, model creativity, and the number of generated solutions. We design specific operators to modify these inputs and apply them to three LLM-based code assistants (Copilot, Codex, StarCoder2) and two benchmarks representing algorithmic problems (HumanEval, LeetCode). Our study examines whether these variations significantly affect program quality and how these effects generalize across models. Our results show that varying input parameters can greatly improve performance, achieving up to 79.27% success in one-shot generation compared to 22.44% for Codex and 31.1% for Copilot in default settings. Actioning this potential in practice is challenging due to the complex interplay in our study - the optimal settings for temperature, prompt, and number of generated solutions vary by problem. Reproducing our study with StarCoder2 confirms these findings, indicating they are not model-specific. We also uncover surprising behaviors (e.g., fully removing the prompt can be effective), revealing model brittleness and areas for improvement.
研究の動機と目的
- プロンプトの変化と温度設定の変更が、CodexおよびGitHub Copilotが生成するコードの品質および正しさに与える影響を評価すること。
- 入力パrameterの体系的チューニングが、アルゴリズムプログラミング問題におけるコード生成パフォーマンスを著しく向上させることを調査すること。
- 多様なコーディングタスクにおいて、コードアシスタントの入力設定変更に対する耐性および感受性を評価すること。
- 標準設定よりも優れた結果をもたらす可能性がある、予期しないまたは直感に反する設定(例:プロンプトの削除)を特定すること。
- 今後のソフトウェア工学分野におけるLLMベースのコード生成研究のための再現可能で明確なベンチマークとデータセットを提供すること。
提案手法
- 各コーディングタスクに対して、プロンプト、温度、生成された解決策の数(pass@k)を体系的に変化させるカスタムオペレータを設計した。
- これらのオペレータを、HumanEval(50タスク)およびLeetCode(6言語で合計300タスク)の2つのベンチマークに適用した。
- CodexおよびCopilotのAPIを用いて、制御された入力変更のもとでコード生成を自動化した。
- 自動テストスイートを用いて生成されたコードを評価し、正しさ(成功率)を測定した。
- 複数の設定において結果を収集・分析し、パフォーマンスのトレンドおよび最適設定を特定した。
- 再現可能性を確保するため、プロンプトのバリエーションおよび評価結果を含むデータセットとアーティファクトを公開した。
実験結果
リサーチクエスチョン
- RQ1アルゴリズム的問題におけるCodexおよびCopilotのコード生成成功率に、プロンプト記述の変化がどのように影響するか?
- RQ2温度ハイパーパrameterのチューニングが、コード生成の品質および正しさに与える影響は何か?
- RQ3プロンプトを完全に削除する、または簡素化することは、標準的または複雑なプロンプトよりも優れたコード生成結果をもたらす可能性があるか?
- RQ4異なる種類のアルゴリズム的問題において、最適な設定(温度、プロンプト、pass@k)はどのように変化するか?
- RQ5コードアシスタントのパフォーマンスは、入力パrameter設定にどの程度感受性を示すのか?これは信頼性および自動化への意味をどう示唆するか?
主な発見
- プロンプトと温度設定の変更により、コード生成パフォーマンスが顕著に向上し、最適化された設定を用いた1ショット生成で最大79.27%の成功率を達成した。
- デフォルト設定のCodexは22.44%の成功率にとどまり、Copilotは31.1%であった。これは標準設定下での顕著なパフォーマンス格差を示している。
- 驚くべきことに、一部のケースではプロンプトを完全に削除した場合に、標準的または複雑なプロンプトよりも優れた結果が得られた。これは現在のモデルに根本的な脆さが存在することを示唆している。
- 最適な設定(温度、プロンプト、pass@k)は問題ごとに顕著に異なり、一般化されたチューニングが困難であることを示した。
- パフォーマンスの向上は、問題の種別やプログラミング言語によって一様ではなく、モデル動作における文脈依存的な感受性を示唆している。
- 本研究により、現在のコードアシスタントは入力設定に対して極めて感受性が高く、最適な使用のためには手動または自動によるハイパーパrameterチューニングが不可欠であることが明らかになった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。