Claude 3.5 Sonnet SWE-bench Performance

アップグレードされた Claude 3.5 Sonnet は、SWE-bench Verified で 49% の成功率を達成し、以前の最先端スコアである 45% を上回りました。この向上は、モデルの強化された推論力、コーディング能力、数学的処理能力に加え、モデルの自律性を最大化するように設計された最小限のエージェント基盤によるものです。

SWE-bench Verified の概要

SWE-bench は、人気のあるオープンソース Python リポジトリから実際の GitHub の問題を解決する能力を評価するベンチマークです。コンテスト形式のコーディングテストとは異なり、モデルはリポジトリのローカルコピー内でコードを理解し、変更し、テストする必要があります。

SWE-bench Verified は、オリジナルデータセットの 500 問のサブセットであり、すべてのタスクが外部の文脈なしで解けるように人間がレビューしています。このベンチマークは「エージェント」——AI モデルとその周囲のソフトウェア基盤(プロンプトやツール解析ロジック)の組み合わせ——を評価します。

エージェントのアーキテクチャと設計哲学

Anthropic の Claude 3.5 Sonnet 用エージェント基盤は、言語モデルが問題解決プロセスを最大限に制御できるように、最小限の基盤に焦点を当てています。エージェントはプロンプトと2つの主要なツールを使用して動作します。

ツール使用エージェントの構成要素

  • Bash ツール: 永続的な環境で bash コマンドを実行します。ツールの説明には、入力のエスケープ方法、インターネットアクセスの不可、長時間実行されるコマンドをバックグラウンドで実行する方法といった重要な指示が含まれています。
  • Edit ツール (str_replace_editor): ファイルの表示、作成、編集を行う複雑なツールです。viewcreatestr_replaceinsertundo_edit などのコマンドをサポートしています。

主要な最適化戦略

  • 文字列置換による編集: モデルが置換する old_strnew_str を指定する文字列置換方式を使用しています。old_str が正確に1回だけ一致する場合にのみ置換が行われるため、他の編集戦略に伴う信頼性の問題を低減できます。
  • エラー防止: 相対パスによる問題を防ぐために、Edit ツールはすべての操作に絶対パスを要求します。
  • モデルの自律性: プロンプトは一般的なアプローチ(探索、再現、編集、検証)を提案するものの、厳格なワークフローを強制せず、モデルが自らの判断を活かせるようにしています。

実行結果

同じエージェント基盤を使用した場合、アップグレードされた Claude 3.5 Sonnet は、以前のモデルおよび以前の最先端モデルを大きく上回りました。

モデル SWE-bench Verified スコア
Claude 3.5 Sonnet (新) 49%
以前の最先端 45%
Claude 3.5 Sonnet (旧) 33%
Claude 3 Opus 22%

エージェントの行動と能力

モデルのログ分析によると、アップグレードされた Claude 3.5 Sonnet は、より強力な自己修正能力を持ち、同じミスを繰り返すのではなく、複数の異なる解決策を試みる傾向が強いです。

一般的なワークフローでは、モデルは以下の手順を踏みます:

  1. Edit ツールを使用してリポジトリ構造を探索します。
  2. バグの再現スクリプトを作成します。
  3. Bash ツールでスクリプトを実行し、エラーを観察します。
  4. Edit ツールでソースコードを修正します。
  5. 再現スクリプトを再実行して修正の妥当性を検証します。

実装上の課題

Anthropic は、SWE-bench Verified の評価を実行する上で4つの主要な課題を特定しました。

  1. コストと所要時間: 成功した実行は数百ターンに及び、10万トークンを超える場合もあり、プロセスが高コストかつ時間がかかります。
  2. 採点の正確性: システムレベルの問題(環境設定のエラー、重複するパッチの適用など)により、誤った失敗評価が生じる可能性があります。
  3. 隠れたテスト: モデルは採点テストを確認できないため、実際には失敗しているにもかかわらず成功していると誤認することがあり、表面的な修正を施すだけで根本的なリファクタリングを行わない場合があります。
  4. マルチモーダルの制限: モデルには視覚能力がありますが、現在のエージェント実装ではファイルや URL を閲覧できず、可視化出力(例:Matplotlib)を含むタスクのデバッグが困難になります。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch