天天看點

感受Code Llama的力量:一種最先進的大型編碼語言模型

作者:80周輝

本周四meta公司開源了一款AI 代碼助手代碼編輯器。上線才幾天目前github start星就已經飙升到了4.4K.

感受Code Llama的力量:一種最先進的大型編碼語言模型

Code Llama是一個大型語言模型的家族,基于 駱駝2在開放模型、填充功能、對大輸入上下文的支援以及程式設計任務的零樣本指令跟蹤能力之間提供最先進的性能。提供多種風格來覆寫廣泛的應用程式:基礎模型 (Code Llama)、Python 專業化 (Code Llama - Python) 和指令跟随模型 (Code Llama - Instruct),每個模型都有 7B、13B 和 34B 參數。所有模型均在 16k 個标記序列上進行訓練,并在最多 100k 各标記的輸入上顯示出改進。7B 和 13B Code Llama 和 Code Llama - 指令變體支援基于周圍内容的填充。Code Llama 是通過使用更高的代碼采樣對 Llama 2 進行微調而開發的。與 Llama 2 一樣,我們對模型的微調版本應用了大量的安全緩解措施。有關模型訓練的詳細資訊,研究論文。Llama 材料(包括 Code Llama)的代碼生成功能生成的輸出可能受第三方許可的限制,包括但不限于開源許可。

該模型可以使用文本提示的形式修改或生成代碼,主要用于提高程式員的工作效率,CodeLLama包含了三種模型分别是基礎模型、針對Python的微調版本、以及Instagram 指令跟随模型.每個模型均包含了70億 130億和340億參數版本 且可以用于研究或商業化使用 CodeLLama 是基于LLama2訓練而成的代碼專用模型 Meta在特定代碼資料集上是以CodeLLama可以根據自然語言提示詞 生成包括Python C++ Java PHP在内的流行代碼在多組編碼基準測試中 340億參數模型 具備和chatgpt相當的代碼生成能力 也是目前最強大的輔助程式設計模型.

Code Llama 工作原理

Code Llama 是Llama 2的代碼專用版本,是通過在其特定于代碼的資料集上進一步訓練 Llama 2 來建立的,從同一資料集中采樣更多資料的時間更長。本質上,Code Llama 具有增強的編碼功能,建立在 Llama 2 之上。它可以根據代碼和自然語言提示生成代碼和有關代碼的自然語言(例如,“給我寫一個輸出斐波那契序列的函數。”)它還可用于代碼完成和調試。它支援當今使用的許多最流行的語言,包括 Python、C++、Java、PHP、Typescript (Javascript)、C# 和 Bash。

感受Code Llama的力量:一種最先進的大型編碼語言模型

前面提到模型釋出三款分别是 7B、13B 和 34B 參數。每個模型都使用 500B 代碼令牌和代碼相關資料進行訓練。7B 和 13B 基礎模型和指令模型也經過了中間填充 (FIM) 功能的訓練,允許它們将代碼插入到現有代碼中,這意味着它們可以支援開箱即用的代碼完成等任務。

感受Code Llama的力量:一種最先進的大型編碼語言模型

這三種模型滿足不同的服務和延遲要求。例如,7B 模型可以在單個 GPU 上運作。34B 模型傳回最佳結果并提供更好的編碼輔助,但較小的 7B 和 13B 模型速度更快,更适合需要低延遲的任務,例如實時代碼完成。

感受Code Llama的力量:一種最先進的大型編碼語言模型

評估 Code Llama 的性能

模型使用了兩個流行的編碼基準:HumanEval和 Mostly Basic Python 程式設計 ( MBPP )。HumanEval 測試模型根據文檔字元串完成代碼的能力,MBPP 測試模型根據描述編寫代碼的能力。

基準測試表明,Code Llama 的表現優于開源、特定代碼的 Llama,并且優于 Llama 2。例如,Code Llama 34B 在 HumanEval 上得分為 53.7%,在 MBPP 上得分為 56.2%,與其他狀态相比最高。最先進的開放解決方案,與 ChatGPT 相當。

感受Code Llama的力量:一種最先進的大型編碼語言模型

部署和測試

它的部署方式和之前的Llama 2的部署方式一樣。有一個文本生成UI 啟動界面

感受Code Llama的力量:一種最先進的大型編碼語言模型

目前隻支援這種webUI 界面風格,目前還沒有出IntelliJ IDEA 、VScode這種開發工具插件。不過我相信後面官方應該出這種開發工具插件,比較開發的小夥伴更喜歡在IDE開發工具上使用程式設計代碼助手。

感受Code Llama的力量:一種最先進的大型編碼語言模型

配置好模型後就使用代碼生成了。

感受Code Llama的力量:一種最先進的大型編碼語言模型

總結

未來代碼生成助手如Code Llama将在軟體開發領域發揮重要作用。它能夠提供快速生成和詳細解釋代碼的能力,為開發人員節省時間和精力。這将加速軟體開發過程,提高開發效率。此外,Code Llama還可以幫助新手開發人員學習程式設計,并提供他們需要的指導和支援。

繼續閱讀