コーディング評価における信号とノイズの分離について
OpenAI は、コーディング能力の評価において有用な指標と誤解を招くノイズを区別する手法について議論し、評価の信頼性向上に向けた重要な指針を示した。
キーポイント
信号とノイズの定義
コーディング能力の評価において、真の能力を示す「信号」と、学習データへの過剰適合や単純なパターン認識による誤認を招く「ノイズ」を明確に区別する必要性が強調された。
評価指標の再構築
従来のベンチマークテストが抱える限界を克服し、モデルの汎用的なコーディング能力をより正確に測定するための新しい評価手法や指標の検討が行われた。
業界への示唆
開発者や研究者に対し、単なるスコア比較ではなく、テストが何を測定しているかを深く理解し、ノイズを排除した上でモデル性能を判断するよう促している。
影響分析・編集コメントを表示
影響分析
この記事は、AI モデルの評価基準が単なる数値競争から、いかにして真の能力を抽出するかにシフトすべきかという重要な転換点を示しています。特にコーディング分野では、テストデータへの学習(データ汚染)や表面的な模倣が評価結果を歪めるリスクが高いため、OpenAI の提言は開発者や研究者にとって実務的な指針となります。
編集コメント
評価指標の質が AI モデルの開発方向性を左右する中で、ノイズを排除する視点は極めて重要です。単なるスコアアップではなく、真の能力向上に焦点を当てた議論は業界全体にとって有益です。
モデルの能力を正確に測定することは、健全な展開や安全性に関する意思決定、さらに OpenAI の Preparedness Framework(新しいウィンドウで開く) に基づく意思決定において極めて重要です。モデルがリリースされるたびに、モデルの進捗を追跡するために、さまざまな外部および内部ベンチマークの結果を報告しています。評価に結果に影響を与える欠陥がある場合、能力に関する誤った理解を与え、安全性の根拠を歪め、研究の優先順位にも影響を及ぼすことになります。
私たちは最近、最も広く使用されているコーディングベンチマークの一つである SWE-bench Verified に根本的な設計上の問題と汚染の問題があり、この評価がソフトウェア開発能力に関する有意義なシグナルを提供しなくなったことを調査しました。当時、より広いコミュニティに対して SWE-Bench Pro への移行を促しました。
SWE-Bench Pro(opens in a new window) は、より長い時間軸とより現実的なコーディングタスクにおいてモデルをテストすることで、SWE-bench Verified を改善するために設計されました。これにより、エージェント型コーディング能力をより正確に追跡できるようになります。SWE-bench Verified と同様に、タスクは公開および非公開のリポジトリの機能変更履歴からプログラムatically取得されます。モデルには、既存の機能を壊すことなく、新機能に対する新しいテストに合格する解決策を実装することが求められます。731 タスクからなる公開スプリットにおいて、最先端モデルのパス率は 8 か月で 23.3% から 80.3% に向上しました。
その後、SWE-Bench Pro についても同様の監査を実施し、データポイント分析パイプラインを用いてデータセットをレビューしました。このパイプラインは、モデルによるタスクへの取り組み、タスクのメタデータ、および失敗のトレースを検証し、評価上の欠陥が疑われるものをフラグ付けします。各フラグ付けされたタスクは、複数の調査員エージェントによるパスを経て審査され、さらに 5 名の経験豊富なソフトウェアエンジニアによって独立してレビューされました。意見が分かれた場合は、さらなる調査のためにエスカレーションされます。
我々は、データセットの相当な割合に機能不全を引き起こす問題が存在する証拠を発見しました。データポイント分析パイプラインは 200 件(27.4%)の破損タスクをフラグ付けしましたが、人間による注釈キャンペーンでは 249 件(34.1%)が特定されました。
これらの問題は主に以下の 4 つのカテゴリーに分類されます:
- 過度に厳格なテスト1は、プロンプトで指定されていない特定の実装詳細を強制するため、機能的には正しい提出物も無効化されてしまいます。
- 要件が不十分なプロンプト2では、隠れたテストで要求されるが、合理的に推測できない要件が省略されています。
- カバレッジの低いテストでは、要求された機能が十分にチェックされないため、不完全な修正でも合格してしまいます。
- 誤解を招くプロンプトは、モデルを間違った行動へと誘導するか、テストで要求される内容と矛盾する方向へ向けてしまいます。
私たちの調査結果は、困難かつ公平なベンチマークの構築が難しいこと、およびスケーラブルなデータ品質チェックにおけるエージェントの有効性が高まっていることを示しています。これらの結果を踏まえると、SWE-bench Pro のタスクの約 30% が破損していると推定され、モデル開発者は結果を注意深く精査するよう推奨します。
方法論
私たちの目的は、タスクの失敗がモデルの真の限界を反映し、タスクの成功がプロンプト要件に対する完全かつ有効な解決策であることを保証することです。評価に使用されたデータの品質を確認するため、各データポイントがモデルの能力を正確に反映しているかを評価する品質保証パイプラインを作成しました。
初期のデータ品質パイプラインは、レビューが必要な問題点をフラグ付けします。その後、フラグ付けされたタスクに対するエージェント支援による詳細な監査と、経験豊富なエンジニアとの連携による人間による注釈キャンペーンを通じて検証を行います。
初期の自動フィルタは、モデルに与えられた指示、モデルによるタスク解決への試み、およびこれらの試みを評価するために使用されるテストをレビューし、おそらく破損しているか問題のある例を特定します。このフィルタにより、286 の潜在的に破損したタスクが検出されました。その後、このサブセットに対して 2 つの異なる方法でより詳細なレビューを実施しました。1 つ目は、調査員エージェントによる広範なチェックと最終的な人間の判断を行う人間監督型エージェントレビューです。もう 1 つは、経験豊富なソフトウェア開発者と連携して行われる人間アノテーションキャンペーンです。
人間監督型エージェントレビュー
各検出された問題は、タスクリポジトリおよび環境へのアクセス権限を与えられた Codex ベースの調査員エージェントによって監査されます。これにより、近隣のコードやリポジトリの慣習を調べることで解決可能な合理的なタスクの曖昧さと、真に仕様が不十分な状態を区別することが可能になります。エージェントはテストの実行、リポジトリ内のファイルの検査、およびモデルによる試みとそのタスクにおける一般的な失敗モードの調査を行うことができます。これらの詳細監査を数回独立して繰り返した後、研究者が要約を確認し、最終的な判断を下して、おそらく存在する問題にラベルを付けました。
人間アノテーションキャンペーン
並行して、検出されたサブセットに対して人間アノテーションキャンペーンを実施しました。ベンチマークの目標、課題分類体系、およびエッジケースについて事前に訓練を受けた経験豊富なソフトウェアエンジニアと連携しました。各タスクは 5 名のエンジニアによってレビューされました。
レビュー担当者は、パイプライン分析やトランスクリプトを補足文脈として使用する前に、目に見える問題記述、テストケース、および正解参照ソリューション(ゴールドパッチと呼ばれる)から独立した判断を下しました。その後、レビュー担当者は具体的な証拠に基づいてラベルと深刻度評価を割り当て、意見の相違や低信頼度の事例についてはさらに詳しい審査のためにエスカレーションしました。
人間によるレビュー担当者は、調査エージェントよりもタスクが破損しているとマークする可能性が高かったです。また、2 つのレビューパス間でカテゴリに関するいくつかの不一致もありましたが、フラグされたタスクのいずれにおいても「破損していない」が最も一般的な人間のラベルとなることはありませんでした。エージェントパイプラインによってフラグされたカテゴリのうち、レビュー担当者の判断と一致したのは 74% のケースでした。
エージェントパイプラインと比較して、人間によるレビュー担当者は、1 つのタスクに対して複数のラベルを選択する可能性も高かったです。これは、タスクが複数の方法で破損しているか、単一のカテゴリにきれいに分類できないと判断したことを示しています。この結果は、エージェントとレビュー担当者を組み合わせたパイプラインが保守的なラベリングを行ったことを示唆しています。つまり、人間が特定した広範な障害モードを捉えつつも、レビュー担当者が追加または重複する問題を見出したケースについては過少評価していたのです。最も大きな違いが見られたのは低カバレッジテストで、ベンチマークの 9.4% で人間が最も一般的な課題として選択したのに対し、エージェントパイプラインでは 4.1% でした。
Failure modes
いくつかの事例において、タスクプロンプトは特定のの実装を規定していましたが、隠されたテストケースは異なる動作を期待していました。
Discussion
私たちが特定した問題と、SWE-bench Verified における同様の事例を組み合わせることで、ベンチマークを厳密に検証することの重要性が浮き彫りになります。オープンソースリポジトリからの課題(issues)やプルリクエストは、元々メンテナーとコントリビューター間の長期間にわたるやり取りを通じて行われる人間同士の協働のために作成されたものです。その結果、問題の説明、マージされたコード、およびユニットテストが、モデルを信頼して評価するための明確で孤立したタスクとして常に整合するわけではありません。特に、プルリクエストに含まれるテストは、特定の修正を検証するために記述されているため、タスク解決のための実装に依存しない標準を定義するためではなく、過度に厳格になっている可能性があります。
同時に、評価上の欠陥は、ほんの少し前よりも今なら検出しやすくなっています。モデルの能力が向上するにつれ、これらのモデルを用いてプロンプト、テスト、パッチ、トレース、およびエッジケースを、はるかに深い深さと一貫性で検査できるようになり、以前は大規模に発見することがコスト高または非現実的だったベンチマーク上の問題を表面化させるのに役立ちます。
私たちは、より広い評価コミュニティにおいて、経験豊富なソフトウェア開発者によって構築され、モデルの能力をテストするために特別に設計された新しいベンチマークが開発されることを願っています。このアプローチは、モデルの能力を測定したいと考える高い基準と現実味を維持しつつ、プロセス全体を通じてより良い人的監督を可能にします。今回の分析で明らかになった問題点を踏まえ、SWE-Bench Pro の採用に関する以前の推奨事項を取り下げます。
究極的に、評価は、ゲーム化が難しく、信頼しやすく、モデルの能力やアライメントを真に反映したベンチマークを通じて意味のあるシグナルを提供すべきです。これらの結果は OpenAI の展開および安全性に関する意思決定に影響を与えるため、私たちが追跡する評価は有効かつ有益でなければなりません。
原文を表示
Accurately measuring our models’ capabilities is important for sound deployment and safety decisions, including decisions under OpenAI’s Preparedness Framework(opens in a new window). With each model release, we report results for a variety of external and internal benchmarks to track model progress. When evaluations have flaws that affect results, they can give a false understanding of capabilities, misrepresenting safety cases and affecting research priorities.
We recently investigated how one of the most widely used coding benchmarks, SWE-bench Verified, had fundamental design and contamination issues, and found that the eval no longer provided meaningful signal on software development capabilities. At the time, we encouraged the wider community to switch to SWE-Bench Pro.
SWE-Bench Pro(opens in a new window) was designed to improve on SWE-bench Verified by testing models on longer horizons and more realistic coding tasks to better track agentic coding capabilities. As in SWE-bench Verified, tasks are sourced programmatically from the history of feature changes in a set of public and private repositories. Models are required to implement a solution that passes new tests for a feature, without breaking existing functionality. On the 731-task public split, frontier models improved from a pass rate of 23.3% to 80.3% in eight months.
We’ve since performed a similar audit on SWE-Bench Pro, reviewing the dataset using a datapoint analysis pipeline. The pipeline reviewed model attempts at the task, task metadata, and failure traces to flag likely evaluation flaws. Each flagged task was then assessed through multiple investigator-agent passes and independently reviewed by five experienced software engineers, with disagreements escalated for further investigation.
The issues primarily fell into four categories:
- Overly strict tests1 enforce specific implementation details not specified in the prompt, invalidating many functionally correct submissions.
- Underspecified prompts2 omit requirements that hidden tests enforce and that are not reasonably inferable.
- Low-coverage tests under check the requested feature, so incomplete fixes can pass.
- A misleading prompt points models toward the wrong behavior or contradicts what tests require.
Our findings point to the difficulty of curating hard but fair benchmarks and the growing utility of agents for scalable data quality checks. In light of these results, we estimate that ~30% of SWE-bench Pro tasks are broken, and advise that model developers carefully examine results.
Methodology
Our aim is to ensure that task failures reflect genuine model limitations, and task successes reflect complete and valid solutions to the prompt requirements. To check the quality of the data used in the evaluation, we created a quality assurance pipeline to assess whether each datapoint accurately reflects model capabilities.
An initial automated filter reviews the instructions given to the model, attempts by the model to solve the task, and the tests used to grade these attempts to flag likely broken or problematic examples. This filter flagged 286 potentially broken tasks. We then conducted a deeper review of that subset in two ways: a human-supervised agent review, which conducts extensive checks with investigator agents and a final human judgment; and a human annotation campaign working with experienced software developers.
Human-supervised agent review
Each flagged problem is audited with Codex-based investigator agents that were given access to the task repository and environment. This helps them distinguish reasonable task ambiguity, which can often be resolved by studying nearby code and repository conventions, from true underspecification. The agent can run tests, inspect files in the repo, and investigate model attempts and their common failure modes on the task. After several independent repeats of these deeper audits, a researcher reviewed the summaries, made a final judgment, and labeled the likely issues.
Human annotation campaign
In parallel, we ran a human annotation campaign over the flagged subset. We worked with experienced software engineers who were trained on the benchmark goals, issue taxonomy, and edge cases before reviewing tasks. Each task was reviewed by five engineers.
Reviewers formed an independent judgment from the visible problem statement, test cases, and the ground-truth reference solution (known as the gold patch) before using the pipeline analysis or transcript as supporting context. The reviewers then assigned a label and severity rating based on concrete evidence, and escalated disagreements or low-confidence cases for further review.
Human reviewers were more likely than the investigator agents to mark tasks as broken. There was also some disagreement on categories between the two review paths, but in no flagged task was “not broken” the most common human label. Of the categories the agent pipeline flagged, reviewers’ judgments overlapped in 74% of cases.
Compared with the agent pipeline, the human reviewers were also more likely to select multiple labels for a task, indicating that they found tasks to be broken in multiple ways or did not fit cleanly into a single category. This suggests the agent-plus-reviewer pipeline resulted in conservative labeling: it captured the same broad failure modes humans identified, while undercounting cases where reviewers saw additional or overlapping issues. The largest difference was in low-coverage tests, which humans selected as the most common issue for 9.4% of the benchmark compared with 4.1% from the agent pipeline.
Failure modes
In several cases the task prompt prescribed a specific implementation, but the hidden test cases expected different behavior.
Discussion
The issues we have identified, coupled with similar cases in SWE-bench Verified, highlight the importance of rigorously checking benchmarks. Issues and pull requests from open-source repositories were originally created for human collaboration, often through long back-and-forths between maintainers and contributors. As a result, problem descriptions, merged code, and unit tests do not always line up to form clean, isolated tasks for evaluating models reliably. In particular, tests included in pull requests can be overly strict because they are written to validate a specific change, rather than to define an implementation-agnostic standard for solving the task.
At the same time, evaluation flaws are easier to detect now than they would have been even a short time ago. As model capabilities improve, we can use those models to inspect prompts, tests, patches, traces, and edge cases with much greater depth and consistency, helping surface benchmark issues that were previously costly or impractical to find at scale.
We hope the wider evaluation community will develop new benchmarks built by experienced software developers specifically to test model capabilities. That approach can preserve the high bar and realism we want to measure model capabilities, and allows for better human oversight throughout the process. Given the issues uncovered in this analysis, we retract our earlier recommendation to adopt SWE-Bench Pro.
Ultimately, an eval should provide meaningful signal through benchmarks that are hard to game, easy to trust, and genuinely reflective of model capability or alignment. Because these results inform OpenAI’s deployment and safety decisions, the evals we track need to be valid and informative.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み