OpenAI 停止 SWE-bench Verified 評估
OpenAI 已停止報告 SWE-bench Verified 分數,因為缺陷測試案例與訓練資料污染使該基準無法可靠衡量前沿模型的程式編寫能力。
測試案例設計缺陷
對 138 個未被 OpenAI o3 一致解決的問題進行審核後發現,59.4% 的任務在測試設計或問題描述上存在實質性問題。這些缺陷使得任務幾乎無法解決,無論模型的能力如何。
OpenAI 將這些失敗歸類為兩大類型:
- 狹窄測試案例 (35.5%): 測試強制要求問題描述未指定的特定實作細節。例如,在任務
pylint-dev__pylint-4551中,測試失敗是因為模型未命名新函式get_annotation,儘管需求中並未指定函式名稱。 - 寬廣測試案例 (18.8%): 測試檢查問題描述中未提及的功能。在任務
sympy__sympy-18199中,問題描述僅涵蓋原始 PR 中的三個問題之一,但測試要求修復全部三個問題才能通過。
訓練資料污染
由於 SWE-bench 問題取自模型訓練時使用的開源倉庫,前沿模型在訓練階段已接觸到解決方案(gold patches)。OpenAI 發現所有受測的前沿模型都能在某些任務中重現原始人工撰寫的錯誤修復或逐字的問題細節。
在多個模型系列中發現了污染的證據:
- GPT-5.2: 展示了對發行說明和特定參數(例如 Django 4.1 中的
edit_only)的了解,這些並未在問題敘述中明確要求。 - Claude Opus 4.5: 能夠回憶起原始差異中的四行功能變更、特定檔名以及逐字的內嵌註解。
- Gemini 3 Flash: 僅使用任務 ID 作為提示,就產生了來自任務描述與 gold patches 的逐字細節,包括正則表達式公式與精確行號。
OpenAI 指出,訓練期間接觸過這些問題的模型更有可能成功,因為它們擁有通過未明確規定或有缺陷測試所需的額外資訊。
對 AI 評估的影響
OpenAI 為未來 AI 基準的設計辨識出兩項關鍵教訓:
- 污染風險: 來源於公開素材的基準容易產生隱性的分數膨脹。OpenAI 建議開發者使用受密碼保護的資料集以及嚴格的金絲雀字串來過濾訓練資料。
- 自動評分的複雜性: 要製作既不關注不重要實作細節,又能抵禦投機取巧的完美測試案例本質上非常困難,且需要大量人工審查。
推薦的替代方案
OpenAI 目前正開發全新、未受污染的評估,以追蹤程式編寫能力。暫時而言,實驗室建議模型開發者報告 SWE-bench Pro 公開分支的結果。雖非完美,但實證顯示 SWE-bench Pro 的污染程度顯著較低,且沒有任何受測模型能產生完整的逐字 gold patch。
對於高風險的測量,OpenAI 推薦 GDPVal,其任務由領域專家私下編寫,並由人工審核者全盤評分,以消除暴露風險。