北大開源最強aiXcoder-7B代碼大模型!專為企業(yè)私有部署設計
豐色 衡宇 發(fā)自 凹非寺
量子位 | 公眾號 QbitAI
從科技圈最新動態(tài)來看,最近AI代碼生成概念實火。
可是,小伙伴們有沒有感覺,AI刷程序題比較亮眼,到了企業(yè)真實開發(fā)場景中,總感覺欠點火候?
恰在此時,一位低調的資深大玩家aiXcoder出手了,放出大招:
它就是全新開源的代碼大模型——aiXcoder-7B Base版,一個專門適合在企業(yè)軟件開發(fā)場景中部署的代碼大模型。
等等,一個“僅”70億參數的代碼大模型,能展現出什么樣的AI編程水平?
先看看在HumanEval、MBPP和MultiPL-E三大主流評測集上的表現,它平均得分居然超過340億參數的Codellama。
要知道,后者來自Meta、基于Llama2,可是開源界最先進的AI編程大模型之作。
沒完,這個模型不僅打敗了一眾開源大模型、成為百億級代碼大模型中最強,還有特別的優(yōu)勢:
一改傳統的“刷題式”代碼生成,它專門針對企業(yè)級軟件項目,在真實開發(fā)場景下效果最好——代碼生成補全能力、和跨文件能力經過測試,都是“杠杠滴”(No.1)。
言外之意,aiXcoder-7B不玩“虛”的,可以hold得住企業(yè)真實業(yè)務場景。
例如在貼近真實開發(fā)場景的評測集CrossCodeEval上,aiXcoder-7B一舉拿下了同級別模型的最好效果:
百億級參數最強代碼大模型
先來看大模型。
此次發(fā)布并開源的是aiXcoder-7B Base版(相應Instruct版后續(xù)也將發(fā)布),它讓人最感到驚喜的就是:
除了代碼生成能力SOTA——不僅拿下主流測評集中的各種算法題,更重要的,在與企業(yè)真實開發(fā)場景一致的多文件復雜代碼場景中,aiXcoder-7B在同量級參數模型中表現更加亮眼!
要知道,AI編程工具當前最實用的能力就是生成和補全,包括直接生成完整的方法塊、條件判斷塊、循環(huán)處理塊、異常捕捉塊等多種情況。
而在真實開發(fā)場景中,我們特別需要它對整個開發(fā)項目中的各種關聯文件進行理解,然后再生成。
測試顯示,aiXcoder-7B Base版結合單文件上下文的代碼補全能力超越StarCoder2、CodeLlama等一眾模型,在Python、JS和Java語言上綜合得分最高。
這是在SantaCoder測評集上的結果。還不過癮,aiXcoder團隊還提出了一個更大的測評代碼生成補全數據集(16000多條來自真實開發(fā)場景的數據),做了進一步測評,效果更明顯。
今天,該測評集也與模型一同開源,歡迎大家前來挑戰(zhàn)~
值得一提的是,團隊還特別向我們開了一個“彩蛋”,那就是aiXcoder-7B Base版在補全時更傾向于用較短的代碼來完成任務,有一種天生的“簡潔美”。
其好處不言而喻:程序員更容易理解、Bug也更好檢查。
易私有化部署、個性化定制
這么好的代碼大模型,為什么要開源呢?
aiXcoder團隊表示,幫助更多的開發(fā)者減輕工作負擔,是他們的愿望!
這次,之所以開源7B的項目級代碼大模型,主打就是“方便企業(yè)開發(fā)者使用”。
可以用三個“易”來總結它的特點:
首先, 易部署。
代碼數據,都是企業(yè)私有的核心知識產權。因此,私有化部署和學習是不可避免的,而且,通常企業(yè)的部署資源是又是有限的。
aiXcoder-7B Base版只有7B參數規(guī)模,十分輕便,易于部署,進而還有成本低、性能好的優(yōu)點。
第二點,易定制。
很多企業(yè)都有自己的軟件開發(fā)框架和API的庫,與其關聯的業(yè)務邏輯、代碼架構規(guī)范都因地制宜,十分個性化。同時,這些內容又都有私密性。
必須得讓大模型學會這些企業(yè)代碼資產,通過進行有效個性化訓練,才能真正為企業(yè)所用。
aiXcoder-7B Base版就具有這樣易定制的特性。
再者,易組合。
aiXcoder團隊透露 ,未來提供企業(yè)服務時,可以讓多個7B模型形成MoE架構,組合成為一套解決方案來完成企業(yè)定制化服務。
不同的企業(yè),都可以得到符合自身個性化需求的MoE版代碼大模型解決方案。
據了解,aiXcoder-7B Base版走開源路線,后續(xù)將聚焦B端市場,推出企業(yè)版本。
通過這種方式,aiXcoder通過持續(xù)為企業(yè)級用戶提供精準、高效、連續(xù)的軟件開發(fā)服務,幫助他們不斷提高項目的開發(fā)效率和代碼質量。
例如,正在進行數智化轉型的某行業(yè)頭部券商就采用了aiXcoder的大模型解決方案,在本地環(huán)境私有化部署代碼大模型,且采用了模型的靈活調整方式,使智能開發(fā)系統與使用團隊規(guī)模保持同步。
這種部署方式既確保了既有算力可支持,避免了因硬件門檻過高而帶來的挑戰(zhàn);又能滿足企業(yè)日常的編碼需求。
現有落地數據反饋顯示,結合該企業(yè)自身領域知識進行個性化訓練后,在業(yè)務邏輯代碼上,代碼生成占比,較之前提升2倍。
看完了成績,模型實際效果究竟怎么樣?接下來就來幾個demo給大家感受一下。
首先,aiXcoder-7B Base版能理解更多、更復雜的代碼上下文信息,進行代碼生成和補全:模型預訓練支持的上下文長度為32k,推理階段擴展則可達256k。
如下圖所示,當我們用多個工具函數拼成了1500多行的代碼,在文件末端注釋要模型接入時,它可以準確識別到文件頂部的相關函數,結合該函數信息補全相關方法。
其次,在企業(yè)開發(fā)場景中,更重要的是跨文件分析的能力,它可以從多個代碼文件中自動識別并提取所需。
如下圖所示,我們需要在樹結構上應用動態(tài)規(guī)劃來實現編輯距離搜索,讓模型補全樹結構上目錄節(jié)點的動態(tài)規(guī)劃狀態(tài)類。
模型準確識別到了編輯距離的計算與另一個文件中滾動數組內部取最小值的計算之間的關系,從而結合非當前的兩個文件給出了正確的預測結果。
以上都還沒完,aiXcoder-7B Base版的補全還是相當智能化的。
例如當用戶的采納情況發(fā)生調整時,它會根據當下的采納情況自動調整補全長度。
同時,作為一個補全代碼專家,它還能根據用戶輸入的流暢性(即停頓時間)來判斷用戶當前是否需要補全,并不隨意觸發(fā)功能打斷咱的工作狀態(tài)。
不得不說:真香啊。
而廣大程序員們真正需要的,正是aiXcoder這樣不僅懂通用代碼,還能懂“我們企業(yè)”代碼的AI編程工具。
那么,如此接地氣的模型,究竟是如何煉成的?
團隊介紹,該模型屬于全自研,首先是訓練數據:
一共包括1.2T Unique Tokens,在7B參數級模型中,訓練數據量算是非常大的了。
不光“量勝”,團隊也在這些數據上取得了“質勝”:他們耗費大量時間針對數十種主流語言做了語法分析過濾,以及靜態(tài)分析排除掉了163種Bug和197種缺陷。
其次是針對性的訓練方法,團隊專門針對真實環(huán)境中的項目級代碼進行了代碼結構化語義訓練,充分保證模型效果。
最后就是在訓練過程中一開始就充分考慮了多文件的處理問題,通過結合聚類、代碼Calling Graph等方式構建了多文件之間的相互注意力關系。
最終,更適用于真實開發(fā)場景的aiXcoder-7B Base版得以誕生。
aiXcoder背后的團隊
再扒扒這個模型背后的玩家,我們發(fā)現來歷也不簡單:
首先,aiXcoder團隊由北京大學軟件工程研究所孵化,從2013年起開始搞代碼生成,國際上最早的基于深度學習的代碼生成論文就出自于他們;
其次,十年來,團隊在NeurIPS、ACL、IJCAI、ICSE、FSE、ASE等頂會上發(fā)表相關論文100余篇,多篇論文被國際學者認為是“首創(chuàng)成果”并被廣泛引用,多次獲ACM杰出論文獎。
可謂要實力有實力,要成績也有成績。
2017年,aiXcoder最開始的雛形——aiXcoder1.0發(fā)布,提供代碼自動補全與搜索功能。
2021年4月,團隊推出完全自主知識產權的十億級參數代碼大模型aiXcoder L版,支持代碼補全和自然語言推薦。這也是國內?個基于“?模型”的智能編程商?產品。
而后,團隊持續(xù)攻堅,2022年6月再次推出了國內首個支持方法級代碼生成的百億級參數量模型aiXcoder XL版,同樣具有完全自主知識產權。
2023年7月,aiXcoder團隊推出聚焦企業(yè)適配的aiXcoder Europa,具有代碼自動補全、代碼自動生成、代碼缺陷檢測與修復、單元測試自動生成等功能。
據了解,aiXcoder Europa可根據企業(yè)數據安全和算力要求,為企業(yè)提供私有化部署和個性化訓練服務,有效降低代碼大模型的應用成本,提升研發(fā)效率。
直到今日,aiXcoder-7B Base版誕生。
在科技的璀璨星河中,每一次技術的突破都如同新星的誕生,照亮了未來的無限可能。
隨著代碼大模型的能力日益增強,它們在解決復雜編程問題上的卓越表現,不僅在提高軟件開發(fā)的效率和質量上發(fā)揮著重要作用,在推動編程自動化的浪潮中扮演著關鍵角色,更激發(fā)了程序員們的創(chuàng)新潛能,讓他們能夠將更多的精力投入到探索和創(chuàng)造中。
換句話說,aiXcoder-7B這款前沿的代碼大模型,不僅加速了軟件開發(fā)自動化的進程,更在重塑技術行業(yè)的生態(tài),引領著未來發(fā)展的趨勢:
加快實現軟件開發(fā)自動化。
這既是行業(yè)大勢所趨,更是發(fā)展的必然選擇。
榮幸的是,我們正站在這個轉折點面前,見證著這一趨勢的興起和實現。
aiXcoder開源鏈接:
https://github.com/aixcoder-plugin/aiXcoder-7B
https://gitee.com/aixcoder-model/aixcoder-7b
https://www.gitlink.org.cn/aixcoder/aixcoder-7b-model
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態(tài)