今天,我們推出了 Code Llama,這是一個大型語言模型(LLM),可以使用文本提示來生成和討論代碼。Code Llama 在編碼任務的公開可用 LLM 中處於領先地位。它有潛力使開發人員的工作流程更快速,更高效,並降低了學習編程的門檻。Code Llama 有潛力被用作一個提高程序員編寫更健壯,有良好文檔記錄的軟件的生產力和教育工具。
我們相信,對於開發創新、安全和負責任的新人工智能工具,開放的方法是最好的,因此,我們以與 Llama 2 相同的社區許可證為基礎,將 Code Llama 公開釋放供研究和商業使用。
Code Llama 是 Llama 2 的編碼專用版本,是通過在其特定於代碼的數據集上進一步訓練 Llama 2 並更長時間地對其採樣數據集創建的。基本上,Code Llama 具有增強的編碼功能。它可以生成代碼和有關代碼的自然語言,無論是從代碼還是自然語言提示(例如:“寫一個輸出斐波那契數列的函數”)。它還可以用於代碼完成和調試。它支持當今使用最廣泛的編程語言,包括 Python、C++、Java、PHP、TypeScript(JavaScript)、C#、Bash 等等。
我們釋放了三種不同參數的 Code Llama,分別為 7B、13B 和 34B。這些模型中的每一個都是使用 500B 代碼和相關代碼數據進行訓練的。7B 和 13B 基本模型和指令模型也已經通過填充中間(FIM)功能進一步訓練,使其能夠插入現有代碼中,這意味著它們可以直接支持代碼完成等任務。
這三個模型解決了不同的服務和延遲要求。例如,7B 模型可以在單個 GPU 上提供服務。34B 模型返回最佳結果,並允許更好的編碼輔助,但較小的 7B 和 13B 模型速度更快,更適合需要低延遲的任務,如實時代碼完成。
我們還進一步對 Code Llama 進行了兩個額外變種的微調:Code Llama - Python 和 Code Llama - Instruct。
Code Llama - Python 是 Code Llama 的語言專業變種,進一步在 100B 代碼令牌上進行了微調。由於 Python 是代碼生成的最常基準化的語言,而且 Python 和 PyTorch 在人工智能社區中起著重要作用,我們認為專門的模型提供了額外的實用性。
Code Llama - Instruct 是 Code Llama 的指導微調和對齊變種。指令微調繼續訓練過程,但目標不同。模型接受自然語言指令輸入和預期輸出。這使它更擅長理解人們對他們的提示期望什麼。我們建議每當使用 Code Llama 進行代碼生成時都使用 Code Llama - Instruct 變種,因為 Code Llama - Instruct 已經過微調,以生成有用且安全的自然語言答案。
程序員已經在各種任務中使用 LLMs 進行輔助。目標是使開發工作流程更加高效,以便他們可以專注於他們工作的最人性化的方面,而不是重複性任務。我們認為,AI 模型,特別是編碼方面的 LLMs,最好採用開放的方法,無論是在創新還是安全方面。公開可用的代碼特定模型可以促進新技術的發展,以改善人們的生活。通過釋放像 Code Llama 這樣的代碼模型,整個社區都可以評估其能力,識別問題並解決漏洞。
Code Llama 設計用於支持所有行業的軟件工程師,包括研究、工業、開源項目、非政府組織和企業。但仍然有許多用例需要支持。我們希望 Code Llama 能激發他人利用 Llama 2 創建新的創新工具,用於研究和商業產品。
以上內容來自 [ Meta Newsroom ] about.fb.com/news/2023/08/code-llama-ai-for-coding