跳到主要內容

OpenAI評測AI法 SWE-Lancer論文中文摘問答

問答:Google NotebookLM

中文化:Google  Gemini

SWE-Lancer: Can Frontier LLMs Earn $1 Million from Real-World Freelance Software Engineering?

https://arxiv.org/pdf/2502.12115

這項研究推出了 SWE-Lancer,這是一個評估 AI 模型在真實世界軟體工程任務表現的基準。它使用 Upwork 上超過 1,400 個總價值一百萬美元的自由接案工作,來評估模型在程式碼撰寫和軟體管理方面的效能。這個基準獨特地使用由軟體工程師驗證的端到端測試來評分任務,並將效能映射到貨幣價值。評估顯示,雖然先進的模型展現了前景,但它們仍然難以應對真實世界工程問題的複雜性和多樣性。SWE-Lancer 的目標是促進對 AI 在軟體開發中的經濟影響和能力的相關研究。資料集包含個別的程式碼撰寫任務和管理決策情境。

SWE-Lancer 相較於現有的基準有什麼優勢?

SWE-Lancer 相較於現有的軟體工程 (SWE) 基準提供了幾個優勢。這些優勢包括:

*   真實世界的報酬: SWE-Lancer 中的所有任務都代表了支付給自由工程師的實際報酬,提供了一個自然的、市場導向的難度梯度。每個任務的經濟報酬反映了實際支付給完成它的自由工作者的金額。

*   管理評估: SWE-Lancer 使用真實世界的資料來評估模型作為軟體工程經理的能力。模型扮演技術負責人的角色,權衡自由工作者提交的實施建議。同時也探索模型評估商業工程提案的能力。

*   進階的全堆疊工程: SWE-Lancer 代表了真實世界的軟體工程,因為任務來自一個擁有數百萬真實客戶的使用者導向產品。任務經常需要完整的程式碼庫上下文,並涉及行動和網路端的工程、與 API、瀏覽器和外部應用程式的互動,以及複雜問題的驗證和重現。

*   透過端到端 (E2E) 測試改進評分: SWE-Lancer 使用由專業工程師建立的 E2E 測試,提供更全面、真實世界的評估。這些測試模擬了完整的用戶工作流程,並且相較於單元測試更難以被鑽漏洞。這些測試經過了軟體工程師三輪的品質、覆蓋率和公平性驗證,並輔以自動化系統。

*   領域多樣性: SWE-Lancer 的任務涵蓋許多類別,包括應用程式邏輯和 UI/UX 開發,從樣式設計擴展到包含全堆疊概念。大多數任務都是錯誤修正。

*   無偏見的資料收集: SWE-Lancer 沒有過濾容易測試的問題,而是從 Upwork 中選擇具有代表性的任務樣本,並支付專業軟體工程師為所有任務編寫和驗證端到端測試。

*   將模型效能映射到經濟報酬: SWE-Lancer 獨特地將模型效能映射到貨幣指標。

SWE-Lancer 透過取得真實的自由接案任務並將模型效能映射到經濟報酬,解決了先前評估中的不足。


SWE-Lancer 的任務由哪些真實世界的資料組成?

SWE-Lancer 的任務由 1,488 個真實世界的自由接案軟體工程工作中的資料組成。這些任務來自 Expensify 開源儲存庫,並發佈在 Upwork 上。這些任務的總價值為 100 萬美元。這些任務分為兩類:

*   個人貢獻者 (IC) 軟體工程 (SWE) 任務: 這 764 個任務的總價值為 414,775 美元,反映了個別軟體工程師的職責,例如實作功能和解決錯誤。

*   SWE 管理任務: 這 724 個任務的總價值為 585,225 美元。在這些任務中,模型扮演軟體工程經理的角色,並且必須為解決任務選擇最佳的提案。

SWE-Lancer 的任務包括:

*   問題文字描述,包括重現步驟和期望行為。

*   問題修復前的程式碼庫檢查點。

*   從原始討論中取得的針對問題的建議解決方案。

*   支付給自由工程師的實際報酬。

*   模擬有經驗的工程師如何評估任務的端到端測試。

*   需要完整程式碼庫上下文以及與 API、瀏覽器和外部應用程式互動的任務。

*   各種任務,其中大部分(88% 的 IC SWE 任務和 94% 的 SWE 管理任務)都是錯誤修正。

在 SWE-Lancer 中使用真實世界的資料,可以更真實地評估 AI 模型在軟體工程環境中的表現。


論文中包括那些個別的程式碼撰寫任務和管理決策情境?

SWE-Lancer 基準測試包含兩個主要任務類別:個人貢獻者 (IC) 軟體工程 (SWE) 任務和 SWE 管理任務。

個別程式碼撰寫任務 (IC SWE 任務):

