OpenAI SWE-bench Verified リリース:人間検証ベンチマークがソフトウェアエンジニアリング評価を向上させる

TL;DR

OpenAIは SWE‑bench Verified をリリースしました。これは、曖昧な課題や不公平なユニットテストを除去した、SWE‑bench ソフトウェアエンジニアリングベンチマークの人間検証済み500サンプルのサブセットで、AIモデルの自律的コーディング能力をより信頼性の高い評価が可能です。GPT‑4oはこれらのサンプルの33.2%を解決し、元のベンチマークでのスコアの2倍以上です。

SWE‑bench の背景

SWE‑bench は、12 のオープンソース Python リポジトリからの実際の GitHub 課題に対して大規模言語モデル(LLM)を評価します。各テストサンプルは課題の説明とリポジトリのコードを提供し、モデルはコードを編集して、関連する FAIL_TO_PASS ユニットテスト(最初は失敗する)を合格させ、すべての PASS_TO_PASS テストは引き続き合格させる必要があります。このベンチマークは自律的なソフトウェアエンジニアリング能力を測る標準となっており、2024年8月5日現在、トップエージェントは全体で20%、より簡易な SWE‑bench Lite では43% を達成しています。

元のベンチマークが改善を必要とした理由

OpenAI は、SWE‑bench がモデルの性能を過小評価していた3つの体系的な問題を特定しました:

  1. 過度に具体的または無関係なユニットテスト – 一部の FAIL_TO_PASS テストは課題の説明に記載されていない動作を要求し、正しい解決策を却下しました。
  2. 課題記述の不十分さ – 曖昧な問題説明により、モデルは有効な修正を行うための十分な情報が得られませんでした。
  3. 環境設定の脆弱性 – リポジトリ環境を再現する際の困難により、解決策に関係なくテストが失敗しました。

例として scikit-learn__scikit-learn-14520 サンプルがあります。この課題では copy 引数が無視されていると記載されていますが、必要なテストは課題本文に全く記載されていない特定の DeprecationWarning メッセージも要求します。隠されたテストにアクセスできなければ、エージェントは要件を確実に満たすことはできません。

SWE‑bench Verified:人間検証サブセット

これらの欠陥に対処するため、OpenAI は大規模なアノテーションキャンペーンを開始しました:

  • アノテーター – 93 人のプロの Python 開発者がランダムに選んだ 1,699 件の SWE‑bench サンプルを審査しました。
  • アノテーションルーブリック – 各サンプルには、課題記述の不十分さとユニットテストの公平性に対して 0‑3 の4段階の重大度ラベルが付与され、さらに難易度推定(経験豊富なエンジニアが解くのに要する時間)が付けられました。
  • コンセンサスプロセス – 各サンプルは3人の独立したアノテーターによってラベル付けされ、保守的なフィルタリングを確保するために最高の重大度ラベルが採用されました。
  • フィルタリング基準 – いずれかの軸で重大度ラベルが ≥ 2、または重大な問題としてフラグ付けされたサンプルは除外されました。

その結果得られた SWE‑bench Verified セットは、特定された問題がない 500 件の高品質サンプル を含みます。難易度アノテーションにより、15 分未満で完了すると見積もられる「簡単」サブセットが 196 件、「難しい」サブセットが 1 時間以上かかると見積もられる 45 件であることが明らかになりました。このデータセットは、元の SWE‑bench と SWE‑bench Lite の両方に取って代わります。

新しい評価ハーネス

OpenAI は SWE‑bench の作者と協力し、Docker ベースの評価ハーネスをリリースしました。これにより環境設定が簡素化され、将来のベンチマークにおける再現性が向上します。

SWE‑bench Verified におけるモデル性能

新しいデータセットを使用して、OpenAI は元のリーダーボードで好成績を収めた複数のオープンソーススキャフォールドで GPT‑4o を評価しました:

  • ベストスキャフォールド – GPT‑4o は SWE‑bench Verified で 33.2% の解決率を達成し、元の SWE‑bench の 16% スコアの 2 倍以上 となりました。
  • オープンソーススキャフォールドの改善 – オープンソースシステムである Agentless スキャフォールドも、データセットのクリーンアップ後にスコアを 16% から約 33% に倍増させました。

難易度別のパフォーマンス

パフォーマンス向上は 各難易度バケット内で 観測され、データセットにより多くの簡単なタスクが含まれているだけではありません。これは、フィルタリングが実際に実行不可能なサンプルを除去したことを示しており、単に難易度分布をシフトさせたわけではありません。

AI 準備性への示唆

SWE‑bench Verified は、OpenAI の Preparedness Framework(中程度のレベルでモデル自律リスクを追跡)内で、より信頼できる指標として機能します。正確なベンチマークは以下のために重要です:

  • 真の能力向上と評価アーティファクトを区別すること。
  • モデルがより高い自律レベルに近づくにつれ、リスク評価を導くこと。
  • コミュニティに対し、厳格なベンチマークキュレーションの必要性を伝えること。

OpenAI は次の3つの要点を強調しています:

  1. ベンチマークの深い理解 – よく設計されたスイートでも、モデル能力を誤って表す体系的バイアスが隠れていることがあります。
  2. エコシステムへの認識 – 外部のスキャフォールドの進歩がスコアに大きく影響するため、継続的な再評価が不可欠です。
  3. 限界の認識 – 静的で公開GitHub由来のデータセットはデータ汚染のリスクがあり、自律リスクのごく一部しかカバーできないため、他の評価と組み合わせる必要があります。

データの入手可能性

すべてのアノテーション、検証済みサブセット、および新しい Docker ハーネスは公開されています。研究者は元の投稿に記載されたリンクからリソースをダウンロードできます。

著者と謝辞

本研究は Neil Chowdhury、James Aung、Chan Jun Shern、Oliver Jaffe、Dane Sherburn、Giulio Starace、Evan Mays、Rachel Dias、Marwan Aljubeh、Mia Glaese、Carlos E. Jimenez、John Yang、Leyton Ho、Tejal Patwardhan、Kevin Liu、そして Aleksander Madry(同等の貢献)によって実施されました。謝辞は、元の SWE‑bench の作成者、Preparedness チーム、そして SWE‑bench Verified を可能にした多数のアノテーターに対してです。


Citation: OpenAI, Introducing SWE‑bench Verified, 2024年8月13日. URL: https://openai.com/index/introducing-swe-bench-verified

Sources