この arXiv プレプリントは、現実のソフトウェアエンジニアリング作業から構築された評価フレームワーク SWE-Bench を紹介する。著者らの問題設定は、言語モデルの進歩が、それを効果的に評価する 私たちの能力を追い越してしまっており、その能力の最前線を研究することが今後の発展に不可欠だ、という ものである。著者らは、次世代のモデルのための豊かで持続可能かつ挑戦的なテストベッドとして、現実の ソフトウェアエンジニアリングを提案する。
SWE-bench は、12 の人気 Python リポジトリにまたがる現実の GitHub イシューと、それに対応する プルリクエストから集めた 2,294 件のソフトウェアエンジニアリング問題で構成される。課すタスクは 明快に述べられている。コードベースと解決すべきイシューの記述が与えられ、言語モデルはそのイシューに 対処するようにコードベースを編集することを求められる。著者らは、これが従来のコード生成以上のものを 要求すると主張する。SWE-bench のイシューを解決するには、多くの場合、複数の関数やクラス、さらには 複数のファイルにまたがる変更を同時に理解し調整する必要があり、モデルには実行環境とのやり取り、 極めて長いコンテキストの処理、複雑な推論が求められる。
報告されている結果は低い。最先端のプロプライエタリモデルも、著者ら自身がファインチューニングした モデル SWE-Llama も、最も単純なイシューしか解決できず、最も性能の高いモデルである Claude 2 でも イシューのわずか 1.96% しか解決できない。著者らは、SWE-bench での進歩を、より実用的で知的かつ 自律的な言語モデルへ向けた前進として位置づけている。
この論文は計算と言語 (cs.CL)、人工知能 (cs.AI)、ソフトウェアエンジニアリング (cs.SE) に分類されて いる。2023 年 10 月 10 日に最初に投稿され、2024 年 11 月 11 日にバージョン 3 として最後に改訂されて おり、arXiv が発行した DOI 10.48550/arXiv.2310.06770 が付与され、ICLR 2024 で発表された。データ、 コード、リーダーボードは https://www.swebench.com で公開されているとされる。
要点
- 論文は、12 の人気 Python リポジトリにまたがる現実の GitHub イシューと対応するプルリクエストから集めた 2,294 件のソフトウェアエンジニアリング問題からなる評価フレームワーク SWE-bench を紹介している。
- 動機となる主張は、言語モデルの進歩がそれを効果的に評価する私たちの能力を追い越しており、現実のソフトウェアエンジニアリングは豊かで持続可能かつ挑戦的なテストベッドになる、というものである。
- タスクの形式は、モデルにコードベースとイシューの記述を与え、そのイシューを解決するようにコードベースを編集させるというものである。
- 著者らは、このベンチマークが従来のコード生成を超える能力を要求すると主張する。すなわち、複数の関数・クラス・ファイルにまたがる変更の同時調整、実行環境とのやり取り、極めて長いコンテキストの処理、そして複雑な推論である。
- 見出しとなる測定結果は、最も性能の高いモデルである Claude 2 がイシューの 1.96% を解決したというもので、最先端のプロプライエタリモデルも著者らがファインチューニングした SWE-Llama も最も単純なイシューしか解決できなかった。この数値は論文のこのバージョン時点のものであり、後のモデルにとってのベンチマークの難しさを表すものではない。
補足
ベンチマークの範囲には、アブストラクトが明示している制約がある。リポジトリは Python のもので、 数は 12 であり、問題は対応するプルリクエストがすでに存在するイシューから採られている。著者らは 低い解決率をモデルへの審判としてではなく、伸びしろの尺度として位置づけている。SWE-bench での 進歩は、より実用的で知的かつ自律的な言語モデルへ向けた前進として捉えられている。このプレプリントは 2023 年 10 月から 2024 年 11 月にかけて 3 つのバージョンを経ている。