模型概述
模型特點
模型能力
使用案例
🚀 Llama 3.2 大語言模型
Llama 3.2 是一系列多語言大語言模型,具備強大的文本生成能力。它經過預訓練和指令微調,在多種語言和常見行業基準測試中表現出色,適用於商業和研究領域。
🚀 快速開始
安裝依賴
確保你已安裝最新版本的 transformers
庫:
pip install --upgrade transformers
使用示例
以下是使用 transformers
庫進行對話推理的示例代碼:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe("The key to life is")
✨ 主要特性
- 多語言支持:官方支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語,且在更多語言上進行了訓練。
- 高性能表現:在常見行業基準測試中,超越了許多開源和閉源聊天模型。
- 多種模型版本:提供 1B 和 3B 大小的模型,以及量化版本,適用於不同的計算資源和應用場景。
- 優化架構:採用優化的變壓器架構,結合監督微調(SFT)和基於人類反饋的強化學習(RLHF),以符合人類對有用性和安全性的偏好。
📦 安裝指南
使用 transformers
庫
從 transformers >= 4.43.0
版本開始,你可以使用 transformers
管道抽象或 Auto
類的 generate()
函數進行對話推理。確保通過以下命令更新 transformers
庫:
pip install --upgrade transformers
使用原始 llama
代碼庫
請遵循 倉庫 中的說明。使用 huggingface-cli
下載原始檢查點的示例命令如下:
huggingface-cli download meta-llama/Llama-3.2-1B --include "original/*" --local-dir Llama-3.2-1B
💻 使用示例
基礎用法
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe("The key to life is")
高級用法
你可以根據具體需求調整模型的參數,例如生成的最大長度、溫度等:
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-1B"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
max_length=200, # 生成的最大長度
temperature=0.7 # 溫度參數,控制生成的隨機性
)
pipe("The key to life is")
📚 詳細文檔
模型信息
屬性 | 詳情 |
---|---|
模型開發者 | Meta |
模型架構 | 自迴歸語言模型,使用優化的變壓器架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF)。 |
訓練數據 | 公開可用的在線數據的新組合,截止到 2023 年 12 月。 |
參數 | 1B(1.23B)和 3B(3.21B) |
輸入模態 | 多語言文本 |
輸出模態 | 多語言文本和代碼 |
上下文長度 | 128k(文本模型),8k(量化模型) |
GQA | 是 |
共享嵌入 | 是 |
令牌計數 | 最多 9T 令牌 |
知識截止日期 | 2023 年 12 月 |
預期用途
預期用例
- 商業和研究:適用於多種語言的商業和研究用途。
- 指令微調文本模型:用於類似助手的聊天和代理應用,如知識檢索和總結、移動 AI 寫作助手以及查詢和提示重寫。
- 預訓練模型:可適應各種自然語言生成任務。
- 量化模型:適用於計算資源有限的設備上的各種用例。
超出範圍
- 違法違規使用:以任何違反適用法律法規(包括貿易合規法律)的方式使用。
- 違反政策使用:以任何違反可接受使用政策和 Llama 3.2 社區許可證的方式使用。
- 不支持語言使用:在本模型卡中未明確提及為支持的語言中使用。
硬件和軟件
訓練因素
使用自定義訓練庫、Meta 的自定義 GPU 集群和生產基礎設施進行預訓練。微調、量化、註釋和評估也在生產基礎設施上進行。
訓練能源使用
訓練在 H100 - 80GB(TDP 為 700W)類型的硬件上累計使用了 916k GPU 小時的計算資源。
訓練溫室氣體排放
估計基於位置的總溫室氣體排放量為 240 噸 CO2eq。自 2020 年以來,Meta 在全球運營中保持淨零溫室氣體排放,並以可再生能源匹配 100% 的電力使用。
訓練數據
Llama 3.2 在來自公開可用來源的最多 9 萬億令牌的數據上進行了預訓練。在模型開發的預訓練階段,將 Llama 3.1 8B 和 70B 模型的 logits 納入其中。在訓練後,使用與 Llama 3.1 類似的方法,通過多輪對齊生成最終的聊天模型。
量化
量化方案
- 變壓器塊:所有變壓器塊中的線性層量化為 4 位分組方案(組大小為 32)的權重和 8 位每個令牌的動態量化激活。
- 分類層:量化為 8 位每通道的權重和 8 位每個令牌的動態量化激活。
- 嵌入層:使用 8 位每通道的量化。
量化感知訓練和 LoRA
量化感知訓練(QAT)與低秩適應(LoRA)模型僅經過訓練後階段,使用與全精度模型相同的數據。初始化 QAT 時,利用監督微調(SFT)後獲得的 BF16 Llama 3.2 模型檢查點,並進行額外一輪的 SFT 訓練。然後凍結 QAT 模型的主幹,並對變壓器塊內的所有層應用 LoRA 適配器進行另一輪 SFT。
SpinQuant
應用 SpinQuant 和生成式訓練後量化(GPTQ)。對 SpinQuant 旋轉矩陣進行 100 次迭代優化,使用 WikiText 2 數據集中序列長度為 2048 的 800 個樣本。對於 GPTQ,使用相同數據集和序列長度的 128 個樣本。
基準測試
英文文本基準測試
類別 | 基準測試 | 樣本數 | 指標 | Llama 3.2 1B | Llama 3.2 3B | Llama 3.1 8B |
---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc_char | 32.2 | 58 | 66.7 |
AGIEval English | 3 - 5 | average/acc_char | 23.3 | 39.2 | 47.8 | |
ARC - Challenge | 25 | acc_char | 32.8 | 69.1 | 79.7 | |
閱讀理解 | SQuAD | 1 | em | 49.2 | 67.7 | 77 |
QuAC (F1) | 1 | f1 | 37.9 | 42.9 | 44.9 | |
DROP (F1) | 3 | f1 | 28.0 | 45.2 | 59.5 | |
長上下文 | Needle in Haystack | 0 | em | 96.8 | 1 | 1 |
指令微調模型基準測試
| 能力 | 基準測試 | 樣本數 | 指標 | Llama 3.2 1B bf16 | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B bf16 | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 通用 | MMLU | 5 | macro_avg/acc | 49.3 | 43.3 | 47.3 | 49.0 | 63.4 | 60.5 | 62 | 62.4 | 69.4 | | 重寫 | Open - rewrite eval | 0 | micro_avg/rougeL | 41.6 | 39.2 | 40.9 | 41.2 | 40.1 | 40.3 | 40.8 | 40.7 | 40.9 | | 總結 | TLDR9+ (test) | 1 | rougeL | 16.8 | 14.9 | 16.7 | 16.8 | 19.0 | 19.1 | 19.2 | 19.1 | 17.2 | | 指令遵循 | IFEval | 0 | Avg(Prompt/Instruction acc Loose/Strict) | 59.5 | 51.5 | 58.4 | 55.6 | 77.4 | 73.9 | 73.5 | 75.9 | 80.4 | | 數學 | GSM8K (CoT) | 8 | em_maj1@1 | 44.4 | 33.1 | 40.6 | 46.5 | 77.7 | 72.9 | 75.7 | 77.9 | 84.5 | | | MATH (CoT) | 0 | final_em | 30.6 | 20.5 | 25.3 | 31.0 | 48.0 | 44.2 | 45.3 | 49.2 | 51.9 | | 推理 | ARC - C | 0 | acc | 59.4 | 54.3 | 57 | 60.7 | 78.6 | 75.6 | 77.6 | 77.6 | 83.4 | | | GPQA | 0 | acc | 27.2 | 25.9 | 26.3 | 25.9 | 32.8 | 32.8 | 31.7 | 33.9 | 32.8 | | | Hellaswag | 0 | acc | 41.2 | 38.1 | 41.3 | 41.5 | 69.8 | 66.3 | 68 | 66.3 | 78.7 | | 工具使用 | BFCL V2 | 0 | acc | 25.7 | 14.3 | 15.9 | 23.7 | 67.0 | 53.4 | 60.1 | 63.5 | 67.1 | | | Nexus | 0 | macro_avg/acc | 13.5 | 5.2 | 9.6 | 12.5 | 34.3 | 32.4 | 31.5 | 30.1 | 38.5 | | 長上下文 | InfiniteBench/En.QA | 0 | longbook_qa/f1 | 20.3 | N/A | N/A | N/A | 19.8 | N/A | N/A | N/A | 27.3 | | | InfiniteBench/En.MC | 0 | longbook_choice/acc | 38.0 | N/A | N/A | N/A | 63.3 | N/A | N/A | N/A | 72.2 | | | NIH/Multi - needle | 0 | recall | 75.0 | N/A | N/A | N/A | 84.7 | N/A | N/A | N/A | 98.8 | | 多語言 | MGSM (CoT) | 0 | em | 24.5 | 13.7 | 18.2 | 24.4 | 58.2 | 48.9 | 54.3 | 56.8 | 68.9 |
注:帶 ** 的模型僅用於比較,未發佈。
多語言基準測試
類別 | 基準測試 | 語言 | Llama 3.2 1B | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B |
---|---|---|---|---|---|---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙語 | 39.8 | 34.9 | 38.9 | 40.2 | 54.5 | 50.9 | 53.3 | 53.4 | 62.1 |
西班牙語 | 41.5 | 36.0 | 39.8 | 41.8 | 55.1 | 51.9 | 53.6 | 53.6 | 62.5 | ||
意大利語 | 39.8 | 34.9 | 38.1 | 40.6 | 53.8 | 49.9 | 52.1 | 51.7 | 61.6 | ||
德語 | 39.2 | 34.9 | 37.5 | 39.6 | 53.3 | 50.0 | 52.2 | 51.3 | 60.6 | ||
法語 | 40.5 | 34.8 | 39.2 | 40.8 | 54.6 | 51.2 | 53.3 | 53.3 | 62.3 | ||
印地語 | 33.5 | 30.0 | 32.1 | 34.0 | 43.3 | 40.4 | 42.0 | 42.1 | 50.9 | ||
泰語 | 34.7 | 31.2 | 32.4 | 34.9 | 44.5 | 41.3 | 44.0 | 42.2 | 50.3 |
注:帶 ** 的模型僅用於比較,未發佈。
推理時間
類別 | 解碼(令牌/秒) | 首令牌時間(秒) | 預填充(令牌/秒) | 模型大小(PTE 文件大小,MB) | 內存大小(RSS,MB) |
---|---|---|---|---|---|
1B BF16(基線) | 19.2 | 1.0 | 60.3 | 2358 | 3185 |
1B SpinQuant | 50.2(2.6 倍) | 0.3(-76.9%) | 260.5(4.3 倍) | 1083(-54.1%) | 1921(-39.7%) |
1B QLoRA | 45.8(2.4 倍) | 0.3(-76.0%) | 252.0(4.2 倍) | 1127(-52.2%) | 2255(-29.2%) |
3B BF16(基線) | 7.6 | 3.0 | 21.2 | 6129 | 7419 |
3B SpinQuant | 19.7(2.6 倍) | 0.7(-76.4%) | 89.7(4.2 倍) | 2435(-60.3%) | 3726(-49.8%) |
3B QLoRA | 18.5(2.4 倍) | 0.7(-76.1%) | 88.8(4.2 倍) | 2529(-58.7%) | 4060(-45.3%) |
注:性能測量使用基於 adb 二進制的方法,在 Android OnePlus 12 設備上進行,首令牌時間(TTFT)測量時提示長度為 64。
🔧 技術細節
模型架構
Llama 3.2 是自迴歸語言模型,採用優化的變壓器架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF),以符合人類對有用性和安全性的偏好。
量化技術
量化方案包括對變壓器塊、分類層和嵌入層的不同量化方式。量化感知訓練(QAT)與低秩適應(LoRA)結合,以提高模型在有限計算資源下的性能。
基準測試方法
使用內部評估庫對模型在標準自動基準測試上的性能進行評估,包括英文文本基準測試和多語言基準測試。
📄 許可證
使用 Llama 3.2 受 Llama 3.2 社區許可證(自定義商業許可協議)的約束。
LLAMA 3.2 社區許可協議
協議概述
本協議規定了 Llama 3.2 材料的使用、複製、分發和修改的條款和條件。通過點擊“我接受”或使用或分發 Llama 材料的任何部分,即表示同意受本協議約束。
許可權利和再分發
- 權利授予:授予非排他性、全球性、不可轉讓和免版稅的有限許可,用於使用、複製、分發、創建衍生作品和修改 Llama 材料。
- 再分發和使用:
- 分發 Llama 材料或包含其的產品或服務時,需提供本協議副本,並顯著顯示“Built with Llama”。
- 若使用 Llama 材料創建、訓練、微調或改進 AI 模型,模型名稱開頭需包含“Llama”。
- 保留 Llama 材料副本中的歸屬聲明。
- 使用 Llama 材料需遵守適用法律法規和可接受使用政策。
額外商業條款
若在 Llama 3.2 版本發佈日期,被許可人或其關聯方的產品或服務的月活躍用戶數超過 7 億,則需向 Meta 請求許可。
保修免責聲明
除非適用法律要求,Llama 材料及其輸出和結果按“原樣”提供,Meta 不提供任何形式的保證。
責任限制
Meta 及其關聯方在任何情況下均不對因本協議引起的任何間接、特殊、後果性、偶發性、示範性或懲罰性損害承擔責任。
知識產權
- 商標許可:本協議未授予商標許可,僅在特定情況下允許使用“Llama”商標。
- 衍生作品所有權:用戶對自己創建的 Llama 材料的衍生作品和修改擁有所有權。
- 侵權訴訟:若對 Meta 提起訴訟或索賠,本協議授予的許可將終止。
期限和終止
協議自接受或訪問 Llama 材料起生效,直至按協議條款終止。Meta 可因違約終止協議,終止後用戶需刪除並停止使用 Llama 材料。
適用法律和管轄權
本協議受加利福尼亞州法律管轄,相關爭議由加利福尼亞州法院專屬管轄。
Llama 3.2 可接受使用政策
禁止使用情況
- 違法違規行為:包括參與、促進、煽動或協助非法活動、侵犯他人權利、收集敏感信息等。
- 危害人身安全活動:如軍事、戰爭、核工業、武器開發等。
- 欺騙誤導行為:包括生成欺詐、虛假信息、誹謗內容等。
- 未披露危險信息:未能向最終用戶適當披露 AI 系統的已知危險。
- 與非法工具交互:與設計用於生成非法內容或從事非法有害行為的第三方工具、模型或軟件交互。
報告方式
可通過以下方式報告違反政策、軟件“漏洞”或其他可能導致違反政策的問題:
- 模型問題報告:https://github.com/meta-llama/llama-models/issues
- 模型生成的風險內容報告:developers.facebook.com/llama_output_feedback
- 漏洞和安全問題報告:facebook.com/whitehat/info
- 違反可接受使用政策或未經授權使用 Llama 3.2 報告:LlamaUseReport@meta.com
責任與安全
負責任的部署
- 部署方法:Llama 是一種基礎技術,可用於多種用例。Meta 的 Llama 模型的負責任部署示例可在 社區故事網頁 中找到。開發者應根據具體用例定製安全策略,並在 Llama 系統中部署必要的安全防護措施。
- Llama 3.2 指令微調:安全微調的主要目標是為研究社區提供研究安全微調魯棒性的有價值資源,為開發者提供安全強大的模型。採用多方面的數據收集方法,結合人類生成數據和合成數據,以減輕潛在安全風險。
- Llama 3.2 系統:大型語言模型(包括 Llama 3.2)不應單獨部署,而應作為整體 AI 系統的一部分,並根據需要添加額外的安全防護措施。Meta 為社區提供了 安全防護措施,開發者應在部署 Llama 模型或其他大語言模型時使用。
新功能和用例
- 技術進步:Llama 版本通常會引入新功能,需要在通用生成式 AI 用例的最佳實踐基礎上進行特定考慮。
- 受限環境:Llama 3.2 1B 和 3B 模型預計將部署在高度受限的環境中,如移動設備。使用較小模型的 LLM 系統在對齊配置文件和安全/有用性權衡方面與更復雜的大型系統不同。開發者應確保系統安全符合用例要求。
評估
- 規模化評估:構建專門的對抗性評估數據集,評估由 Llama 模型和 Purple Llama 安全防護措施組成的系統。建議為具體用例構建專門的評估數據集。
- 紅隊測試:進行定期的紅隊測試,目標是通過對抗性提示發現風險,並利用這些經驗改進基準測試和安全調優數據集。紅隊成員包括網絡安全、對抗性機器學習、負責任 AI 和內容完整性等領域的專家。
關鍵風險
- CBRNE 風險:對 Llama 3.1 70B 和 405B 模型進行了與化學和生物武器擴散相關的風險評估,該評估也適用於 Llama 3.2 的 1B 和 3B 模型。
- 兒童安全風險:使用專家團隊進行兒童安全風險評估,通過微調減輕風險。在 Llama 3 模型開發過程中,利用專家紅隊測試擴展評估基準的覆蓋範圍。
- 網絡攻擊風險:對 Llama 3.1 405B 模型進行了網絡攻擊提升研究,評估其在黑客任務中的能力。由於 Llama 3.2 的 1B 和 3B 模型較小且能力較弱,認為對 405B 模型的測試也適用於 Llama 3.2 模型。
社區
- 行業合作:積極參與開放聯盟,如 AI 聯盟、AI 合作組織和 MLCommons,為安全標準化和透明度做出貢獻。鼓勵社區採用 MLCommons 概念驗證評估等分類法,促進安全和內容評估的協作和透明度。
- 資助計劃:設立 Llama 影響資助 計劃,支持 Meta 的 Llama 模型在教育、氣候和開放創新等領域的應用。
- 報告機制:建立 輸出報告機制 和 漏洞賞金計劃,藉助社區力量不斷改進 Llama 技術。
倫理考慮和侷限性
價值觀
Llama 3.2 的核心價值觀是開放性、包容性和有用性。旨在為所有人服務,適用於廣泛的用例,尊重所有用戶的尊嚴和自主權。
測試侷限性
Llama 3.2 作為新技術,其使用存在風險。目前的測試無法涵蓋所有場景,模型可能會產生不準確、有偏見或其他令人反感的響應。在部署 Llama 3.2 模型的應用之前,開發者應進行針對具體應用的安全測試和調優。可參考 負責任使用指南、信任與安全 解決方案和其他 資源 瞭解負責任開發的更多信息。



