谷歌開源專業(yè)代碼模型:對硬件要求低,性能超強!
谷歌發(fā)布了面向企業(yè)、開發(fā)人員的全新代碼模型Code Gemma,一共有基礎(chǔ)預訓練、指令微調(diào)和快速推理三個版本。
Code Gemma是基于谷歌在今年2月發(fā)布的Gemma模型之上開發(fā)而成。其參數(shù)很小只有20億和70億兩種,但使用了超過5000億tokens的代碼、數(shù)學、文本等數(shù)據(jù)進行了大規(guī)模預訓練,能快速生成Python、JavaScript、Java、C/C++、C#等主流編程語言代碼。
在代碼編程、多語言編程等基準測試中,Code Gemma 70億參數(shù)的性能超過了DeepSeek Coder、 StarCoder2等同類代碼模型,并且推理效率和準確率更高。
開源地址:https://huggingface.co/collections/google/codegemma-release-66152ac7b683e2667abdee11
技術(shù)報告地址:https://goo.gle/codegemma
Code Gemma簡單介紹
為了提升模型的性能,Code Gemma開發(fā)團隊采用了基于“填充中間”任務(wù)的訓練方法,對性能進行了大幅度改進,包括使用特定的格式化控制令牌,例如,F(xiàn)IM前綴、中間和后綴,以及文件分隔符等。
還特別針對多文件環(huán)境下的代碼生成任務(wù)進行了優(yōu)化。通過將代碼庫中最相關(guān)的源文件放在一起,并盡可能將它們分組到同一個訓練樣本中,可以使模型能夠更好地理解和生成基于倉庫級別上下文的代碼。
本次發(fā)布的Code Gemma系列模型一共有三個版本:Code Gemma 2B 是專門針對代碼填充進行訓練,其推理效率非常高但對硬件要求卻很低,非常適用于對延遲、隱私要求較高的業(yè)務(wù)環(huán)境中。
Code Gemma 7B 是基礎(chǔ)預訓練模型,主要包括代碼填充數(shù)據(jù)(80%)和自然語言,可用于代碼補全以及代碼和語言的理解和生成。
Code Gemma 7B Instruct 是在Code Gemma 7B?;A(chǔ)之上進行了指令微調(diào),非常適用于開發(fā)對話式AI機器人,尤其是代碼、編程或數(shù)學推理主題的對話。
為了提升Code Gemma的推理能力,開發(fā)人員在多個數(shù)學數(shù)據(jù)集上進行監(jiān)督式微調(diào),包括來自競賽的12,500個具有挑戰(zhàn)性的數(shù)學問題、8,500個小學數(shù)學問題、大規(guī)模的數(shù)學文字問題數(shù)據(jù)集等,以及用于提高解決長代數(shù)問題能力的合成數(shù)據(jù)集。
Code Gemma測試數(shù)據(jù)
開發(fā)人員在多個知名測試平臺中對Code Gemma進行了多維度的測試,皆取得了不錯的成績。
通過HumanEval In?lling平臺測試了Code Gemma的CodeGemma的代碼補全能力,結(jié)果顯示,Code Gemma 2B表現(xiàn)出色,與其他FIM感知代碼模型相比,在推理速度上快了近2倍,同時保持了更好的代碼補全質(zhì)量。
在Python編碼方面,Code Gemma使用了HumanEval和MBPP測試平臺。結(jié)果顯示,CodeGemma 7B預訓練基礎(chǔ)模型和指令微調(diào)兩款模型,均優(yōu)于Gemma基礎(chǔ)模型,并且在在Python編程任務(wù)上效果更好。
多語言編程方面,CodeGemma使用了Babel Code測試平臺,結(jié)果顯示,Code Gemma在多種流行的編程語言上都展現(xiàn)出了強大的編碼能力,包括C/C++、C#、Go、Java、JavaScript、Kotlin、Python和Rust等。
尤其是在Java、JavaScript和Kotlin等語言上,Code Gemma的指令微調(diào)版本效果非常好。
本文轉(zhuǎn)自 AIGC開放社區(qū) ,作者:AIGC開放社區(qū)
