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