近日,AWS AI Labs 推出了 SWE-PolyBench,這是一個多語言的開源基準,旨在爲 AI 編程助手的評估提供一個更全面的框架。隨着大規模語言模型(LLM)的進步,AI 編程助手的開發已經取得了顯著的進展,這些助手能夠生成、修改和理解軟件代碼。然而,目前的評估方法仍然存在諸多侷限,許多基準測試往往僅集中在 Python 等單一語言,無法全面反映真實代碼庫的結構和語義多樣性。
SWE-PolyBench 通過涵蓋21個 GitHub 代碼庫,支持 Java、JavaScript、TypeScript 和 Python 四種流行編程語言,提供了2110個任務,包括錯誤修復、功能實現和代碼重構。與以往的基準測試不同,SWE-PolyBench 使用了真實的拉取請求(PR),這些 PR 能夠解決實際問題,並配備了相關的測試用例,從而實現可驗證的評估。此外,還發布了一個更小的分層子集 ——SWE-PolyBench500,以支持快速實驗,同時保留任務和語言的多樣性。
在技術結構和評估指標方面,SWE-PolyBench 採用了基於執行的評估流程。每個任務都包含一個代碼庫快照和一個源於 GitHub 問題的任務描述。系統會在針對特定語言生態系統(如 Java 的 Maven 或 JavaScript/TypeScript 的 npm)配置的容器化測試環境中應用相關的真實補丁。評估結果使用兩種類型的單元測試進行測量:從失敗到通過(F2P)和從通過到通過(P2P)。
爲了對編程助手進行更細緻的評估,SWE-PolyBench 引入了基於具體語法樹(CST)的指標,這些指標包括文件級和節點級檢索分數,評估編程助手在查找和修改代碼庫中相關部分的能力。此次評估適配了三個開源編程助手 ——Aider、SWE-Agent 和 Agentless,它們均使用了 Anthropic 的 Claude3.5模型,並進行了調整以滿足基準的多語言和代碼庫要求。
評估結果顯示,不同編程語言和任務類型的表現差異明顯。例如,Python 任務的通過率最高可達24.1%,而 TypeScript 則僅爲4.7%。在任務複雜度方面,單一功能或類的修改任務成功率高達40%,但涉及多文件變更的任務則顯著下降。
github:https://github.com/amazon-science/SWE-PolyBench
劃重點:
🌟 AWS 推出 SWE-PolyBench,爲 AI 編程助手提供全面的評估框架。
🔧 基準涵蓋21個 GitHub 代碼庫,支持 Java、JavaScript、TypeScript 和 Python 四種語言。
📈 評估顯示不同語言和任務的表現差異,Python 任務成功率最高。