編輯:alan 好困
【新智元導(dǎo)讀】新的SOTA再次出現(xiàn),Code Llama系列最強(qiáng)模型發(fā)布,70B代碼模型一舉擊敗GPT-4,開源代碼登陸各大平臺,大佬直接開玩。
今天,Meta正式發(fā)布了Code Llama 70B,作為Code Llama系列中規(guī)模最大,性能最強(qiáng)的版本,一舉擊敗了GPT-4!
目前,模型共有三個(gè)版本,均可免費(fèi)用于研究和商業(yè)目的:
CodeLlama - 70B:基礎(chǔ)代碼模型;
CodeLlama - 70B - Python:專門針對Python的 70B模型;
CodeLlama - 70B - Instruct:專門用于理解自然語言指令的模型。
算上8月份發(fā)布的Code Llama 7B、13B和34B,這個(gè)家也算是完整了。

論文地址:https://ai./research/publications/code-llama-open-foundation-models-for-code/
其實(shí),Code Llama在發(fā)布時(shí)就已經(jīng)展現(xiàn)了不俗的實(shí)力,在一眾代碼生成模型中處于領(lǐng)先位置。
不過GPT-4依然憑借著67.0的HumanEval(pass@1)得分?jǐn)?shù)遙遙領(lǐng)先(Code Llama 34B為53.7)。
盡管后來又有Code Llama的微調(diào)版本獲得了更好的成績,卻并沒有進(jìn)入Meta的這個(gè)官方表格。
但是!在寒窗苦讀了5個(gè)月之后,Code Llama終于一鳴驚人,以最強(qiáng)的70B模型登頂全部三項(xiàng)測試的榜首。

其中,CodeLlama-70B-Instruct在HumanEval上更是直接拿下了67.8的高分,一舉躋身當(dāng)下最強(qiáng)開源模型的行列。
可以說,除了GPT-4外,其他同類模型幾乎都難以望其項(xiàng)背。

對此,LeCun轉(zhuǎn)發(fā)并宣傳了自家的新模型:「新一代Code Llama依然開源,正如它的前輩們一樣?!?/span>

而終于發(fā)現(xiàn)自家AI是塊寶的小扎,也加大了宣傳力度:

我們正式開源了一個(gè)全新且更加強(qiáng)大的Code Llama,包含一個(gè)龐大的700億參數(shù)的模型。
在當(dāng)今的AI域,編寫和編輯代碼已經(jīng)成為了最關(guān)鍵的應(yīng)用之一。同樣,能夠編程也對AI模型在其他領(lǐng)域進(jìn)行更加嚴(yán)密和邏輯性的信息處理顯得尤為重要。
我對我們在這方面取得的進(jìn)展感到非常自豪,并且非常期待在未來的Llama 3及后續(xù)模型中加入這些先進(jìn)的成果。
技術(shù)細(xì)節(jié)
Code Llama是一款能夠通過文本提示生成代碼的大語言模型。它不僅能提升現(xiàn)有開發(fā)者的工作效率,還能降低編程新手的學(xué)習(xí)門檻。
Meta希望將Code Llama打造成為一款既能提高生產(chǎn)力,又具有教育價(jià)值的工具,助力程序員創(chuàng)建更加穩(wěn)定且文檔齊全的軟件。
Code Llama是基于Llama 2開發(fā)的,專門用于編程任務(wù)的版本。
通過在專為編碼設(shè)計(jì)的數(shù)據(jù)集上進(jìn)行更深入的訓(xùn)練,Code Llama能夠理解和生成代碼,幫助完成編程任務(wù)(如編寫函數(shù)、代碼補(bǔ)全和調(diào)試),
并支持包括Python、C 、Java、PHP、Typescript (Javascript)、C#和Bash等在內(nèi)的多種流行編程語言。

