Vポイントマーケティング|TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

エージェンティックコーディングのベンチマーク「SWE-Bench Pro」について調べてみました。

こんにちは、VポイントマーケティングAIエンジニアの三浦 諒一です。

2026年度 人工知能学会全国大会がはじまりましたね!私も初日に会場であるGメッセ群馬に行ってきました。現地ならではの体験をしたかったので、主にポスターセッションを中心に見て回りました。面白そうな内容がたくさんあり、これからじっくり論文を読んでみたいと思っています。

また、私たちも共同研究論文の発表という形で今回の人工知能学会全国大会に関わることが出来ました。ぜひこちらの記事もご覧ください。

techblog.vpoint.co.jp

さて、先日リリースされたAnthropic社のモデルClaude Opus4.8のベンチマークの結果を見ていたのですが、そもそもこれらのベンチマークってどんな内容なんだろう?と疑問を持ちました。

www.anthropic.com

「SWE-Bench Pro」, 「Terminal-Bench 2.1」, 「Humanity's Last Exam」, 「OSWorld-Verified」, 「GDPval-AA」, 「Finance Agent v2」というベンチマークの結果が載っていますが、この中でコード生成の性能を測るのに使われているのが「SWE-Bench Pro」で、Opus4.8は69.2%という結果が出ています。

今回はこのSWE-Bench Proを理解するために、そもそもエージェントのコーディング性能ってどうやって測定するのかを含め、調べたことをまとめていきます。

正しいコードが作れたことをどう評価する?

そもそもエージェントが生成したコードが正しいかどうかをどうやって評価するのでしょうか。2021年にOpenAIが出した論文「Evaluating Large Language Models Trained on Code」にはそのためのアプローチが述べられています。

arxiv.org

この論文では「HumanEval」という、Pythonの関数をDocStringから生成することができるかを測定するベンチマークについて述べられています。コードの評価は一般的なテキストの評価とは異なる観点が必要です。たとえば一般的なテキストの評価であれば、正解のテキストと生成されたテキストがどれだけ似ているかとか、一致している部分がどれだけあるのかといった観点で測定出来ますが、コードは文面が似ていることよりも求めらている動作をちゃんと実装出来ているかがより重要です。

そこで論文で提案しているのが「あらかじめ用意した単体テストを全てパスすることが出来たかどうかでコードの評価を行う」という方法です。エージェントが生成したコードに対しコンテナベースの検証環境で問題ごとに用意した単体テストを実行し、全てのテストをパスできれば正解となります。事前準備をしておけば、あとは自動的な評価が可能になります。

論文ではさらに評価スコアと「pass@k」が導入されています。これはエージェントにk個のコードを生成させたときにそのうちの少なくとも1つが単体テストをパスできる確率の期待値として定義されます。コード生成の問題は複数回の思考が必要になることが多いため、単発ではなく複数回の生成を前提にした評価スコアとなっています。

より現実に近いタスクを扱う「SWE-Bench」

HumanEvalではDocStringからPythonの関数を生成できるかを評価しますが、現実のタスクではコードベース内の複数のファイルを読み、複数の関数等の関係を理解したうえで修正すべき箇所を見つけることが普通です。より現実に近いタスクで構成されるベンチマークとして提案されたのが「SWE-Bench」です。

www.swebench.com

SWE-BenchはGithub上のポピュラーなPythonのレポジトリからプルリクエスト(PR)とイシューをクローリングして構築された、エージェントがGithubのイシューを解決する能力を測定することを目的としたベンチマークです。

クローリングする際には次の条件が設定されます。まずPRがイシューに関連付けられていること、そして1つ以上のテスト関連ファイルが変更されていることです。これはつまりPR前では失敗するけどPR後は成功するテストケースが含まれている可能性が高いことを表していて、このテストケースをパスできればエージェントがイシューを解決するために生成したコードが正しいコードだと評価することが出来ます。

SWE-BenchはPythonのレポジトリが対象でしたが、C, C++, Go, Java, JavaScript/TypeScript, PHP, Ruby, Rustを含む「SWE-Bench Multilingual」や画面キャプチャなどの画像系の情報を含むイシューを対象にした「SWE-Bench Multimodal」といった派生形も存在します。

SWE-Benchの課題とSWE-Bench Pro

SWE-Benchは先ほど述べたようにGithubで公開されているレポジトリをクローリングしてデータセットを構築しています。公開され、アクセス可能であるということは、すでにモデルが学習してしまっている可能性も考えられます。これはコンタミネーションと呼ばれている課題で、モデルが問題を解いているというよりは学習した内容を再現しているだけかもしれません。そうなるとSWE-Benchで高い性能が出ていたとしても実世界の未知の問題ではそれ相応の能力が出ないかもしれません。

また当初はエージェントにとって難しいとされていたSWE-Benchも最近のモデルでは75%以上の解決率を示すようになってきました。SWE-Benchの派生形で人が厳選したタスクで構成されるSWE-Bench VerifiedベンチマークではClaude Opus4.5のhigh reasoningモードで76.80%という結果が出ています。

www.swebench.com

こうなってくるSWE-Benchよりもさらに難易度の高いベンチマークが求められるようになってきます。そこで提案されたのがこの記事の最初に触れた「SWE-Bench Pro」です。

labs.scale.com

SWE-Bench Proは米国のScale AI社によって構築されたベンチマークです。ビジネス向けアプリケーション、B2Bサービス、デベロッパーツールなどのリポジトリで現在も活発に活動されているものが収集対象となっています。タスクの内容は企業の実務で発生するような複雑なもので、中には100行を超えるような修正が必要なものも含まれています。

SWE-Bench Proのユニークな点の1つにデータを収集する対象のリポジトリの選定が挙げられます。まずGPLなどのコピーレフトライセンスの公開リポジトリを対象にしている点です。コピーレフトライセンスのデータを使うとそのモデルも同様に公開する必要が発生することから、これらのリポジトリはモデルの学習データに選ばれにくい、といった特徴があるためです。 それに加え、スタートアップから購入した非公開リポジトリも参照されています。これらのリポジトリから抽出したタスクは非公開のまま、ベンチマークの結果のみレポートされる仕組みになっています。

2025年9月19日時点でSWE-Bench VerifiedではPass@1スコアが70%を超えるモデルが存在していた一方、SWE-Bench ProではGPT-5の23%が最高値でした。SWE-Bench Proの難易度の高さがこの結果からも分かります。

なのですが、ここで最初に触れたOpus4.8のSWE-Bench Proのスコアを思い出してみましょう。そう、69.2%でした。1年も経っていないのにあっという間にここまでのスコアにたどり着いてしまっていることを見ると、改めて最近のモデルの進化スピードに驚かされます。

まとめ

今回はエージェントのコーディング性能を測定するベンチマークについて色々調べたことをまとめてみました。その仕組みや変遷をたどることで、ベンチマークのスコアが示す意味がより分かるようになりました。他にも「Terminal-Bench 」もよく使われるベンチマークのようなので、今度調べてみたいと思っています。