SWE-bench 深度精讀
系列 · 1 篇
-
SWE-bench:用真實 GitHub issue 評測,但不能把 1.96% 讀成模型能力的終點
中階 Agent Runtime、安全與評測精讀 Jimenez et al. ICLR 2024 Oral:把評測單位改成真實 GitHub issue、完整 Python 倉庫與測試。Claude 2 在 BM25 下只解 1.96%;這個分數是協議,不是模型排行榜。
90 秒掌握這篇論文
- 問題
- HumanEval 這類 coding benchmark 把成功壓成「寫一個自包含函式」。真實軟體工程是:讀一份 GitHub issue、在數千檔的倉庫裡改程式,再用測試判定有沒有修好。既有分數測不到這件事。
- 核心洞見
- 把評測單位改成「真實 issue + 完整 Python 倉庫 + 測試」。模型產出 patch;unix patch 套用後,fail-to-pass 與 pass-to-pass 測試必須全部通過才算 resolve。改動的控制點不是新的 agent 架構,而是什麼算成功。
- 最強證據
- BM25 檢索、13k context 下,Claude 2 resolve 1.96%(abstract、Section 1、Table 2)。同一協議的 Table 5 列 Claude 2 為 1.97%,並另外列入 Claude 3 Opus 3.79%。Oracle 檢索時 Claude 2 升到 4.80%(Table 18)。SWE-Llama 在 BM25 只有 0.70%,仍多半只解最簡單的題。
- 主要邊界
- Python、issue-fix、binary 測試。Resolve 不測可維護性、未覆蓋行為或 review。BM25 與 oracle 是不同檢索條件。後續 SWE-bench Verified、SWE-agent 與 ProMax 採用不同設定,其分數不屬於本文表格。
歡迎演講、企業內部技術分享與架構交流;可以先查看我適合分享的主題與公開工程成果。
演講與聯絡