代碼大模型越來越卷,評估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