模型概述
模型特點
模型能力
使用案例
🚀 Code Llama
Code Llama是一系列預訓練和微調的生成式文本模型,參數規模從70億到700億不等。本倉庫是基於Hugging Face Transformers格式的340億參數基礎版本模型。該模型旨在用於通用代碼合成與理解。其他模型的鏈接可在底部索引中找到。
🚀 快速開始
若要使用此模型,請確保安裝transformers
:
pip install transformers.git accelerate
模型能力
- [x] 代碼補全。
- [ ] 代碼填充。
- [ ] 指令響應 / 對話。
- [ ] Python專業處理。
代碼示例
from transformers import AutoTokenizer
import transformers
import torch
model = "meta-llama/CodeLlama-34b-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'import socket\n\ndef ping_exponential_backoff(host: str):',
do_sample=True,
top_k=10,
temperature=0.1,
top_p=0.95,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
✨ 主要特性
模型詳情
- 注意事項:本模型的使用受Meta許可證的約束。Meta開發並公開發布了Code Llama系列大語言模型(LLM)。
- 模型開發者:Meta
- 模型變體:Code Llama有三種模型規模和三種變體:
- Code Llama:基礎模型,用於通用代碼合成與理解。
- Code Llama - Python:專門為Python設計。
- Code Llama - Instruct:用於指令跟隨和更安全的部署。 所有變體都有70億、130億和340億參數的版本。
- 本倉庫內容:本倉庫包含340億參數的基礎版本模型。
- 輸入:模型僅接受文本輸入。
- 輸出:模型僅生成文本。
- 模型架構:Code Llama是一種自迴歸語言模型,採用了優化的Transformer架構。
- 模型訓練時間:Code Llama及其變體於2023年1月至2023年7月期間進行訓練。
- 模型狀態:這是一個基於離線數據集訓練的靜態模型。未來,隨著我們根據社區反饋改進模型安全性,將發佈Code Llama - Instruct的新版本。
- 許可證:可在此處獲取自定義商業許可證。
- 研究論文:更多信息可參考論文《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的任何應用之前,開發者應針對其特定應用對模型進行安全測試和調整。
請參閱負責任使用指南。
模型索引
📄 許可證
使用本模型需遵循Meta的許可證協議,點擊“提交”即表示您接受許可證的條款,並確認您提供的信息將根據Meta隱私政策進行收集、存儲、處理和共享。
Llama 2社區許可協議
“協議”指本協議中規定的使用、複製、分發和修改Llama材料的條款和條件。 “文檔”指Meta在https://ai.meta.com/resources/models-and-libraries/llama-downloads/上分發的Llama 2相關的規格、手冊和文檔。 “被許可方”或“您”指您本人,或您的僱主,或任何其他人或實體(如果您代表該人或實體簽訂本協議),且您已達到適用法律、規則或法規要求的提供合法同意的年齡,並具有約束您的僱主或該其他人或實體的法律權力(如果您代表他們簽訂本協議)。 “Llama 2”指Meta在ai.meta.com/resources/models-and-libraries/llama-downloads/上分發的基礎大語言模型、軟件和算法,包括機器學習模型代碼、訓練好的模型權重、推理代碼、訓練代碼、微調代碼及上述內容的其他元素。 “Llama材料”指根據本協議提供的Meta專有的Llama 2及其文檔(及其任何部分)。 “Meta”或“我們”指Meta Platforms Ireland Limited(如果您位於歐洲經濟區(EEA)或瑞士,或者如果您是一個實體,您的主要營業地位於歐洲經濟區或瑞士)和Meta Platforms, Inc.(如果您位於歐洲經濟區或瑞士以外)。
通過點擊下方的“我接受”,或使用或分發Llama材料的任何部分或元素,即表示您同意受本協議的約束。
- 許可權利和再分發
- 權利授予:您被授予在Meta知識產權或其他權利下的非排他性、全球性、不可轉讓且免版稅的有限許可,以使用、複製、分發、拷貝、創建衍生作品並對Llama材料進行修改。
- 再分發和使用
- 如果您將Llama材料或其任何衍生作品分發給第三方,您應向該第三方提供本協議的副本。
- 如果您作為集成最終用戶產品的一部分從被許可方處接收Llama材料或其任何衍生作品,則本協議第2條不適用於您。
- 您必須在分發的所有Llama材料副本中,在作為副本一部分分發的“通知”文本文件中保留以下歸屬聲明:“Llama 2根據Llama 2社區許可證獲得許可,版權所有 (c) Meta Platforms, Inc. 保留所有權利。”
- 您使用Llama材料必須遵守適用的法律法規(包括貿易合規法律法規),並遵守Llama材料的可接受使用政策(可在https://ai.meta.com/llama/use-policy獲取),該政策特此併入本協議。
- 您不得使用Llama材料或其任何輸出或結果來改進任何其他大語言模型(不包括Llama 2或其衍生作品)。
- 額外商業條款:如果在Llama 2版本發佈日期,被許可方或其關聯方提供的產品或服務的月活躍用戶在前一個日曆月超過7億,則您必須向Meta申請許可證,Meta可自行決定是否授予您許可證。在Meta明確授予您此類權利之前,您無權行使本協議下的任何權利。
- 保修免責聲明:除非適用法律要求,Llama材料及其任何輸出和結果均按“現狀”提供,不提供任何形式的明示或暗示保證,包括但不限於所有權、不侵權、適銷性或特定用途適用性的保證。您獨自負責確定使用或再分發Llama材料的適當性,並承擔使用Llama材料及其任何輸出和結果相關的任何風險。
- 責任限制:在任何情況下,Meta或其關聯方均不對因本協議引起的任何利潤損失或任何間接、特殊、後果性、偶發性、懲戒性或懲罰性損害承擔責任,無論責任理論如何(包括合同、侵權、疏忽、產品責任等),即使Meta或其關聯方已被告知此類損害的可能性。
- 知識產權
- 本協議未授予商標許可,關於Llama材料,除非在描述和再分發Llama材料時進行合理和慣常使用所需,否則Meta和被許可方均不得使用對方或其關聯方擁有或關聯的任何名稱或標記。
- 鑑於Meta對Llama材料及其衍生作品的所有權,就您對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找到。
禁止用途
我們希望每個人都能安全、負責任地使用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



