SWE-bench(エスダブリューイーベンチ)
GitHubの実際のIssueとPRから構成されるソフトウェアエンジニアリング向けLLMベンチマーク。LLMがリアルなバグ修正タスクをどれだけ解決できるかを評価する。
SWE-bench
概要
SWE-bench(Software Engineering Benchmark)は、LLMがリアルな開発作業をどれだけ自律的にこなせるかを測定するベンチマークだ。GitHubの人気Pythonリポジトリから収集した2,294件のIssue/PRペアで構成され、「このバグを直してください」という自然言語の指示に対しLLMが実際のコードを修正し、既存のテストスイートを通過させることが求められる。
評価方法
タスクはすべて「エージェント型」の難題だ。LLMはリポジトリ全体を参照し、どのファイルを修正すべきかを自分で判断し、パッチを生成して適用する。評価指標は単純で、変更後にテストが全通過すれば「解決」とカウントされる。
スコア推移の例
- GPT-4(2023年):約1.7%
- Claude 3 Opus:約4.1%
- Claude 3.5 Sonnet:約49%
- SWE-agent + GPT-4o:約23%
- 最新エージェント手法(2025年):70%超
SWE-bench Verified / Lite
元のSWE-benchには品質のばらつきがあったため、Anthropicと協力して500件を手動検証したSWE-bench Verifiedと、300件を代表抽出したSWE-bench Liteが派生した。研究では主にLiteかVerifiedが使われる。
重要性
HumanEvalやMBPPのような単純な関数生成タスクと異なり、SWE-benchは「実際の開発業務」を模している。コンテキスト長・マルチファイル編集・デバッグ能力が総合的に問われるため、コーディングLLMの実力を最もよく反映するベンチマークとして業界標準に近い地位を確立した。
活用例
# SWE-bench Liteでエージェントを評価する例
pip install swebench
python -m swebench.harness.run_evaluation \
--predictions_path predictions.jsonl \
--swe_bench_tasks SWE-bench_Lite \
--log_dir ./logs
限界
現状はPythonリポジトリのみ対象。TypeScript・Rust・Goなど他言語への拡張版(SWE-bench Multilingual)が研究中だ。また、テスト通過率がコード品質を完全に反映するわけではなく、ハードコーディングによるズルも理論上は可能だ。