代碼大模型越來越卷,評(píng)估AI編程水平的“考卷”也被迫升級(jí)。12月5日,字節(jié)豆包大模型團(tuán)隊(duì)開源最新代碼大模型評(píng)估基準(zhǔn)FullStack Bench,在業(yè)界首次囊括編程全棧技術(shù)中超11類真實(shí)場(chǎng)景,覆蓋16種編程語言,包含3374個(gè)問題,相比此前基準(zhǔn),可以更有效地評(píng)估大模型在現(xiàn)實(shí)世界中的代碼開發(fā)能力。
代碼評(píng)估基準(zhǔn)是衡量大模型編程能力的標(biāo)準(zhǔn)工具,也是推動(dòng)模型優(yōu)化的關(guān)鍵驅(qū)動(dòng)力。不過,當(dāng)前的代碼評(píng)估基準(zhǔn)覆蓋的應(yīng)用類型和編程語言較為有限,難以反映真實(shí)世界中代碼開發(fā)場(chǎng)景的多樣性和復(fù)雜性。
比如,主流代碼評(píng)測(cè)集HumanEval和MBPP中近80%數(shù)據(jù)只聚焦基礎(chǔ)編程和高級(jí)編程問題;DS-1000中95%數(shù)據(jù)都集中于數(shù)據(jù)分析和機(jī)器學(xué)習(xí)任務(wù),且僅對(duì)Python語言進(jìn)行評(píng)測(cè);xCodeEval雖覆蓋多項(xiàng)任務(wù),但基本局限于高級(jí)編程和數(shù)學(xué)領(lǐng)域。
因此,字節(jié)豆包大模型團(tuán)隊(duì)與M-A-P開源社區(qū)聯(lián)合提出FullStack Bench,一個(gè)專注于全棧編程和多語言編程的代碼評(píng)估數(shù)據(jù)集。為囊括在真實(shí)全棧開發(fā)中涉及的各類應(yīng)用場(chǎng)景,研究團(tuán)隊(duì)從全球最大的程序員技術(shù)問答社區(qū)Stack Overflow中隨機(jī)抽取了50萬個(gè)問題進(jìn)行分析,篩選出占總問題數(shù)前88.1%的應(yīng)用領(lǐng)域,并對(duì)其分布做了適當(dāng)調(diào)整來保證每個(gè)領(lǐng)域的魯棒性,最終形成了FullStack Bench關(guān)注的超過11種應(yīng)用場(chǎng)景及分布比例。
FullStack Bench包含3374個(gè)問題,每個(gè)問題均包括題目描述、參考解決方案及單元測(cè)試用例,總計(jì)15168個(gè)單元測(cè)試。為保證評(píng)估準(zhǔn)確性,問題內(nèi)容均由相關(guān)領(lǐng)域的編程專家設(shè)計(jì),并經(jīng)AI和人工驗(yàn)證進(jìn)行質(zhì)量復(fù)核。在初始數(shù)據(jù)集構(gòu)建后,團(tuán)隊(duì)根據(jù)主流代碼大模型測(cè)試結(jié)果,按問題難度、模糊性和可解性對(duì)數(shù)據(jù)質(zhì)量進(jìn)行了交叉評(píng)估和進(jìn)一步完善。
FullStack Bench數(shù)據(jù)集構(gòu)成情況
為方便開發(fā)者對(duì)大模型代碼能力進(jìn)行系統(tǒng)性測(cè)試,豆包大模型團(tuán)隊(duì)還開源了一款高效的代碼沙盒執(zhí)行工具SandboxFusion,用于評(píng)估來自不同語言的不同編程任務(wù)。除了FullStack Bench,SandboxFusion還兼容超過10種廣泛使用的代碼評(píng)估數(shù)據(jù)集,支持23種編程語言。開發(fā)者在單服務(wù)器上即可輕松部署SandboxFusion,也可直接在GitHub上進(jìn)行體驗(yàn)。
發(fā)布評(píng)測(cè)基準(zhǔn)及沙盒的同時(shí),字節(jié)代碼大模型也首次曝光。研究中,豆包大模型團(tuán)隊(duì)對(duì)全球20余款代碼大模型及語言大模型的編程表現(xiàn)進(jìn)行了評(píng)測(cè)(詳見論文),其中包括未披露過的豆包代碼大模型Doubao-Coder。
近半年,字節(jié)在代碼大模型領(lǐng)域進(jìn)展迅速,今年6月字節(jié)發(fā)布了由自研代碼基座模型支撐的AI編程助手豆包MarsCode,目前每月為用戶貢獻(xiàn)百萬量級(jí)代碼。