Llama 3.1 版本說明:多語言支援、長上下文與 405B 模型
Meta 已發布 Llama 3.1,提供 8B、70B 與 405B 大小的模型,具備 128K 上下文長度、支援 8 種語言的多語言功能,且採用寬鬆授權允許合成資料生成。
模型變體與核心功能
Llama 3.1 包含八個開放權重模型,涵蓋三個基礎模型與五個微調變體。所有模型皆支援 128K token 的上下文長度,且能處理八種語言:英語、德語、法語、義大利語、葡萄牙語、印地語、西班牙語與泰語。
生成模型
- Llama 3.1 8B:針對消費級 GPU 的高效部署與開發進行了最佳化。
- Llama 3.1 70B:為大規模 AI 原生應用而設計。
- Llama 3.1 405B:一個非常大型的稠密模型,旨在用於合成資料生成、蒸餾,並作為「LLM as a Judge」使用。
這些規模的模型皆提供基礎(預訓練)與指令微調兩種版本。
安全與分類模型
- Llama Guard 3:一個在 Llama 3.1 8B 上微調的防護模型,用於根據風險分類法對 LLM 輸入與回應進行分類。支援 128K 上下文長度且具備多語言能力。
- Prompt Guard:一個 279M 參數的基於 BERT 的分類器,旨在偵測提示注入與越獄嘗試。
技術規格與訓練
Llama 3.1 模型在超過 15 兆個 token 上進行訓練,使用自訂 GPU 叢集,總計 39.3M GPU 小時。訓練細目如下:
- 8B:1.46M GPU 小時
- 70B:7.0M GPU 小時
- 405B:30.84M GPU 小時
Llama 3.1 Instruct 模型針對指令遵循進行了最佳化,使用公開可得的資料集以及超過 2500 萬透過監督式微調 (SFT) 與人類回饋強化學習 (RLHF) 產生的合成範例。
記憶體與硬體需求
執行 Llama 3.1 需要大量 VRAM,且依模型大小與精度而異。
推論記憶體(檢查點載入)
| 模型大小 | FP16 | FP8 | INT4 |
|---|---|---|---|
| 8B | 16 GB | 8 GB | 4 GB |
| 70B | 140 GB | 70 GB | 35 GB |
| 405B | 810 GB | 405 GB | 203 GB |
KV 快取記憶體(FP16)
隨著上下文長度增加,KV 快取成為關鍵的記憶體因素。對於 128K token,記憶體需求如下:
- 8B:15.62 GB
- 70B:39.06 GB
- 405B:123.05 GB
訓練記憶體(估計)
| 模型大小 | 完全微調 | LoRA | Q-LoRA |
|---|---|---|---|
| 8B | 60 GB | 16 GB | 6 GB |
| 70B | 500 GB | 160 GB | 48 GB |
| 405B | 3.25 TB | 950 GB | 250 GB |
工具使用與提示
Llama 3.1 Instruct 模型已針對代理使用情境進行微調,並支援工具呼叫。
內建工具呼叫
在系統提示中加入 Environment: ipython 後,模型會啟用程式碼解譯器模式。它可以使用 <|python_tag|> 與 <|eom_id|> 分隔符產生 Python 程式碼。內建工具包括 brave_search、wolfram_alpha 與 code_interpreter。
自訂工具呼叫
模型支援自訂 JSON 函式呼叫。當工具被呼叫時,模型會以 JSON 格式輸出函式名稱與參數。工具的回應再透過 <|python_tag|> 分隔符傳回模型,以產生最終答案。
授權與合成資料
Llama 3.1 採用比前代更寬鬆的授權。主要變更在於明確允許使用模型輸出來改進其他 LLM。這使得合成資料生成與蒸餾成為可能,使 405B 模型在作為較小、專門化 LLM 的教師模型時特別有價值。
生態系統整合
Llama 3.1 透過 transformers >= 4.43.2 整合至 Hugging Face 生態系統。
- Quantization:官方提供的 FP8 量化權重可用於 405B 模型,使其能在 8xH100 GPU 上運行。Hugging Face 亦提供額外的 AWQ 與 GPTQ INT4 變體以進一步減少記憶體需求。
- Deployment:支援透過 Hugging Face Inference API(供 PRO 用戶使用)、Inference Endpoints,以及包括 AWS、Google Cloud、Microsoft Azure 與 DELL 在內的合作夥伴。