OpenAI 針對廣泛用於衡量 AI 程式編寫能力的基準測試「SWE-Bench Pro」進行詳細稽核,估計其中約 30% 的任務存在缺陷[1]。該公司先前曾建議社群改用這項基準,如今依據稽核結果撤回了這項建議[1]。這項發布再次顯示,準確衡量 AI 模型的真實能力並不容易。

SWE-Bench Pro 是什麼,OpenAI 為何稽核它

SWE-Bench Pro 以程式化方式從軟體儲存庫的功能變更歷史中擷取任務,要求 AI 模型在不破壞既有功能的前提下,實作出能通過新測試的方案[1]。它的設計目標是透過更長的工作跨度與更貼近現實的程式任務,追蹤代理式程式編寫能力。在公開的 731 個任務上,前沿模型的通過率在短短 8 個月內從 23.3% 躍升至 80.3%[1]。

這次稽核其來有自。OpenAI 先前調查了長期作為標竿的「SWE-bench Verified」,發現其有根本性的設計問題與資料污染(答案混入訓練資料的問題),認為它已無法為軟體開發能力提供有意義的訊號,當時便建議社群轉向 SWE-Bench Pro[1]。此次稽核則是以同樣的品質檢查方法,檢驗這個曾被推薦的後繼基準[1]。

OpenAI 說明,評測結果會用於其自身的部署與安全決策,包括基於 Preparedness Framework 的判斷。若評測本身有缺陷,就可能造成對模型能力的錯誤認知,影響安全論證與研究優先順序[1]。

AI 代理與人類工程師的雙重稽核

稽核首先透過自動過濾器分析給模型的指示、模型的解答嘗試,以及用於評分的測試,篩出 286 個疑似有問題的任務[1]。接著,以 Codex 為基礎的調查代理深入清查這批任務。這些代理可以存取任務儲存庫與執行環境,能夠執行測試、檢視檔案並調查模型常見的失敗模式,最終判定則由研究人員做出[1]。

同時,OpenAI 也舉辦了由資深軟體工程師參與的人工標註活動。每個被標記的任務由 5 名工程師獨立評審,意見分歧或信心不足的案例會升級進行進一步審查[1]。

發現的缺陷主要分為 4 類[1]:強制要求指示中未說明的實作細節、導致功能正確的解答被判定錯誤的「過於嚴格的測試」;隱藏測試所要求的規格無法從指示推斷的「規格不完整的指示」;對目標功能檢查不足、不完整的修正也能通過的「覆蓋率過低的測試」;以及引導模型走向與測試要求相矛盾方向的「誤導性指示」[1]。

值得注意的是,人類評審比調查代理更容易將任務判定為「損壞」。在代理標記的類別中,雙方判斷有 74% 重疊,但就「覆蓋率過低的測試」而言,人類在整個基準的 9.4% 任務中將其選為最主要問題,代理管線則僅有 4.1%[1]。在所有被標記的任務中,沒有任何一項任務的人類多數意見是「未損壞」[1]。

撤回推薦,呼籲社群打造新基準

基於這些結果,OpenAI 估計 SWE-Bench Pro 約 30% 的任務已損壞,並建議模型開發者審慎看待相關成績[1]。該公司同時撤回了先前採用這項基準的建議[1]。

OpenAI 也談到缺陷產生的結構性原因。開源儲存庫中的議題與拉取請求(變更提案)原本是為人類協作而寫,問題描述、合併的程式碼與單元測試,未必能整齊構成適合評測模型的獨立任務[1]。尤其是拉取請求中包含的測試,是為驗證特定變更而撰寫,很難成為與實作方式無關的通用合格標準[1]。

另一方面,該公司也指出,隨著模型能力提升,如今大規模清查評測缺陷比以往容易許多[1]。OpenAI 呼籲更廣泛的評測社群,開發由資深軟體開發者專門為測試模型能力而打造的新基準[1]。

總結

OpenAI 的稽核估計 SWE-Bench Pro 約 30% 的任務有缺陷,該公司已撤回先前採用這項基準的建議[1]。通過率快速上升不必然代表真實能力的提升,對關注基準數字的人而言是沉重的一課。如何打造一把「沒有損壞的尺」來衡量 AI 程式編寫能力,正成為整個產業的課題。

出典:https://openai.com/index/separating-signal-from-noise-coding-evaluations