OpenAI SWE-bench Verified 發布:人工驗證的基準提升軟體工程評估
TL;DR
OpenAI 發布了 SWE‑bench Verified,這是一個經過人工驗證的 500 個樣本子集,取自 SWE‑bench 軟體工程基準,去除了模糊的問題與不公平的單元測試,使得 AI 模型的自主程式編寫能力評估更為可靠;GPT‑4o 解決了其中 33.2% 的樣本,分數是原始基準的兩倍以上。
SWE‑bench 背景
SWE‑bench 針對來自 12 個開源 Python 倉庫的真實 GitHub 問題,評估大型語言模型(LLM)。每個測試樣本提供問題描述與倉庫程式碼;模型必須編輯程式碼,使相關的 FAIL_TO_PASS 單元測試(最初失敗)通過,同時所有 PASS_TO_PASS 測試仍保持通過。此基準已成為衡量自主軟體工程能力的標準,截至 2024 年 8 月 5 日,頂尖代理在完整集合上達到 20%,在較易的 SWE‑bench Lite 上達到 43%。
為何原始基準需要改進
OpenAI 發現了三個系統性問題,導致 SWE‑bench 低估模型表現:
- 過於具體或不相關的單元測試 – 某些
FAIL_TO_PASS測試要求的行為在問題描述中未提及,導致正確解決方案被拒絕。 - 問題敘述不足 – 模糊的問題描述使模型缺乏足夠資訊以產生有效的修正。
- 環境設定脆弱 – 難以重現倉庫環境,導致測試無論解決方案如何都會失敗。
一個說明性的案例是 scikit-learn__scikit-learn-14520 樣本,問題提到 copy 參數被忽略,但所需的測試還要求特定的 DeprecationWarning 訊息,而該訊息在問題文字中從未出現。若無法取得隱藏測試,代理無法可靠地滿足此需求。
SWE‑bench Verified:人工驗證的子集
為了解決這些缺陷,OpenAI 發起了大規模的標註活動:
- 標註者 – 93 位專業 Python 開發者篩選了 1,699 個隨機 SWE‑bench 樣本。
- 標註規範 – 每個樣本獲得四個嚴重程度標籤(0‑3),針對問題敘述不足與單元測試公平性,並附加難度估計(經驗豐富的工程師解決所需時間)。
- 共識流程 – 每個樣本由三位獨立標註者標記;保留最高的嚴重程度標籤,以確保保守的過濾。
- 過濾標準 – 任何在任一軸上嚴重程度標籤 ≥ 2,或被標記為重大問題的樣本,都會被移除。
最終得到的 SWE‑bench Verified 集合包含 500 個高品質樣本,不含上述問題。難度標註顯示有 196 個「簡單」子集,估計解決時間低於 15 分鐘;以及 45 個「困難」子集,估計需超過一小時。此資料集取代了原始的 SWE‑bench 與 SWE‑bench Lite。
新的評估工具
OpenAI 與 SWE‑bench 作者合作,發布了基於 Docker 的評估工具,簡化環境設定,提升未來基準測試的可重現性。
模型在 SWE‑bench Verified 上的表現
使用新資料集,OpenAI 評估了 GPT‑4o,搭配先前在原始排行榜上表現良好的多個開源腳手架:
- 最佳腳手架 – GPT‑4o 在 SWE‑bench Verified 上達到 33.2% 的解決率,超過原始 SWE‑bench 16% 分數的 兩倍以上。
- 開源腳手架改進 – Agentless 腳手架(開源系統)在資料集清理後,分數也從 16% 提升至約 33%,同樣翻倍。
各難度層級的表現
在 每個難度區間 中皆觀察到效能提升,而非僅因資料集包含較多簡單任務。這表明過濾移除了真正不可行的樣本,而非僅僅改變難度分布。
對 AI 準備度的影響
SWE‑bench Verified 作為 OpenAI Preparedness Framework(準備度框架)中更可信的指標,該框架在中等層級追蹤模型自主風險。精確的基準對於以下方面至關重要:
- 辨識真正的能力提升與評估產生的假象。
- 在模型接近更高自主層級時指導風險評估。
- 向社群說明嚴謹基準策展的必要性。
OpenAI 強調三點要點:
- 深入了解基準 – 即使設計良好的套件也可能隱藏系統性偏差,誤導模型能力的呈現。
- 生態系統意識 – 外部腳手架的進步可能大幅影響分數;持續的重新評估是必須的。
- 認識限制 – 靜態、來源於公共 GitHub 的資料集可能受到資料污染,且僅涵蓋自主風險的狹窄範圍,必須以其他評估方式補足。
資料可取得性
所有標註、驗證子集以及新的 Docker 工具皆已公開釋出。研究人員可透過原始貼文提供的連結下載這些資源。
作者與致謝
此工作由 Neil Chowdhury、James Aung、Chan Jun Shern、Oliver Jaffe、Dane Sherburn、Giulio Starace、Evan Mays、Rachel Dias、Marwan Aljubeh、Mia Glaese、Carlos E. Jimenez、John Yang、Leyton Ho、Tejal Patwardhan、Kevin Liu 與 Aleksander Madry(等同貢獻)共同完成。致謝對象包括原始 SWE‑bench 的創建者、Preparedness 團隊,以及眾多使 SWE‑bench Verified 成為可能的標註者。
Citation: OpenAI, Introducing SWE‑bench Verified, 2024 年 8 月 13 日。URL: https://openai.com/index/introducing-swe-bench-verified
Sources
- OriginalIntroducing SWE-bench Verified