FrontierCode: 本番環境レベルのコード品質のための新しいベンチマーク

正確性からマージ可能性への転換

FrontierCodeは、AIモデルが、人間のメンテナーが実際に本番環境のコードベースにマージするような、高品質でメンテナンス可能なコードを生成できるかどうかを測定するために設計された新しいコーディングベンチマークです。SWE-Benchのような従来のベンチマークは、主に機能的な正確性(コードが動作するかどうか)に焦点を当てていましたが、FrontierCodeは「マージ可能性」を評価します。これは、正確性、テストの品質、スコープの規律、スタイル、および特定のコードベースの基準への準拠を組み合わせたものです。

現在、最も有能なモデルであっても、この基準では苦戦しています。最も困難なサブセットであるFrontierCode Diamondでは、トップのパフォーマンスを示すモデルであるClaude Opus 4.8がわずか13.4%のスコアを達成し、次いでGPT-5.5が6.3%、Gemini 3.1 Proが4.7%となりました。

ベンチマークの構造と難易度

FrontierCodeは、モデルのパフォーマンスを詳細に把握するために、難易度が上がるにつれて3つの入れ子になったサブセットで構成されています。

  • Diamond: 最も困難な50のタスク。
  • Main: 最も困難な100のタスク(Diamondを含む)。
  • Extended: 全150のタスクのセット。

パフォーマンスは、主に2つの指標によって測定されます:pass rate(ソリューションがマージを停止させる「ブロッカー」基準をすべてクリアするかどうか)およびscore(ルーブリック項目の加重合計であり、ブロッカーに失敗したソリューションはゼロとなります)。

既存のベンチマークの失敗への対処

Cognitionは、SWE-Bench VerifiedやProのような第一世代のベンチマークに見られる3つの主要な問題を解決するためにFrontierCodeを開発しました。

1. 分類エラー

既存のベンチマークは、しばしば偽陽性(不完全なテストカバレッジにより誤ったソリューションを報酬として与える)や偽陰性(過度に特定のテストにより正しいソリューションを罰する)に悩まされています。FrontierCodeは、より厳格な品質管理パイプラインを採用することで、SWE-Bench Proよりも偽陽性率を81%低減しています。

2. 多様性の欠如

単一のPR(プルリクエスト)をプログラム的にスクレイピングするのではなく、FrontierCodeのタスクは、複数のPRチェーンや自由形式のリクエストからメンテナーによって手動で選定されています。また、このベンチマークは、SWE-Bench Proと比較して、対象となるプログラミング言語の数を3倍に増やしています。

3. 過剰な仕様指定

多くのベンチマークは、モデルを「手取り足取り」教えるような、過度に詳細なプロンプトを提供します。FrontierCodeは、人間のような簡潔なタスク記述を使用しており(SWE-Bench Proの約3分の1の長さ)、エージェントがコードベースのコンテキストからメンテナーの意図を推測することを要求します。

メソドロジー:FrontierCodeの構築方法

エキスパート主導のタスク作成

Cognitionは、36の主要なオープンソースリポジトリのメンテナーと協力しました。各メンテナーは、自身のプロジェクトに「マージ可能」とは何を意味するかを定義するために、1タスクあたり40時間以上を費やし、ベンチマークが単純なCI pass/failロジックではなく、現実世界のプロフェッショナルな判断を反映するようにしました。

多次元的な評価

FrontierCodeは、単純なユニットテストを超えて、以下の6つの軸でコードを評価します:

| カテゴリ | 方法 | 目標 | | :--- | :--- | :--- | | | Behavioral Correctness | Classical / Adaptive | パッチが問題を解決することを確実にする。 | | Regression Safety | Command | 既存の機能が壊れていないことを確実にする。 | | Mechanical Cleanliness | Command | ビルド、lint、およびスタイルチェックを通過する。 | | Test Correctness | Reverse-Classical | エージェントが作成したテストが、元の壊れたコードで失敗することを確認する。 | | Scope | Scope | パッチが、必要なファイル/行のみを修正する。 | | Code Quality | Prompt (LLM) | デザインパターンや可読性への準拠を確実にする。 | |

新しい採点技術

堅牢性を高めるために、ベンチマークは3つの特定の技術を導入しています:

  • Reverse-Classical Testing: エージェントが作成したテストがベースのコミットで失敗することを強制し、エージェントが実際にバグを理解していることを証明する。
  • Code Scope Constraints: 修正されたファイルや行の増加を自動的に制限し、不要なリフェクタリングを防ぐ。
  • Adaptive Classical Grading: mutagent というツールを使用してテスト環境を surgically patch(外科的にパッチを適用)し、決定論的なテストを可能にします。これにより、表面的な実装の詳細(例:関数名)が異なる可能性のある、自由形式のソリューションを検討できます。

コミュニティの洞察と批判

リリース後、技術的な議論では、ベンチマークの持つ意味合いやメソドロジーに関するいくつかの重要な点が強調されました。

効率性 vs. 知能: 一部の観察者は、Claude Opus 4.8が生のスコアでリードしている一方で、GPT-5.5は、大幅に少ないトークン数(場合によっては最大4倍少ない)を使用して、競争力のある結果を達成していることが多く、より優れたコスト・知能のトレトレードオフを示唆しています。

コーディングエージェントの性質について: 批判的な意見を持つ人々は、コーディングエージェントの目標は「完璧な」ワンショットのプロンプトから完了までではなく、むしろ協力的(collaborative)なアシスタントであるべきだと主張しています。ある貢献者は次のように述べています:

"Handling comments and asking good clarifying questions when needed are real capabilities. Human SWEs interact plenty and real engineering is a certain density of questions about requirements, taste, and other big vague things."

評価の厳格さについて: ベンチマークは偽陽性/偽陰性の低減に焦点を当てている点は高く評価されていますが、一部のユーザーは「コード品質」の主観性について懐疑的な見解を示しており、人間が常に普遍的な品質の基準に合意できるわけではないため、LLMの評価を測定することは依然として課題であると主張しています。

Sources