Evaluating LLMs on Real-World Software Performance Optimization
本論文は、エキスパートによる102件の最適化から派生した厳格なリポジトリレベルのベンチマークであるSWE-Proを紹介するものであり、これは、現在の大規模言語モデルが、熟練したエンジニアがもたらす大幅な高速化やメモリ削減と比較して、得られる利得が無視できるほどであることから、現実世界のソフトウェア最適化において人間レベルの性能に達することに著しく失敗していることを明らかにしている。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
全体像:「スピード重視のシェフ」対「マスターシェフ」
想像してみてください。あなたは、非常に忙しく、活気のあるレストランの厨房(現実世界のソフトウェア・コードベース)を運営しています。そこで、マスターシェフ(人間のエキスパート)がより速く、より少ないエネルギーで料理を作れるよう、手助けをするためにAIシェフ(大規模言語モデル、またはLLM)を雇いました。
マスターシェフは、野菜をいかに効率的に刻むか、手順を減らすためにパントリーをどう整理するか、そして燃料を節約するためにコンロの温度をどう調整するかを正確に知っています。彼らには長年の経験があります。
AIシェフは非常に賢いです。レシピを読み、材料を理解し、見た目には完璧に見える新しいレシピさえ書くことができます。しかし、この論文が問いかけている大きな疑問はこうです。「これらのAIシェフは、現実の世界において、実際に厨房の回転を速め、エネルギー消費を抑えることができるのか? それとも、単に見た目だけを良くして、実際にはスピードを改善していないだけなのか?」
問題点:これまでのテストは単純すぎた
これまで、研究者たちはAIシェフに対し、「このニンジンを一つ刻んで」という、たった一つの小さなタスクを与えてテストしてきました。
- 欠陥: 本物の厨房では、ニンジンを一つだけ刻むのではありません。10個、1,000個、あるいは100,000個と刻みます。時にはニンジンが濡れていたり、凍っていたりすることもあります。
- 結果: 従来のテストは、静かな部屋でニンジンを一つ刻む能力を評価するようなものでした。それは、シェフが1,000件の注文が入るラッシュアワーに対応できるか、あるいは、速さを追求するあまりに水を使いすぎていないか(メモリ使用量)といった点をテストできていませんでした。
この論文は、従来のテストは簡単すぎ、現実のコンピュータで発生する「ノイズ」(ランダムな変動)を捉えきれていないと主張しています。
解決策:SWE-Pro(「本物の厨房」シミュレーター)
著者たちは、SWE-Proと呼ばれる、より困難で新しいテストを構築しました。これは、混沌とした現実世界の厨房を高度にシミュレートしたものだと考えてください。
- 本物のレシピ: 彼らは架空のタスクを作ったわけではありません。有名なオープンソース・プロジェクト(pandas、scikit-learn、xarrayなど)において、人間のエキスパートが実際にコードの最適化に成功した102の事例を調査しました。これらが「ゴールドスタンダード(黄金律)」のレシピです。
- ストレス・テスト: 単一の入力でテストするのではなく、SWE-Proは多くの異なるシナリオでテストを行います。
- 比喩: 単に「ニンジンを10個刻む」のではありません。「10個刻む」、「100個刻む」、「10,000個刻む」、さらに「濡れたニンジン」「凍ったニンジン」「大きさの異なるニンジン」を使って行うのです。
- ノイズ・フィルター: コンピュータは複雑です。プログラムが遅くなる理由は、コンピュータが他のこと(例えばウェイターがトレイを落としたことなど)を考えていたからかもしれません。SWE-Proはテストを何度も繰り返し実行し、特別な統計的「ノイズ・フィルター」を使用して、もしAIが「私は速くなった」と言ったとしても、それが単なる偶然の幸運ではなく、本当に正しいものであることを確認します。
- 2つの指標: 彼らは2つの要素を測定します。
- スピード: 料理が提供される速さ(実行時間)。
- メモリ: シェフがどれだけの作業スペースや保管場所を使用するか(ピークメモリおよび時間加重メモリ使用量)。
結果:AIシェフは苦戦している
トップクラスのAIモデル(GPT-5.2やClaude Sonnet 4.6など)を、この厳格な「本物の厨房」テストに通したところ、結果は驚くべき、そして失望させられるものでした。
- 人間のエキスパート(ゴールドスタンダード): 人間がコードを最適化したとき、劇的な改善が見られました。
- 比喩: マスターシェフは調理時間を15倍短縮し、必要なカウンタースペースを171倍も削減しました。彼らは、膨大なリソースを節約するための、キッチンを再配置する巧妙な方法を見つけ出したのです。
- AIシェフ:
- スピード: AIモデルによる変化は、ほとんどありませんでした。ほとんどの場合、彼らの「改善」はあまりにも小さく、ランダムなノイズと区別がつかないレベルでした。
- メモリ: AIモデルがメモリを節約できたことは、ほぼありませんでした。この分野においては、彼らの存在感は皆無に等しいものでした。
- 「信号なし」の問題: たとえAIが基本的なテストに合格するコード(料理の味は合っている)を書いたとしても、測定可能なスピードアップを生み出すことは滅多にありませんでした。それは、ニンジンを綺麗に刻んではいるものの、以前と全く同じ時間がかかっているシェフのようなものです。
- デグレ(性能退行): 時には、AIが逆に物事を遅くしてしまうこともありました。あるモデル(GPT-5.2)は、平均して30%もコードを遅くしてしまいました!
主な教訓
この論文は、AIは「正しく見える」コードや「ルールに従った」コードを書くことには長けているものの、現実世界のシナリオにおいてソフトウェアを大幅に高速化したり、メモリ使用量を削減したりするために必要な、深く複雑なエンジニアリングを行う能力は、現時点では非常に低いと結論付けています。
- ギャップ: AIができることと、エキスパートである人間のエンジニアができることの間には、巨大な隔たりがあります。
- ボトルネック: 問題は、AIが運良く大きな改善を実現できないことではありません(稀にできます)。問題は、AIがそれらの改善の機会を確実に発見することができない点にあります。
要約すると: もしあなたがAIに「このソフトウェアを速くして」と頼んだとしても、AIは立派に見えるパッチを書くかもしれませんが、それが実際にあなたのコンピュータを高速化したり、メモリを節約したりすることを期待しないでください。今のところ、その仕事は依然として人間のエキスパートの領域なのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。