首個AI軟體工程師Devin正式亮相,立即引爆了整個技術界。
Devin雖然無法輕鬆解決編碼任務,但可以自主完成軟體開發的整個週期-從專案規劃到部署。他盡力挖掘,但不限於建立網站、自主尋找並修復BUG、培訓和微調AI模型等。
這種「強到逆天」 的軟體開發能力,讓一眾碼農紛紛絕望,直呼:「程式設計師的末日真來了?」
在一眾測驗成績中,Devin在SWE-Bench基準測試中的表現尤其引人注目。
SWE-Bench是一個評估AI軟體工程能力的測試,重點在於檢視大模型解決實際 GitHub 問題的能力。
Devin以獨立解決13.86%的問題率高居榜首,「秒殺」了GPT-4僅有的 1.74%得分,將一眾AI大模型遠遠甩在後面。
這強大的效能讓人不禁浮想聯翩:「未來的軟體開發中,AI將扮演怎樣的角色?」
上海人工智慧實驗室聯合位元組跳動SE Lab的研究人員以及SWE-Bench團隊,提出了一個新測試基準DevBench,首次揭秘大模型在多大程度上可以從PRD出發,完成一個完整專案的設計、開發、測試。
DevBench首次對大模型進行了從產品需求文件(PRD)到完整專案開發各階段表現的評測,包括軟體設計、依賴環境建置、程式碼庫級別程式碼產生、整合測試和單元測試。
實驗證明,DevBench可以揭露GPT、CodeLlama、DeepSeek-Coder 等大語言模型在軟體研發不同階段的能力短板,如面向物件程式設計能力不足、無法編寫較為複雜的建置腳本(build script),以及函數呼叫參數不符#等問題。
大語言模型距離可以獨立完成一個中小規模的軟體專案開發還有一段路要走。
目前,DevBench的論文已經發佈在預印平台arXiv,相關程式碼和資料開源在GitHub上。 (連結見文末)
△ 圖為DevBench框架概覽
傳統的程式設計基準測試往往關注程式碼產生的某個單一方面,無法全面反映現實世界程式設計任務的複雜性。
DevBench的出現,打破了這個局限,它透過一系列精心設計的任務,模擬軟體開發的各個階段,從而提供了一個全面評估LLM能力的平台。
DevBench圍繞五個關鍵任務建構,每個任務都專注於軟體開發生命週期的關鍵階段,模組化的設計允許對每個任務進行獨立的測試和評估。
軟體設計:利用產品需求文件PRD建立UML圖和架構設計,展示類別、屬性、關係,以及軟體的結構佈局。任務參考MT-Bench,採用LLM-as-a-Judge的評測方式。評測主要依據兩個主要指標:軟體設計一般原則(如高內聚低耦合等)和忠實度(faithfulness)。
環境設定:根據提供的需求文檔,產生初始化開發環境所需的依賴文件。在評測過程中,此依賴檔案將在給定的基礎隔離環境(docker container)內透過基準指令進行依賴環境建置。隨後在這個模型搭建的依賴環境中,該任務透過執行程式碼倉的基準範例使用程式碼(example usage),評估執行基準程式碼的成功率。
程式碼實作:依據需求文件和架構設計,模型需要完成整個程式碼庫的程式碼檔案產生。 DevBench開發了一個自動化測試框架,並針對所使用的特定程式語言進行了定制,整合了Python的PyTest、C 的GTest、Java的JUnit和JavaScript的Jest。此任務評估模型產生程式碼庫在基準環境中執行基準整合測試和單元測試的通過率。
整合測試:模型根據需求,產生整合測試程式碼,驗證程式碼庫的對外介面功能。該任務在基準實現程式碼上執行產生的整合測試,並報告測試的通過率。
單元測試:模型根據需求,產生單元測試程式碼。同樣,該任務在基準實作程式碼上執行產生的單元測試。除了通過率指標外,該任務還引入了語句覆蓋率評估指標,對測試全面性的進行定量評估。
DevBench資料準備過程包含三個階段:倉庫準備、程式碼清理和文件準備。
最終,DevBench的資料集包含4個程式語言,多個領域,共22個程式碼庫。這些程式碼倉庫的複雜性和所使用程式設計範式的多樣性為語言模型設定了巨大的挑戰。
幾個有趣的例子:
TextCNN
大模型能完整地寫一個TextCNN做文本二分類的模型嗎?能夠自己把資料集從HF拉下來,把訓練跑起來是基本要求。還需模型依照文件的需求自訂超參數、記錄log、儲存checkpoint、同時保證實驗可重複性。
(https://github.com/open-compass/DevBench/tree/main/benchmark_data/python/TextCNN)
Registration & Login
前端專案往往依賴較多的元件庫和前端框架,模型是否能夠在可能出現版本衝突的前端專案中應對自如?
(https://github.com/open-compass/DevBench/tree/main/benchmark_data/javascript/login-registration)
People Management
模型對SQLite資料庫的建立和管理掌握的怎麼樣?除了基本的增刪改查操作,模型能否將校園人員資訊和關聯式資料庫的管理和操作封裝成易用的命令列工具?
(https://github.com/open-compass/DevBench/tree/main/benchmark_data/cpp/people_management)
#Actor Relationship Game
「六度分隔理論」在影視圈的猜想驗證?模型需要從TMDB API獲取數據,並建立流行演員之間透過合作電影進行連接的人際連結網。
(https://github.com/open-compass/DevBench/tree/main/benchmark_data/java/Actor_relationship_game)
#ArXiv digest
ArXiv論文檢索小工具也被輕鬆拿捏了? ArXiv的API並不支援“篩選最近N天的論文”的功能,但卻可以“按發表時間排序”,模型能夠以此開發一個好用的論文查找工具嗎?
(https://github.com/open-compass/DevBench/tree/main/benchmark_data/python/ArXiv_digest)
#研究團隊利用DevBench對目前流行的LLMs,包括GPT-4-Turbo進行了全面測試。結果顯示,儘管這些模型在簡單的程式設計任務中表現出色,但在面對複雜的、真實世界的軟體開發挑戰時,它們仍然遇到了重大困難。特別是在處理複雜的程式碼結構和邏輯時,模型的效能仍有待提升。
DevBench不僅揭示了現有LLMs在軟體開發中的局限性,也為未來模型的改進提供了寶貴的洞見。透過這項基準測試,研究人員可以更好地理解 LLMs的強項和弱點,從而有針對性地優化它們,推動AI在軟體工程領域的進一步發展。
此外,DevBench 框架的開放性和可擴展性意味著它可以持續適配不同的程式語言和開發場景。 DevBench 仍在發展過程中,非常歡迎社區的朋友參與共建。
Devin 在 SWE-Bench 上一路領先,它的優異表現可以擴展到其他評測場景嗎?隨著 AI 軟體開發能力的持續發展,這場碼農和 AI 的較量讓人倍感期待。
DevBench現已加入OpenCompass司南大模型能力評測體系,OpenCompass是上海人工智慧實驗室研發推出的面向大語言模型、多模態大模型等各類模型的一站式評測平台。
OpenCompass具有可復現、全面的能力維度、豐富的模式支援、分散式高效評測、多樣化評測範式以及靈活化拓展等特點。基於高品質、多層次的能力體系與工具鏈,OpenCompass 創新了多項能力評測方法,支援各類高品質的中英文雙語評測基準,涵蓋語言與理解、常識與邏輯推理、數學計算與應用、多程式語言程式碼能力、智能體、創作與對話等多個方面,能夠實現大模型真實能力的全面診斷。 DevBench更是拓寬了 OpenCompass 在智能體領域的評測能力。
DevBench論文:https://arxiv.org/abs/2403.08604
GitHub:https://github.com/open-compass/devBench/
OpenCompass https://github.com/open-compass/opencompass
以上是GPT-4單項僅得7.1分,揭露大模型代碼能力三大短板,最新基準測試來了的詳細內容。更多資訊請關注PHP中文網其他相關文章!