模型概述
模型特點
模型能力
使用案例
🚀 Code Llama
Code Llama是一系列預訓練和微調的生成式文本模型,參數規模從70億到700億不等。本倉庫是基於Hugging Face Transformers格式的130億參數Python專業版本模型。該模型專為通用代碼合成和理解而設計。其他模型的鏈接可在底部索引中找到。
🚀 快速開始
要使用此模型,請確保安裝transformers
:
pip install https://github.com/huggingface/transformers accelerate
✨ 主要特性
- [x] 代碼補全。
- [ ] 代碼填充。
- [ ] 指令交互/聊天。
- [x] Python專業支持。
📚 詳細文檔
模型詳情
注意:使用此模型需遵循Meta的許可協議。Meta開發並公開發布了Code Llama系列大語言模型(LLM)。
模型開發者:Meta
模型變體:Code Llama有三種模型規模和三種變體:
- Code Llama:基礎模型,用於通用代碼合成和理解。
- Code Llama - Python:專門為Python設計。
- Code Llama - Instruct:用於指令跟隨和更安全的部署。
所有變體均有70億、130億、340億和700億參數規模可供選擇。
本倉庫包含130億參數的Python版本模型。
輸入:模型僅接受文本輸入。
輸出:模型僅生成文本。
模型架構:Code Llama是一種自迴歸語言模型,採用了優化的Transformer架構。
模型訓練時間:Code Llama及其變體於2023年1月至2023年7月期間進行訓練。
模型狀態:這是一個基於離線數據集訓練的靜態模型。隨著我們根據社區反饋改進模型安全性,未來將發佈Code Llama - Instruct的新版本。
許可證:可在https://ai.meta.com/resources/models-and-libraries/llama-downloads/獲取自定義商業許可證。
研究論文:更多信息可在論文“Code Llama: Open Foundation Models for Code”或其arXiv頁面中找到。
預期用途
預期用例:Code Llama及其變體適用於英語和相關編程語言的商業和研究用途。基礎模型Code Llama可用於各種代碼合成和理解任務,Code Llama - Python專門處理Python編程語言,Code Llama - Instruct則更安全地用於代碼助手和生成應用程序。
非預期用途:以任何違反適用法律法規(包括貿易合規法律)的方式使用。使用英語以外的語言。以Code Llama及其變體的可接受使用政策和許可協議禁止的任何其他方式使用。
硬件和軟件
訓練因素:我們使用了自定義訓練庫。已發佈模型的訓練和微調在Meta的研究超級集群上進行。
碳足跡:總體而言,訓練所有9個Code Llama模型需要在A100 - 80GB(熱設計功耗為350 - 400W)類型的硬件上進行40萬GPU小時的計算。估計總排放量為65.3噸二氧化碳當量,其中100%由Meta的可持續發展計劃抵消。
訓練數據
此處報告的所有實驗和已發佈的模型均使用與Llama 2相同的數據進行訓練和微調,但權重不同(詳情請參閱研究論文的第2節和表1)。
評估結果
請參閱研究論文第3節中主要模型的評估和詳細消融實驗,以及第4節中的安全評估。
道德考量和侷限性
Code Llama及其變體是一項新技術,使用時存在風險。到目前為止進行的測試均使用英語,且未涵蓋也不可能涵蓋所有場景。因此,與所有大語言模型一樣,Code Llama的潛在輸出無法提前預測,模型在某些情況下可能會對用戶提示產生不準確或令人反感的響應。因此,在部署Code Llama的任何應用程序之前,開發人員應針對其特定應用對模型進行安全測試和調整。
請參閱負責任使用指南。
模型使用表格
規模 | 基礎模型 | Python版本 | 指令版本 |
---|---|---|---|
70億 | [meta - llama/CodeLlama - 7b - hf](https://huggingface.co/meta - llama/CodeLlama - 7b - hf) | [meta - llama/CodeLlama - 7b - Python - hf](https://huggingface.co/meta - llama/CodeLlama - 7b - Python - hf) | [meta - llama/CodeLlama - 7b - Instruct - hf](https://huggingface.co/meta - llama/CodeLlama - 7b - Instruct - hf) |
130億 | [meta - llama/CodeLlama - 13b - hf](https://huggingface.co/meta - llama/CodeLlama - 13b - hf) | [meta - llama/CodeLlama - 13b - Python - hf](https://huggingface.co/meta - llama/CodeLlama - 13b - Python - hf) | [meta - llama/CodeLlama - 13b - Instruct - hf](https://huggingface.co/meta - llama/CodeLlama - 13b - Instruct - hf) |
340億 | [meta - llama/CodeLlama - 34b - hf](https://huggingface.co/meta - llama/CodeLlama - 34b - hf) | [meta - llama/CodeLlama - 34b - Python - hf](https://huggingface.co/meta - llama/CodeLlama - 34b - Python - hf) | [meta - llama/CodeLlama - 34b - Instruct - hf](https://huggingface.co/meta - llama/CodeLlama - 34b - Instruct - hf) |
700億 | [meta - llama/CodeLlama - 70b - hf](https://huggingface.co/meta - llama/CodeLlama - 70b - hf) | [meta - llama/CodeLlama - 70b - Python - hf](https://huggingface.co/meta - llama/CodeLlama - 70b - Python - hf) | [meta - llama/CodeLlama - 70b - Instruct - hf](https://huggingface.co/meta - llama/CodeLlama - 70b - Instruct - hf) |
額外的許可信息
⚠️ 重要提示
您需要與Meta共享聯繫信息才能訪問此模型。點擊下面的“我接受”或使用或分發Llama材料的任何部分或元素,即表示您同意受本協議的約束。
本協議包含了使用、複製、分發和修改Llama材料的條款和條件,包括許可權利、再分發、免責聲明、責任限制、知識產權、期限和終止、適用法律和管轄權等內容。同時,使用Llama 2需遵守可接受使用政策,禁止用於一系列違規或危險用途。
您提供的信息將根據Meta隱私政策進行收集、存儲、處理和共享。
Llama 2社區許可協議
“協議”指本協議中規定的使用、複製、分發和修改Llama材料的條款和條件。 “文檔”指Meta在[https://ai.meta.com/resources/models - and - libraries/llama - downloads/](https://ai.meta.com/resources/models - and - libraries/llama - downloads/)上分發的Llama 2隨附的規格、手冊和文檔。 “被許可方”或“您”指您,或您的僱主,或任何其他個人或實體(如果您代表該個人或實體簽訂本協議),且該個人或實體達到適用法律、規則或法規要求的提供法律同意的年齡,並且如果您代表他們簽訂本協議,則具有約束您的僱主或該其他個人或實體的法律權力。 “Llama 2”指基礎大語言模型、軟件和算法,包括機器學習模型代碼、訓練模型權重、推理啟用代碼、訓練啟用代碼、微調啟用代碼以及Meta在[ai.meta.com/resources/models - and - libraries/llama - downloads/](ai.meta.com/resources/models - and - libraries/llama - downloads/)上分發的上述內容的其他元素。 “Llama材料”指根據本協議提供的Meta專有的Llama 2和文檔(及其任何部分)的統稱。 “Meta”或“我們”指Meta Platforms Ireland Limited(如果您位於歐洲經濟區或瑞士,或者如果您是一個實體,您的主要營業地點在歐洲經濟區或瑞士)和Meta Platforms, Inc.(如果您位於歐洲經濟區或瑞士以外)。 通過點擊下面的“我接受”或使用或分發Llama材料的任何部分或元素,您同意受本協議的約束。
- 許可權利和再分發
- 權利授予:您被授予在Llama材料中體現的Meta知識產權或Meta擁有的其他權利下的非排他、全球、不可轉讓和免版稅的有限許可,以使用、複製、分發、拷貝、創建衍生作品並對Llama材料進行修改。
- 再分發和使用
- 如果您將Llama材料或其任何衍生作品分發給第三方,您應向該第三方提供本協議的副本。
- 如果您作為集成最終用戶產品的一部分從被許可方處接收Llama材料或其任何衍生作品,則本協議第2條不適用於您。
- 您必須在分發的所有Llama材料副本中,在作為此類副本一部分分發的“通知”文本文件中保留以下歸屬聲明:“Llama 2根據LLAMA 2社區許可證獲得許可,版權所有 (c) Meta Platforms, Inc. 保留所有權利。”
- 您對Llama材料的使用必須遵守適用的法律法規(包括貿易合規法律法規),並遵守Llama材料的可接受使用政策(可在[https://ai.meta.com/llama/use - policy](https://ai.meta.com/llama/use - policy)獲取),該政策特此通過引用併入本協議。
- 您不得使用Llama材料或Llama材料的任何輸出或結果來改進任何其他大語言模型(不包括Llama 2或其衍生作品)。
- 額外商業條款:如果在Llama 2版本發佈日期,被許可方或其關聯公司提供的產品或服務的月活躍用戶在前一個日曆月超過7億,則您必須向Meta請求許可,Meta可自行決定是否授予您許可,並且在Meta另行明確授予您此類權利之前,您無權行使本協議下的任何權利。
- 免責聲明:除非適用法律要求,否則Llama材料及其任何輸出和結果按“原樣”提供,不提供任何形式的保證,無論是明示的還是暗示的,包括但不限於所有權、不侵權、適銷性或特定用途適用性的保證。您獨自負責確定使用或再分發Llama材料的適當性,並承擔與您使用Llama材料及其任何輸出和結果相關的任何風險。
- 責任限制:在任何情況下,Meta或其關聯公司均不對因本協議引起的任何責任理論(無論是合同、侵權、疏忽、產品責任還是其他)承擔任何利潤損失或任何間接、特殊、後果性、偶發性、懲戒性或懲罰性損害賠償,即使Meta或其關聯公司已被告知此類損害賠償的可能性。
- 知識產權
- 本協議未授予商標許可,並且與Llama材料相關,除非在描述和再分發Llama材料時進行合理和慣常使用所需,否則Meta和被許可方均不得使用對方或其任何關聯公司擁有或關聯的任何名稱或標記。
- 鑑於Meta對Llama材料及其為Meta製作的衍生作品的所有權,就您製作的Llama材料的任何衍生作品和修改而言,在您和Meta之間,您是並將是此類衍生作品和修改的所有者。
- 如果您對Meta或任何實體提起訴訟或其他程序(包括在訴訟中的交叉索賠或反訴),聲稱Llama材料或Llama 2的輸出或結果,或上述任何內容的任何部分構成侵犯您擁有或可許可的知識產權或其他權利,則本協議授予您的任何許可應自提起此類訴訟或索賠之日起終止。您將賠償並使Meta免受任何第三方因您使用或分發Llama材料而產生或與之相關的任何索賠。
- 期限和終止:本協議的期限自您接受本協議或訪問Llama材料之日起開始,並將持續有效,直至根據本協議的條款和條件終止。如果您違反本協議的任何條款或條件,Meta可終止本協議。本協議終止後,您應刪除並停止使用Llama材料。第3、4和7條在本協議終止後仍然有效。
- 適用法律和管轄權:本協議將受加利福尼亞州法律管轄並依其解釋,不考慮法律選擇原則,並且《聯合國國際貨物銷售合同公約》不適用於本協議。加利福尼亞州的法院對因本協議引起的任何爭議具有專屬管轄權。
Llama 2可接受使用政策
Meta致力於促進其工具和功能(包括Llama 2)的安全和公平使用。如果您訪問或使用Llama 2,您同意本可接受使用政策(“政策”)。本政策的最新副本可在[ai.meta.com/llama/use - policy](http://ai.meta.com/llama/use - policy)找到。
禁止使用
我們希望每個人都能安全、負責任地使用Llama 2。您同意您不會使用或允許他人使用Llama 2進行以下操作:
- 違反法律或他人權利,包括:
- 從事、促進、生成、促成、鼓勵、策劃、煽動或進一步推動非法或違法活動或內容,例如:
- 暴力或恐怖主義
- 對兒童的剝削或傷害,包括招攬、創建、獲取或傳播兒童剝削內容或未報告兒童性虐待材料
- 人口販運、剝削和性暴力
- 向未成年人非法分發信息或材料,包括淫穢材料,或未對此類信息或材料採用法律要求的年齡限制
- 性招攬
- 任何其他犯罪活動
- 從事、促進、煽動或便利對個人或群體的騷擾、虐待、威脅或欺凌
- 從事、促進、煽動或便利在就業、就業福利、信貸、住房、其他經濟福利或其他基本商品和服務的提供方面的歧視或其他非法或有害行為
- 從事未經授權或無執照的任何專業實踐,包括但不限於金融、法律、醫療/健康或相關專業實踐
- 在未獲得適用法律要求的權利和同意的情況下,收集、處理、披露、生成或推斷個人的健康、人口統計或其他敏感個人或私人信息
- 從事或便利任何侵犯、挪用或以其他方式侵犯任何第三方權利的行為或生成任何內容,包括使用Llama 2材料的任何產品或服務的輸出或結果
- 創建、生成或便利創建惡意代碼、惡意軟件、計算機病毒或做任何其他可能禁用、負擔過重、干擾或損害網站或計算機系統的正常運行、完整性、操作或外觀的事情
- 從事、促進、生成、促成、鼓勵、策劃、煽動或進一步推動非法或違法活動或內容,例如:
- 從事、促進、煽動、便利或協助策劃或開展對個人造成死亡或身體傷害風險的活動,包括與以下相關的Llama 2使用:
- 軍事、戰爭、核工業或應用、間諜活動、用於受美國國務院維護的《國際武器貿易條例》(ITAR)管制的材料或活動
- 槍支和非法武器(包括武器開發)
- 非法藥物和受管制/受控物質
- 關鍵基礎設施、運輸技術或重型機械的操作
- 自殘或傷害他人,包括自殺、切割和飲食失調
- 任何旨在煽動或促進暴力、虐待或對個人造成身體傷害的內容
- 故意欺騙或誤導他人,包括與以下相關的Llama 2使用:
- 生成、促進或進一步推動欺詐或創建或促進虛假信息
- 生成、促進或進一步推動誹謗性內容,包括創建誹謗性聲明、圖像或其他內容
- 生成、促進或進一步分發垃圾郵件
- 在未經同意、授權或合法權利的情況下冒充他人
- 聲稱使用Llama 2或其輸出是人類生成的
- 生成或便利虛假的在線互動,包括虛假評論和其他虛假在線互動方式
- 未向最終用戶適當披露您的人工智能系統的任何已知危險。
請通過以下方式報告本政策的任何違規行為、軟件“漏洞”或其他可能導致違反本政策的問題:
- 報告模型問題:github.com/facebookresearch/llama
- 報告模型生成的風險內容:developers.facebook.com/llama_output_feedback
- 報告漏洞和安全問題:facebook.com/whitehat/info
- 報告可接受使用政策違規或Llama的未經授權使用:LlamaUseReport@meta.com



