從科技圈最新動態來看,最近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團隊由北京大學軟體工程研究所孵化,從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-7Bhttps://gitee .com/aixcoder-model/aixcoder-7b
https://www.gitlink.org.cn/aixcoder/aixcoder-7b-model
以上是北大開源最強aiXcoder-7B程式碼大模型!聚焦真實開發場景,專為企業私人部署設計的詳細內容。更多資訊請關注PHP中文網其他相關文章!