本周四meta公司開(kāi)源了一款A(yù)I 代碼助手代碼編輯器。上線(xiàn)才幾天目前github start星就已經(jīng)飆升到了4.4K.
Code Llama是一個(gè)大型語(yǔ)言模型的家族,基于 駱駝2在開(kāi)放模型、填充功能、對(duì)大輸入上下文的支持以及編程任務(wù)的零樣本指令跟蹤能力之間提供最先進(jìn)的性能。提供多種風(fēng)格來(lái)覆蓋廣泛的應(yīng)用程序:基礎(chǔ)模型 (Code Llama)、Python 專(zhuān)業(yè)化 (Code Llama - Python) 和指令跟隨模型 (Code Llama - Instruct),每個(gè)模型都有 7B、13B 和 34B 參數(shù)。所有模型均在 16k 個(gè)標(biāo)記序列上進(jìn)行訓(xùn)練,并在最多 100k 各標(biāo)記的輸入上顯示出改進(jìn)。7B 和 13B Code Llama 和 Code Llama - 指令變體支持基于周?chē)鷥?nèi)容的填充。Code Llama 是通過(guò)使用更高的代碼采樣對(duì) Llama 2 進(jìn)行微調(diào)而開(kāi)發(fā)的。與 Llama 2 一樣,我們對(duì)模型的微調(diào)版本應(yīng)用了大量的安全緩解措施。有關(guān)模型訓(xùn)練的詳細(xì)信息,研究論文。Llama 材料(包括 Code Llama)的代碼生成功能生成的輸出可能受第三方許可的約束,包括但不限于開(kāi)源許可。
該模型可以使用文本提示的形式修改或生成代碼,主要用于提高程序員的工作效率,CodeLLama包含了三種模型分別是基礎(chǔ)模型、針對(duì)Python的微調(diào)版本、以及Instagram 指令跟隨模型.每個(gè)模型均包含了70億 130億和340億參數(shù)版本 且可以用于研究或商業(yè)化使用 CodeLLama 是基于LLama2訓(xùn)練而成的代碼專(zhuān)用模型 Meta在特定代碼數(shù)據(jù)集上因此CodeLLama可以根據(jù)自然語(yǔ)言提示詞 生成包括Python C Java PHP在內(nèi)的流行代碼在多組編碼基準(zhǔn)測(cè)試中 340億參數(shù)模型 具備和chatgpt相當(dāng)?shù)拇a生成能力 也是目前最強(qiáng)大的輔助編程模型.
Code Llama 工作原理
Code Llama 是Llama 2的代碼專(zhuān)用版本,是通過(guò)在其特定于代碼的數(shù)據(jù)集上進(jìn)一步訓(xùn)練 Llama 2 來(lái)創(chuàng)建的,從同一數(shù)據(jù)集中采樣更多數(shù)據(jù)的時(shí)間更長(zhǎng)。本質(zhì)上,Code Llama 具有增強(qiáng)的編碼功能,建立在 Llama 2 之上。它可以根據(jù)代碼和自然語(yǔ)言提示生成代碼和有關(guān)代碼的自然語(yǔ)言(例如,“給我寫(xiě)一個(gè)輸出斐波那契序列的函數(shù)?!保┧€可用于代碼完成和調(diào)試。它支持當(dāng)今使用的許多最流行的語(yǔ)言,包括 Python、C 、Java、PHP、Typescript (Javascript)、C# 和 Bash。
前面提到模型發(fā)布三款分別是 7B、13B 和 34B 參數(shù)。每個(gè)模型都使用 500B 代碼令牌和代碼相關(guān)數(shù)據(jù)進(jìn)行訓(xùn)練。7B 和 13B 基礎(chǔ)模型和指令模型也經(jīng)過(guò)了中間填充 (FIM) 功能的訓(xùn)練,允許它們將代碼插入到現(xiàn)有代碼中,這意味著它們可以支持開(kāi)箱即用的代碼完成等任務(wù)。
這三種模型滿(mǎn)足不同的服務(wù)和延遲要求。例如,7B 模型可以在單個(gè) GPU 上運(yùn)行。34B 模型返回最佳結(jié)果并提供更好的編碼輔助,但較小的 7B 和 13B 模型速度更快,更適合需要低延遲的任務(wù),例如實(shí)時(shí)代碼完成。
評(píng)估 Code Llama 的性能
模型使用了兩個(gè)流行的編碼基準(zhǔn):HumanEval和 Mostly Basic Python 編程 ( MBPP )。HumanEval 測(cè)試模型根據(jù)文檔字符串完成代碼的能力,MBPP 測(cè)試模型根據(jù)描述編寫(xiě)代碼的能力。
基準(zhǔn)測(cè)試表明,Code Llama 的表現(xiàn)優(yōu)于開(kāi)源、特定代碼的 Llama,并且優(yōu)于 Llama 2。例如,Code Llama 34B 在 HumanEval 上得分為 53.7%,在 MBPP 上得分為 56.2%,與其他狀態(tài)相比最高。最先進(jìn)的開(kāi)放解決方案,與 ChatGPT 相當(dāng)。
部署和測(cè)試
它的部署方式和之前的Llama 2的部署方式一樣。有一個(gè)文本生成UI 啟動(dòng)界面
目前只支持這種webUI 界面風(fēng)格,目前還沒(méi)有出IntelliJ IDEA 、VScode這種開(kāi)發(fā)工具插件。不過(guò)我相信后面官方應(yīng)該出這種開(kāi)發(fā)工具插件,比較開(kāi)發(fā)的小伙伴更喜歡在IDE開(kāi)發(fā)工具上使用編程代碼助手。
配置好模型后就使用代碼生成了。
總結(jié)
未來(lái)代碼生成助手如Code Llama將在軟件開(kāi)發(fā)領(lǐng)域發(fā)揮重要作用。它能夠提供快速生成和詳細(xì)解釋代碼的能力,為開(kāi)發(fā)人員節(jié)省時(shí)間和精力。這將加速軟件開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率。此外,Code Llama還可以幫助新手開(kāi)發(fā)人員學(xué)習(xí)編程,并提供他們需要的指導(dǎo)和支持。