Meta Llama 3 發布說明
模型變體與規格
Llama 3 提供四種主要配置,每種配置的上下文長度為 8K 令牌,且相容於消費級硬體:
- Meta-Llama-3-8B:基礎預訓練模型,設計用於高效部署。
- Meta-Llama-3-8B-Instruct:8B 模型的指令微調版本。
- Meta-Llama-3-70B:基礎預訓練模型,適用於大規模應用。
- Meta-Llama-3-70B-Instruct:70B 模型的指令微調版本。
此外,Meta 發布了 Llama Guard 2,這是一個針對安全性的模型,基於 Llama 3 8B 進行微調。它設計用於生產環境,能分類 LLM 提示與回應,以根據風險分類法偵測不安全內容。
相較於 Llama 2 的技術改進
Llama 3 引入多項架構與資料驅動的增強,以提升效能與效率:
擴充的分詞器與詞彙表
Llama 3 使用全新的分詞器,將詞彙表大小提升至 128,256 個令牌,較 Llama 2 的 32,000 大幅增加。此擴充可提升文字編碼效率,並可能增強多語言能力。此變更也導致小型模型的參數量從 7B 增至 8B,因為嵌入的輸入與輸出矩陣變大。
訓練規模與資料策展
模型在超過 15 兆令牌上進行訓練——約為前一代的 8 倍資料量——使用新混合的公開線上資料。訓練在兩個叢集上完成,使用了 24,000 顆 GPU。
架構最佳化
8B 模型現在實作了分組查詢注意力 (Grouped-Query Attention, GQA),在處理較長上下文時提升效率。
指令微調流程
Llama 3 Instruct 模型使用超過 1000 萬筆人工標註的資料樣本,針對對話進行優化。微調流程結合了監督式微調 (SFT)、拒絕抽樣、近端策略優化 (PPO) 與直接策略優化 (DPO)。
效能評估
根據 Open LLM Leaderboard,Llama 3 相較於前代顯著提升。Llama 3 8B 獲得 13.41 分,較 Llama 2 7B 的 8.72 提升。Llama 3 70B 獲得 26.37 分,超過 Llama 2 70B 的 18.25。
部署與整合
Llama 3 完全整合至 Hugging Face 生態系,提供多種部署與推論方式:
- 🤗 Transformers:相容於 4.40 版,支援
safetensors、透過bitsandbytes的 4 位元量化,以及 Flash Attention 2。Llama 3 模型相容於使用 CUDA 圖形的torch.compile(),可在推論時提供最高 4 倍的加速。 - Inference Endpoints:可透過 Text Generation Inference (TGI) 部署,支援持續批次處理與令牌串流等生產級功能。
- Cloud Providers:可透過 Google Cloud(Vertex AI 與 GKE)以及 Amazon SageMaker(AWS Jumpstart)進行一鍵部署。
微調與提示
提示格式
雖然基礎模型沒有特定格式,Instruct 版本需要嚴格的對話結構才能有效運作:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{{ system_prompt }}<|eot_id|><|start_header_id|>user<|end_header_id|>
{{ user_msg_1 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
{{ model_answer_1 }}<|eot_id|>
高效微調
Llama 3 可使用 🤗 TRL(Transformer Reinforcement Learning)函式庫在消費級 GPU 上進行微調。透過 4 位元量化與 QLoRA,8B 模型可在單顆 A10G GPU 上約四小時完成訓練。
授權條款
Llama 3 採用寬鬆授權,允許重新分發、微調與衍生作品。Llama 3 的新要求是明確歸屬:衍生模型的名稱必須以「Llama 3」開頭,且在衍生作品或服務中須註明「Built with Meta Llama 3」。