OpenAI 對 SWE-bench Pro 編碼評估缺陷的分析

OpenAI 對 SWE-bench Pro 編碼評估缺陷的分析

OpenAI 已撤回其對 SWE-bench Pro 基準測試的推薦,並得出結論:該數據集中約有 30% 的任務是損壞的。這一發現是在對該基準測試的 731 個任務公開分割集進行嚴格審計後得出的,結果顯示許多評估透過懲罰功能正確的解決方案或獎勵不完整的解決方案,提供了錯誤的模型能力信號。

編碼基準測試的失效模式

OpenAI 識別出四種導致編碼評估失效的主要缺陷類別。這些問題通常源於基準測試是從真實世界的 GitHub issues 和 pull requests 中以程式化方式獲取的,而這些內容最初是為了人類協作而非孤立的機器測試而設計的。

  • 過於嚴格的測試: 強制執行提示詞中未指定的特定實作細節的測試,導致功能正確的提交內容失敗。
  • 描述不足的提示詞: 提示詞省略了隱藏測試會強制執行的要求,但這些要求無法從提供的上下文合理推斷出來。
  • 低覆蓋率的測試: 未能充分檢查所請求功能的測試,導致不完整或錯誤的修復內容通過。
  • 誤導性提示詞: 指引模型走向錯誤行為或直接與測試要求相矛盾的指令。

審計方法論:代理與人類

為了識別這些缺陷,OpenAI 採用了雙軌品質保證流程。這種方法突顯了 AI agents 進行可擴展數據品質檢查日益增長的實用性,而這些檢查在以前人工進行的成本過高。

自動化代理審查

初步篩選標記了 286 個潛在損壞的任務。接著,這些任務由具備任務 repository 和環境存取權限的 Codex-based 調查代理進行審計。這些代理可以執行測試、檢查文件並調查常見的失效模式,以區分合理的模糊性與真正的描述不足。

人類標註活動

與此同時,五名經驗豐富的軟體工程師審查了被標記的任務。審查者根據問題陳述、測試案例和「gold patch」(標準參考解決方案)形成獨立判斷。

對比結果

雖然代理流程與人類審查者在 74% 的案例中重疊,但人類審查者更有可能將任務識別為損壞。具體而言,人類將低覆蓋率的測試標記為基準測試中最常見的問題,佔 9.4%,而代理流程僅識別出 4.1%。這表明代理審查是保守的,且可能低估了重疊問題的數量。

行業觀點與反論點

圍繞這些發現的社群討論揭示了對「乾淨」基準測試的需求與軟體工程現實之間的緊張關係。

真實世界的雜訊作為一種特性

一些批評者認為,描述不足的提示詞和矛盾的指令並非基準測試中的「錯誤」,而是專業環境的準確反映。正如一位評論者所言:

從根本上說,他們不就是在得出結論,說分配給軟體開發人員(無論是人類還是其他形式)的任務往往是不完整的、自相矛盾的,或者更糟嗎?這就是他們的工具必須應對的世界。

「Benchmaxxing」問題

其他觀察者指出,「獎勵黑客行為」(reward hacking)和「benchmaxxing」——即實驗室修改超時時間或硬體配置以人為地提高分數——是 AI 評估中更廣泛的系統性問題。這件事也因為許多基準測試是「one-shot」的,且未能測試真實開發者工作流中特有的長迭代週期而變得更加複雜。

結論:對精選基準測試的需求

OpenAI 結論認為,從有機開源數據中獲取的基準測試天生容易受到雜訊影響。為了確保部署和安全決策是基於有效數據,OpenAI 主張開發由經驗豐富的軟體開發人員專門為模型評估而創建的新基準測試,而非依賴程式化採集的數據。

Sources