到目前為止,Code Llama系列集齊了四種規(guī)模,分別擁有7B、13B、34B和70B的參數(shù),
前三個(gè)模型采用500B token的代碼和相關(guān)數(shù)據(jù)進(jìn)行訓(xùn)練,而新發(fā)布的70B模型使用了1TB token。
另外,7B和13B基礎(chǔ)模型和指令模型還經(jīng)過中間填充(FIM)功能的訓(xùn)練,具備直接在現(xiàn)有代碼中插入新代碼的能力(代碼補(bǔ)全)。
Code Llama系列模型針對不同的需求和性能要求進(jìn)行了優(yōu)化:
7B模型能在單個(gè)GPU上運(yùn)行,適合快速響應(yīng)的場景;而34B和70B模型則提供了更高級的編碼輔助功能,但運(yùn)行速度較慢。

Code Llama能夠處理長達(dá)100000 token的上下文,這意味著模型可以理解和生成較長的程序代碼。
這對于處理大型代碼庫中的調(diào)試任務(wù)特別有用,開發(fā)者可以提供大量代碼上下文,以獲得更準(zhǔn)確的編碼建議。

此外,Code Llama還推出了兩個(gè)特別版本:Code Llama - Python 和 Code Llama - Instruct。
考慮到Python在AI社區(qū)的重要性,Code Llama - Python針對 Python代碼進(jìn)行了特別優(yōu)化(使用100B token的Python代碼數(shù)據(jù)進(jìn)行微調(diào)),使其在生成Python代碼時(shí)更加流暢和準(zhǔn)確。
CodeLlama-70B-Python還可以處理一系列任務(wù),例如網(wǎng)絡(luò)抓取、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)(ML)和Web開發(fā)。

而Code Llama - Instruct則通過接受自然語言指令和期望輸出的方式進(jìn)行訓(xùn)練,使其更擅長根據(jù)用戶的需求生成代碼或答案。
CodeLlama-70B-Instruct還可以用于處理排序、搜索、過濾和操作數(shù)據(jù),以及實(shí)現(xiàn)算法(二進(jìn)制搜索、斐波那契和階乘等)。
官方建議在需要代碼生成時(shí)優(yōu)先考慮使用Code Llama - Instruct,以獲得更安全、更有用的結(jié)果。
需要注意的是,主要用于編程問題的Code Llama和Code Llama - Python,并不適合處理一般的自然語言任務(wù)。

基準(zhǔn)測試
下面看一下新的Code Llama在同類模型中的表現(xiàn)如何,這里采用業(yè)內(nèi)廣泛應(yīng)用的編程基準(zhǔn)測試:
HumanEval和Mostly Basic Python Programming (MBPP)。
HumanEval是一個(gè)包含164個(gè)編程問題的基準(zhǔn)數(shù)據(jù)集,用于測試代碼生成模型的功能正確性和邏輯性,而MBPP則測試模型依據(jù)具體描述編寫代碼的技巧。
我們可以看到前代的34B表現(xiàn)已經(jīng)很好了,而參數(shù)量翻了一倍的Code Llama 70B老大哥直接霸榜,并且相比于34B性能顯著提升。
其中,CodeLlama-70B-Instruct在HumanEval上得分高達(dá)67.8,超過了CodeGen-16B-Mono(29.3)和StarCoder(40.1)等開放模型之前的最佳成績,并與GPT-4(68.2)和Gemini Pro(69.4)等閉源模型相當(dāng)。

當(dāng)然,為了更負(fù)責(zé)任地開發(fā)AI模型,Meta已經(jīng)采取了多項(xiàng)安全措施,并對生成惡意代碼的風(fēng)險(xiǎn)進(jìn)行了量化評估。
結(jié)果顯示,相比于ChatGPT(GPT3.5 Turbo),Code Llama給出的回答更為安全。
挑戰(zhàn)GPT-4,coding模型卷起來了!
目前,通過各各類主流的平臺和框架都可以訪問和使用Code Llama 70B,例如Hugging Face、PyTorch、TensorFlow和Jupyter Notebook。
此外,Meta AI還提供了針對不同目的和語言,使用和微調(diào)模型的文檔和教程。

而隨著模型的發(fā)布,各大AI平臺也紛紛加入了對Code Llama 70B的支持:


并且還可以直接開玩:

更有大佬把Code Llama 70B跑到了蘋果的處理器上,只不過「有點(diǎn)熱」。

然后這位索性把Code Llama 70B直接量化到了4 bit。
