跳到正文
IFAI

開源專案

Meta 釋出程式碼大模型 Code Llama:最高 70B 引數,支援 10 萬 token 上下文

首次發布 傳播指數 67

Meta 釋出專為程式碼任務打造的開源大模型 Code Llama。該模型基於 Llama 2 在程式碼資料集上進一步訓練,提供 7B 到 70B 等尺寸,支援最高 10 萬 token 的上下文,並具備程式碼補全與除錯能力。

Meta 釋出程式碼大模型 Code Llama:最高 70B 引數,支援 10 萬 token 上下文
圖:ai.meta.com

Code Llama 是一個專為編寫、補全和除錯程式碼打造的開源大語言模型。你可以用自然語言讓它寫出具體的函式,也可以把一段現成的程式碼丟給它,讓它幫你找出漏洞或解釋邏輯。

這個模型基於通用大模型 Llama 2 進一步訓練而來。Meta 在原本的基礎上,給它餵了 5000 億 token 的程式碼和技術文件資料,讓它熟悉主流程式語言。它支援 Python、C++、Java、PHP、TypeScript、C# 和 Bash 等語言。

它能做什麼

除了根據提示詞直接寫程式碼,Code Llama 針對開發流程做了不少專門設計。

Meta 為 7B 和 13B 版本訓練了中間填充能力,也就是所謂的 FIM。這意味著它不僅能接在程式碼末尾往下寫,還能根據前後的上下文,直接在現有程式碼中間插入缺失的部分,非常適合做即時程式碼補全。

另一個亮點是超長上下文。Llama 2 原版的上下文只有 4096 token,而 Code Llama 支援最高 10 萬 token 的上下文輸入。開發者可以直接把整個程式碼庫或者一大段複雜的呼叫鏈喂進去,讓模型結合全域性邏輯來進行排錯和重構。

Code Llama 還分化出了專門的細分版本。如果你主寫 Python,可以用專門在 1000 億 token Python 資料上額外微調的 Code Llama - Python 版本。如果你需要通過日常口語進行互動,推薦使用經過指令微調的 Code Llama - Instruct 版本。

規格與執行門檻

Code Llama 提供了 7B、13B、34B 以及後續更新的 70B 四種引數規模。

7B 和 13B 版本主打輕量和低延遲,其中 7B 版本可以直接跑在單張消費級 GPU 上。如果你的目標是搭建本地即時的編輯器補全外掛,這兩個小尺寸最合適。

34B 和 70B 版本則針對複雜的推理和高質量生成任務。70B 版本在 1 萬億 token 的資料集上進行了訓練,程式碼生成質量更高。

在基準測試中,Code Llama 34B 在 HumanEval 上拿到了 53.7% 的分數,在 MBPP 上拿到了 56.2%。這個成績不僅大幅超過了原版 Llama 2 和其他同類開原始碼模型,也基本達到了 ChatGPT 的水平。

Code Llama 沿用了 Llama 2 的社群許可協議,學術研究和商業用途都可以免費使用,使用者需要遵守其可接受使用政策。

為什麼重要

對於個人開發者和中小團隊來說,這是一個非常實用的本地工具。你不需要依賴 GitHub Copilot 這類付費商業服務,也不用擔心自家的核心業務程式碼上傳到雲端產生洩露風險。

只要有一張普通顯示卡,你就可以在本地搭一套完全屬於自己的程式碼助手。不過需要注意,基礎版模型並不擅長理解普通的自然語言對話,拿它當日常聊天助手效果很差。想要用自然語言交流,必須選擇 Instruct 版本。

在行業層面,Code Llama 把開原始碼模型的能力拉到了接近頂尖商業模型的水平。它降低了整個開發工具生態的門檻,接下來基於它打造的本地 IDE 外掛和自動化測試工具,會給閉源商業產品帶來相當大的競爭壓力。

來源 (3)

  1. [1]
    ai.meta.com(在新分頁開啟)原文ai.meta.com
  2. [2]
  3. [3]

每日 AI 內容精選