[論文レビュー] EffiBench: Benchmarking the Efficiency of Automatically Generated Code
この論文は、LeetCodeの1,000の効率性が求められるコーディング問題と、それぞれに人間が書いた最適な解答が対応付けられたベンチマーク、EffiBenchを紹介する。21の大規模言語モデル(LLM)を実行時間とメモリ使用量の指標を用いてコードの効率性で評価したところ、GPT-4-turboが最も効率の良いコードを生成した。平均して、人間の最適解答よりも1.69倍遅いが、他のモデルと比べて顕著に優れていた。
Code generation models have increasingly become integral to aiding software development. Although current research has thoroughly examined the correctness of the code produced by code generation models, a vital aspect that plays a pivotal role in green computing and sustainability efforts has often been neglected. This paper presents EffiBench, a benchmark with 1,000 efficiency-critical coding problems to assess the efficiency of code generated by code generation models. EffiBench contains a diverse set of LeetCode coding problems. Each problem is paired with an executable human-written canonical solution, which obtains the SOTA efficiency on the LeetCode solution leaderboard. With EffiBench, we empirically examine the ability of 42 large language models (35 open-source and 7 closed-source) to generate efficient code. Our evaluation results demonstrate that the efficiency of the code generated by LLMs is generally worse than the efficiency of human-written canonical solutions. For example, GPT-4 generated code has an average extbf{3.12} times execution time that of the human-written canonical solutions. In the most extreme cases, the execution time and total memory usage of GPT-4 generated code are extbf{13.89} and extbf{43.92} times that of the canonical solutions. The source code of EffiBench is released on https://github.com/huangd1999/EffiBench. We also provide the LeaderBoard at https://huggingface.co/spaces/EffiBench/effibench-leaderboard.
研究の動機と目的
- 既存のコード生成評価フレームワークにおいて、コード効率に焦点を当てたベンチマークが不足しているという問題を解決すること。
- 実行時間やメモリ使用量といったパフォーマンス指標よりも正しさを重視する現在のベンチマークのギャップを特定すること。
- LLMが生成するコードの実用的効率を測るための標準的で自動化された評価フレームワークを提供すること。
- オープンソースおよびクローズドソースの多様な大規模言語モデル間での効率性を体系的に比較可能にする。
- 現実の計算ワークロードにおいて、LLMが生成するコードと人間が最適化したソリューションとの間のパフォーマンスギャップを浮き彫りにすること。
提案手法
- 最適な時間計算量と空間計算量を必要とする、LeetCodeの1,000の効率性が求められるコーディング問題を選定する。
- LeetCode上で最高の効率レーティングを達成している実行可能で人間が書いた最適な解答を、各問題と対応付ける。
- 複数回の実行において、実行時間(ET)、正規化された実行時間(NET)、最大メモリ使用量(MU)、正規化された最大メモリ使用量(NMU)、総メモリ使用量(TMU)、正規化された総メモリ使用量(NTMU)を測定する。
- 理論的計算量解析に依存せず、自動化された実行とプロファイリングを用いてパフォーマンス指標を収集する。
- 正規化された指標を用いて、最適な解答との相対的な比較を可能にし、モデル間の比較を可能にする。
- 一貫した入力プロンプトと実行環境を用いて、21の大規模言語モデル(13のオープンソース、8のクローズドソース)を同じベンチマークで評価する。

実験結果
リサーチクエスチョン
- RQ1異なる大規模言語モデルは、人間が最適化したソリューションと比較して、どのように効率の良いコードを生成するか?
- RQ2LLMが生成するコードの効率性は、理論的時間計算量および空間計算量とどの程度相関しているか?
- RQ3多様な効率性が求められる問題のセットにおいて、実行時間およびメモリ使用量の観点から、どのモデルが最も効率の良いコードを生成するか?
- RQ4LLMが生成するコードのパフォーマンス指標は、複数回の実行においてどの程度一貫しており、実行時間およびメモリ使用量のばらつきはどの程度か?
- RQ5自動化された実行時メトリクスは、理論的計算量の注釈よりも、コード効率の評価をより正確かつ客観的に行えるか?
主な発見
- GPT-4-turboは、評価されたすべてのモデルの中で最も効率の良いコードを生成し、正規化された実行時間(NET)の平均が最適解答の1.69倍であった。
- GPT-4-turboが生成するコードの最悪ケース実行時間は、最適解答よりも45.49倍遅く、エッジケースにおけるパフォーマンスのばらつきが顕著であることを示している。
- GPT-3.5-turbo-1106は、モデルの中で最高の pass@1 率(53.1%)を達成したが、NETは2.91であり、GPT-4-turboの1.69よりも著しく劣っている。
- PaLM-2-chat-bison および Gemini-pro は、それぞれ91.90 MBおよび71.95 MBの顕著な高いメモリ使用量を示し、NMU値が3.35および2.72であり、メモリ効率が低いことが示された。
- Claude-instant-1 および GPT-4 は、実行時間に高いばらつきを示しており、標準偏差がそれぞれ0.01秒であったが、NET値(3.80および2.27)では依然として劣っている。
- 最適な解答は、すべてのLLMが生成するコードを一貫して上回り、GPT-4-turboが最も近いパフォーマンスを示したが、平均で1.69倍遅く、現実の効率性において依然として明確なギャップが存在することが示された。

より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。