Code Llama是個程式設計語言模型(LLM),能夠使用文字提示生成並討論程式碼。Code Llama 具有提升開發人員工作流程、提高效率和降低學習程式設計門檻的潛力。它作為一個生產力和教育工具,賦予程式設計師以生成更可靠軟體和更好文件的能力。
以開放方式開發新的人工智慧工具被認為是最佳途徑,以確保創新、安全和負責任。因此,Code Llama釋出時採用了與Llama 2相同的社群授權,使其可供研究和商業目的免費使用。
Code Llama是Llama 2的一個專門針對程式碼相關任務進行訓練的特殊版本。它在專門的程式碼範例數據集上進行了進一步的訓練,並提取了更多的數據進行了延長的時間。基本上,Code Llama具備了增強的編碼能力。它可以根據程式碼和文字提示(如“編寫一個輸出費波那契數列的函數”)生成程式碼並提供自然語言的解釋。此外,它還可以協助完成程式碼和進行調試。Code Llama支援多種流行的程式設計語言,包括Python、C++、Java、PHP、TypeScript(JavaScript)、C#、Bash等等。
Code Llama已經釋出了三種不同的參數規模:7B、13B和34B。每個模型都使用了500B的程式碼和與程式碼相關的數據進行了訓練。7B和13B的基本模型和指令模型還進行了填充程式碼(FITC)功能的訓練。這使它們能夠將程式碼插入現有程式碼,直接支援諸如程式碼補全等任務。
這三個模型已經針對不同的可用性和延遲要求進行了優化。例如,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是一個經過微調和對齊的變體,專門用作指令式編碼任務。
參考內容:https://about.fb.com/news/2023/08/code-llama-ai-for-coding/