*   涉及實作功能和解決錯誤。
*   需要模型產生程式碼補丁來解決真實世界的問題。
*   難度範圍從 15 分鐘的錯誤修復到需要數週才能解決的新功能請求。
*   使用模擬真實世界使用者流程的端到端測試進行評估。這些測試使用瀏覽器自動化來驗證應用程式行為。
*   在 SWE-Lancer Diamond 集中,平均需要修改 2 個檔案和 69 行程式碼。
*   包括諸如修復雙重觸發的 API 呼叫(可靠性改進)、解決權限差異(錯誤修復)以及在多個平台上新增對應用內影片播放的支援(功能實作)等任務。

管理決策情境 (SWE 管理器任務):

*   需要模型扮演技術負責人的角色,為給定的問題選擇最佳的實作提案。
*   涉及模型審查自由工作者針對職位發布提交的競賽提案,並選擇最佳提案。
*   需要對問題和提案有深入的技術理解,通常需要整個儲存庫的上下文。
*   根據原始工程經理的選擇進行評估,經過驗證活動顯示,與原始選擇的解決方案的同意度為 99%。
*   在 SWE-Lancer Diamond 集中,模型平均需要在 4-5 個提案之間做出選擇。
*   包括由於細微原因(例如解決邊緣情況或減少外部依賴性)而選擇獲勝提案的情境。
*   測試模型評估商業工程提案的能力,這是先前未探索的領域。


SWE-Lancer 如何評 grading 個人貢獻者任務?

SWE-Lancer 使用特定的方法來評 grading 個人貢獻者 (IC) 軟體工程 (SWE) 任務。評 grading 過程包括以下步驟:

*   任務定義: 模型會收到問題的文字描述,其中包括重現步驟和期望行為,以及問題解決前checkpoint的程式碼庫。模型的目標是修復此問題。
*   解決方案評估: 模型產生程式碼補丁來解決問題。模型的解決方案會透過應用其補丁並使用 Playwright(一個開源的瀏覽器測試庫)運行相關的端到端測試來評估。模型在評估期間無法存取這些端到端測試。
*   端到端測試: 與先前使用單元測試的基準不同,SWE-Lancer 採用由專業軟體工程師建立的端到端測試。這些測試透過瀏覽器自動化模擬真實世界的用戶流程,以驗證應用程式的行為。
*   驗證: 端到端測試經過經驗豐富的軟體工程師的三重驗證,以確保品質。此外,自動化系統會確保每個測試在修復狀態下通過,在損壞狀態下失敗。
*   報酬決定: 模型僅在所有適用的測試都通過時才能獲得與任務相關的報酬。這些報酬是 Upwork 上設定的真實自由接案費率。需要專業知識或長時間未解決的較難任務有較高的報酬。

這種評估方法模擬了真實世界的自由接案審查流程,與傳統的單元測試相比,提供了更全面、更真實的評估。


有哪些主要限制阻礙了大型語言模型 (LLM) 在自由接案軟體工程中達到人類水準的效能?

阻礙大型語言模型 (LLM) 在自由接案軟體工程 (SWE) 中達到人類水準效能的主要限制包括在解決真實世界問題方面的挑戰、對更高可靠性的需求,以及在理解問題根本原因方面的具體困難。具體限制包括:

*   真實世界的複雜性: 目前的模型難以應對真實世界軟體工程任務的複雜性。SWE-Lancer 基準測試顯示,最先進的模型無法解決大多數任務,表明它們在處理實際軟體工程的複雜性方面存在困難。

*   可靠性: LLM 經常產生不正確的解決方案,因此需要更高的可靠性才能進行可靠的部署。效能最佳的模型 Claude 3.5 Sonnet 在 SWE-Lancer Diamond 集中僅解決了 26.2% 的 IC SWE 問題,突顯了其不可靠性。

*   根本原因分析: 雖然 LLM 可以快速定位問題的來源,但它們通常無法理解問題如何跨越多個組件或檔案,導致解決方案不完整或不正確。Agent 在定位方面表現出色,但在識別根本原因方面卻難以勝任。

*   對程式碼庫影響的理解有限: LLM 通常對變更如何影響多個組件或檔案的理解有限,這導致解決方案無法完全解決根本問題。

*   工具使用和推理: 較弱的模型經常由於時間限制而放棄使用使用者工具,而較強的模型則有效地使用它進行偵錯。

*   全堆疊工程: 現有的評估通常側重於狹窄的儲存庫,而真實世界的任務則需要完整的程式碼庫上下文以及跨行動和網路平台的工程。

*   缺乏澄清: 與人類工程師不同,模型無法提出澄清問題,這可能會阻礙它們充分理解和解決複雜問題。

*   任務和環境的多樣性: 目前的基準可能無法涵蓋所有軟體工程任務,尤其是基礎建設工程,並且可能無法充分模擬真實世界的工程環境。SWE-Lancer 的任務來自 Expensify 儲存庫,可能無法代表自由接案任務的完整多樣性。

雖然像 Claude 3.5 Sonnet 這樣的模型展現了強勁的效能,在 SWE-Lancer Diamond 集中獲得了 208,050 美元的報酬,但它們在持續提供正確解決方案方面的能力有限,突顯了需要進一步改進。


留言