程式碼大模型越來越卷,評估AI程式設計水平的“考卷”也被迫升級。12月5日,位元組豆包大模型團隊開源最新程式碼大模型評估基準FullStack Bench,在業界首次囊括程式設計全棧技術中超11類真實場景,覆蓋16種程式語言,包含3374個問題,相比此前基準,可以更有效地評估大模型在現實世界中的程式碼開發能力。
程式碼評估基準是衡量大模型程式設計能力的標準工具,也是推動模型最佳化的關鍵驅動力。不過,當前的程式碼評估基準覆蓋的應用型別和程式語言較為有限,難以反映真實世界中程式碼開發場景的多樣性和複雜性。
比如,主流程式碼評測集HumanEval和MBPP中近80%資料只聚焦基礎程式設計和高階程式設計問題;DS-1000中95%資料都集中於資料分析和機器學習任務,且僅對Python語言進行評測;xCodeEval雖覆蓋多項任務,但基本侷限於高階程式設計和數學領域。
FullStack Bench資料覆蓋超11種應用領域,遠超當前主流程式碼評估基準
因此,位元組豆包大模型團隊與M-A-P開源社群聯合提出FullStack Bench,一個專注於全棧程式設計和多語言程式設計的程式碼評估資料集。為囊括在真實全棧開發中涉及的各類應用場景,研究團隊從全球最大的程式設計師技術問答社群Stack Overflow中隨機抽取了50萬個問題進行分析,篩選出佔總問題數前88.1%的應用領域,並對其分佈做了適當調整來保證每個領域的魯棒性,最終形成了FullStack Bench關注的超過11種應用場景及分佈比例。
FullStack Bench包含3374個問題,每個問題均包括題目描述、參考解決方案及單元測試用例,總計15168個單元測試。為保證評估準確性,問題內容均由相關領域的程式設計專家設計,並經AI和人工驗證進行質量複核。在初始資料集構建後,團隊根據主流程式碼大模型測試結果,按問題難度、模糊性和可解性對資料質量進行了交叉評估和進一步完善。
FullStack Bench資料集構成情況
為方便開發者對大模型程式碼能力進行系統性測試,豆包大模型團隊還開源了一款高效的程式碼沙盒執行工具——SandboxFusion,用於評估來自不同語言的不同程式設計任務。除了FullStack Bench,SandboxFusion還相容超過10種廣泛使用的程式碼評估資料集,支援23種程式語言。開發者在單伺服器上即可輕鬆部署SandboxFusion,也可直接在GitHub上進行體驗。
釋出評測基準及沙盒的同時,位元組程式碼大模型也首次曝光。研究中,豆包大模型團隊對全球20餘款程式碼大模型及語言大模型的程式設計表現進行了評測(詳見論文),其中包括未披露過的豆包程式碼大模型Doubao-Coder。
近半年,位元組在程式碼大模型領域進展迅速,今年6月位元組釋出了由自研程式碼基座模型支撐的AI程式設計助手豆包MarsCode,目前每月為使用者貢獻百萬量級程式碼。
- 論文地址:https://arxiv.org/pdf/2412.00535v2
- 資料集開源地址:https://huggingface.co/datasets/ByteDance/FullStackBench
- 沙盒開源地址:https://github.com/bytedance/SandboxFusion
- 沙盒體驗入口:https://bytedance.github.io/SandboxFusion/playground/datasets