最近、AIによるプログラミング支援は急速に進化しています。GitHub Copilot、Claude Code、Gemini CLI など、さまざまなツールが登場し、「AIにコードを書かせる」ことが現実になってきました。
しかし、どのAIが本当に優れているのかを公平に評価する方法は意外と限られています。そこで開発されたのが SWE-bench です。

スポンサーリンク

SWE-benchとは?

SWE-benchは、実際のオープンソースプロジェクトで報告された バグ修正タスク を元に作られたベンチマークです。
単純なアルゴリズム問題ではなく、「現実に存在したバグを修正する」という、かなり実務寄りの評価ができるのが特徴です。

課題は以下のような流れで構成されています。

  1. あるオープンソースリポジトリのバージョンを特定の時点に固定
  2. 実際にあったバグに関するIssueやテストコードを提示
  3. AIにバグ修正コードを書かせる
  4. 修正後のコードをビルド&テストして、すべてのテストが通れば正解

これにより、「単に動くコードを書く力」だけでなく、「既存の大規模コードベースを理解し、必要な部分だけを修正する力」が問われます。

なぜこういうベンチマークが必要なのか?

AIの性能比較は、アルゴリズム問題やコード生成コンテストだけでは不十分です。
実際のソフトウェア開発では、既存コードの構造や依存関係を理解した上での修正が必要になるため、より現実的な課題での評価が重要です。

SWE-benchは、まさにこの「現実の開発現場での力」を測るための指標です。
たとえば、以下のような力が試されます。

  • コードリーディング能力(既存コードを理解する力)
  • 影響範囲の把握(どこを直せば安全か)
  • テスト駆動での修正(テストで正しさを確認する姿勢)
スポンサーリンク

SWE-benchの課題サンプル

以下はSWE-benchに含まれる課題の一例です。

課題概要
プロジェクト: pandas
バグ内容: read_csv() 関数で、特定条件下で日付型のパースが失敗する
再現方法: サンプルCSVを読み込むと ValueError が発生する
修正条件: 日付解析ロジックを見直し、既存のテストと新規追加テストをすべて通すこと

図解(簡略版)

┌────────────────────────────────┐
│ read_csv()                     │
│   ↓                            │
│   日付解析処理 parse_dates()     │  ← バグ発生
│   ↓                            │
│   DataFrameに変換               │
└────────────────────────────────┘

修正対象は日付解析処理の一部のみですが、その部分は複数の内部関数や外部ライブラリに依存しており、全体を理解してから手を加える必要があります。
こうした構造は、現実のバグ修正と非常によく似ています。

Claude Code と Gemini CLI のSWE-benchスコア比較

2025年8月時点で公表されているSWE-benchスコア(解答成功率)の一例です。

モデルSWE-bench 成功率
Claude Opus 472.5%
Gemini 2.5 Pro63.8%
GPT-574.9%

※スコアはタスクの種類や評価条件によって変動します。
その為、この数字だけで「どちらが優れている」とは明確な断言はできません。

まとめ

SWE-benchは、「AIが実務レベルでどこまでコードを直せるか」を測るための非常に有用なベンチマークです。もしAIツールを業務に導入するなら、このような現実的な課題での性能を参考にすることで定量的な判断の一つになると思います。


この記事が気に入ったら『目黒で働く分析担当の作業メモ』ご支援をお願いします!

※OFUSEに飛びます


おすすめの記事