OpenAI、SWE-bench Verified の評価を中止
OpenAI は、SWE-bench Verified ベンチマークの結果の報告を停止し、もはや最先端 AI モデルの実世界のソフトウェアエンジニアリング能力を正確に測定できなくなったと結論付けました。この決定は、スコアの向上が実際の能力向上というよりも学習データの汚染を反映していることが多く、さらにベンチマークのテストケースに重大な欠陥があることを示す分析に基づいています。
欠陥のあるテストケース設計
OpenAI o3 が一貫して解決できなかった 138 の問題を監査した結果、これらのタスクの 59.4% にテスト設計や問題記述に実質的な問題があることが判明しました。これらの欠陥により、モデルの能力に関係なくタスクの解決がほぼ不可能になります。
OpenAI はこれらの失敗を主に 2 つのタイプに分類しました:
- Narrow Test Cases (35.5%): 問題記述で要求されていない特定の実装詳細を強制するテスト。例として、タスク
pylint-dev__pylint-4551では、要件に関数名が指定されていないにもかかわらず、モデルが新しい関数get_annotationの名前を付けなかったためテストが失敗しました。 - Wide Test Cases (18.8%): 問題記述に記載されていない機能をチェックするテスト。タスク
sympy__sympy-18199では、問題記述は元の PR で扱われた 3 つの問題のうち 1 つだけをカバーしていましたが、テストはすべての 3 つの修正を要求して合格させました。
学習データの汚染
SWE-bench の問題はモデルの学習に使用されるオープンソースリポジトリから取得されているため、最先端モデルは学習段階で解決策(ゴールドパッチ)に触れる機会があります。OpenAI は、テストされたすべての最先端モデルが特定のタスクに対して元の人間が書いたバグ修正や問題の詳細をそのまま再現できることを確認しました。
汚染の証拠は複数のモデルファミリーにわたって見つかりました:
- GPT-5.2: 問題文で明示的に要求されていないリリースノートや特定のパラメータ(例:Django 4.1 の
edit_only)に関する知識を示しました。 - Claude Opus 4.5: 元の差分から正確な 4 行の機能変更、特定のファイル名、そしてインラインコメントをそのまま思い出しました。
- Gemini 3 Flash: タスク ID だけをプロンプトとして、タスク記述やゴールドパッチから正確な詳細(正規表現の式や正確な行番号など)をそのまま生成しました。
OpenAI は、学習中にこれらの問題に触れたモデルは、指定が不十分または欠陥のあるテストを通過するために必要な追加情報を持っているため、成功しやすいことを指摘しました。
AI 評価への影響
OpenAI は、今後の AI ベンチマーク設計において重要な 2 つの教訓を挙げています:
- 汚染リスク: 公開資料から取得したベンチマークは、スコアが静かに膨らむ傾向があります。OpenAI は、開発者がパスワードで保護されたデータセットと厳格なカナリア文字列を用いて学習データのフィルタリングを行うことを推奨します。
- 自動採点の複雑性: 重要でない実装詳細に依存せず、かつ抜け道に対して頑健な完璧なテストケースを作成することは本質的に難しく、広範な人的レビューが必要です。
推奨代替案
OpenAI は現在、コーディング能力を追跡するための新しい、汚染されていない評価を開発中です。その間、ラボはモデル開発者に SWE-bench Pro の公開分割からの結果を報告することを推奨しています。完璧ではありませんが、実証的な証拠は SWE-bench Pro がはるかに少ない汚染であり、テストされたモデルが完全なゴールドパッチをそのまま生成できなかったことを示唆しています。
ハイステークスな測定には、タスクがドメイン専門家によって非公開で作成され、人間のレビュアーが総合的に評価することで露出リスクを排除した GDPVal を OpenAI は推奨しています。