模型概述
模型特點
模型能力
使用案例
🚀 Transformers庫Llama 4模型介紹
Transformers庫集成了Llama 4系列模型,這些模型是原生多模態AI模型,支持文本和多模態交互,在文本和圖像理解方面表現出色。本項目為開發者提供了使用Llama 4模型的詳細指南,包括模型信息、使用方法、性能基準等內容。
🚀 快速開始
請確保你已安裝transformers v4.51.0
,若未安裝,可使用以下命令進行升級:
pip install -U transformers
以下是使用transformers
庫調用Llama-4-Maverick-17B-128E-Instruct
模型的示例代碼:
from transformers import AutoProcessor, Llama4ForConditionalGeneration
import torch
model_id = "meta-llama/Llama-4-Maverick-17B-128E-Instruct"
processor = AutoProcessor.from_pretrained(model_id)
model = Llama4ForConditionalGeneration.from_pretrained(
model_id,
attn_implementation="flex_attention",
device_map="auto",
torch_dtype=torch.bfloat16,
)
url1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
url2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/datasets/cat_style_layout.png"
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": url1},
{"type": "image", "url": url2},
{"type": "text", "text": "Can you describe how these two images are similar, and how they differ?"},
]
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=256,
)
response = processor.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])[0]
print(response)
print(outputs[0])
✨ 主要特性
- 原生多模態:支持文本和圖像輸入,實現多模態交互。
- 高效架構:採用混合專家(MoE)架構,在文本和圖像理解方面表現出色。
- 多語言支持:支持阿拉伯語、英語、法語、德語、印地語等多種語言。
- 高性能表現:在多個基準測試中超越前代模型,如MMLU、MATH、MBPP等。
📦 安裝指南
確保你已安裝transformers v4.51.0
,可使用以下命令進行安裝或升級:
pip install -U transformers
💻 使用示例
基礎用法
from transformers import AutoProcessor, Llama4ForConditionalGeneration
import torch
model_id = "meta-llama/Llama-4-Maverick-17B-128E-Instruct"
processor = AutoProcessor.from_pretrained(model_id)
model = Llama4ForConditionalGeneration.from_pretrained(
model_id,
attn_implementation="flex_attention",
device_map="auto",
torch_dtype=torch.bfloat16,
)
# 示例輸入
url1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
url2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/datasets/cat_style_layout.png"
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": url1},
{"type": "image", "url": url2},
{"type": "text", "text": "Can you describe how these two images are similar, and how they differ?"},
]
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=256,
)
response = processor.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])[0]
print(response)
print(outputs[0])
📚 詳細文檔
模型信息
- 模型開發者:Meta
- 模型架構:自迴歸語言模型,採用混合專家(MoE)架構,支持原生多模態。
- 支持語言:阿拉伯語、英語、法語、德語、印地語、印尼語、意大利語、葡萄牙語、西班牙語、他加祿語、泰語和越南語。
- 模型發佈日期:2025年4月5日
- 狀態:靜態模型,基於離線數據集訓練。未來可能會根據社區反饋發佈調優版本。
- 許可證:自定義商業許可證,Llama 4社區許可協議,詳情見此處。
屬性 | 詳情 |
---|---|
模型類型 | Llama 4 Scout (17Bx16E)、Llama 4 Maverick (17Bx128E) |
訓練數據 | 公開可用數據、授權數據以及Meta產品和服務中的信息,包括Instagram和Facebook上的公開帖子以及用戶與Meta AI的交互。更多信息見隱私中心 |
參數數量 | Llama 4 Scout:激活參數17B,總參數109B;Llama 4 Maverick:激活參數17B,總參數400B |
輸入模態 | 多語言文本和圖像 |
輸出模態 | 多語言文本和代碼 |
上下文長度 | Llama 4 Scout:10M;Llama 4 Maverick:1M |
令牌數量 | Llama 4 Scout:~40T;Llama 4 Maverick:~22T |
知識截止日期 | 2024年8月 |
預期用途
- 預期用例:適用於多語言商業和研究用途。指令調優模型可用於類助手聊天和視覺推理任務,預訓練模型可用於自然語言生成。在視覺方面,模型還針對視覺識別、圖像推理、圖像描述和回答圖像相關問題進行了優化。此外,模型支持利用其輸出改進其他模型,包括合成數據生成和蒸餾。
- 超出範圍:禁止用於違反適用法律法規(包括貿易合規法律)的任何方式,以及違反可接受使用政策和Llama 4社區許可協議的其他方式。禁止用於模型卡片中未明確支持的語言或功能。
硬件和軟件
- 訓練因素:使用自定義訓練庫、Meta定製的GPU集群和生產基礎設施進行預訓練。微調、量化、標註和評估也在生產基礎設施上進行。
- 訓練能耗:模型預訓練在H100 - 80GB(TDP為700W)類型硬件上累計使用了738萬GPU小時的計算資源。
- 訓練溫室氣體排放:基於位置的估計總溫室氣體排放量為1999噸CO2eq。自2020年以來,Meta在全球運營中保持淨零溫室氣體排放,並使用清潔能源匹配100%的電力消耗,因此基於市場的總溫室氣體排放量為0噸CO2eq。
模型名稱 | 訓練時間(GPU小時) | 訓練功耗(W) | 基於位置的訓練溫室氣體排放(噸CO2eq) | 基於市場的訓練溫室氣體排放(噸CO2eq) |
---|---|---|---|---|
Llama 4 Scout | 500萬 | 700 | 1354 | 0 |
Llama 4 Maverick | 238萬 | 700 | 645 | 0 |
總計 | 738萬 | - | 1999 | 0 |
基準測試
預訓練模型
類別 | 基準測試 | 樣本數 | 指標 | Llama 3.1 70B | Llama 3.1 405B | Llama 4 Scout | Llama 4 Maverick |
---|---|---|---|---|---|---|---|
推理與知識 | MMLU | 5 | macro_avg/acc_char | 79.3 | 85.2 | 79.6 | 85.5 |
MMLU-Pro | 5 | macro_avg/em | 53.8 | 61.6 | 58.2 | 62.9 | |
MATH | 4 | em_maj1@1 | 41.6 | 53.5 | 50.3 | 61.2 | |
代碼 | MBPP | 3 | pass@1 | 66.4 | 74.4 | 67.8 | 77.6 |
多語言 | TydiQA | 1 | average/f1 | 29.9 | 34.3 | 31.5 | 31.7 |
圖像 | ChartQA | 0 | relaxed_accuracy | 不支持多模態 | 83.4 | 85.3 | |
DocVQA | 0 | anls | 89.4 | 91.6 |
指令調優模型
類別 | 基準測試 | 樣本數 | 指標 | Llama 3.3 70B | Llama 3.1 405B | Llama 4 Scout | Llama 4 Maverick |
---|---|---|---|---|---|---|---|
圖像推理 | MMMU | 0 | 準確率 | 不支持多模態 | 69.4 | 73.4 | |
MMMU Pro^ | 0 | 準確率 | 52.2 | 59.6 | |||
MathVista | 0 | 準確率 | 70.7 | 73.7 | |||
圖像理解 | ChartQA | 0 | relaxed_accuracy | 88.8 | 90.0 | ||
DocVQA (測試) | 0 | anls | 94.4 | 94.4 | |||
編碼 | LiveCodeBench (2024年10月1日 - 2025年2月1日) | 0 | pass@1 | 33.3 | 27.7 | 32.8 | 43.4 |
推理與知識 | MMLU Pro | 0 | macro_avg/acc | 68.9 | 73.4 | 74.3 | 80.5 |
GPQA Diamond | 0 | 準確率 | 50.5 | 49.0 | 57.2 | 69.8 | |
多語言 | MGSM | 0 | average/em | 91.1 | 91.6 | 90.6 | 92.3 |
長上下文 | MTOB (半本書) eng->kgv/kgv->eng | - | chrF | 上下文窗口為128K | 42.2/36.6 | 54.0/46.4 | |
MTOB (整本書) eng->kgv/kgv->eng | - | chrF | 39.7/36.3 | 50.8/46.7 |
^MMMU Pro報告的數字是標準和視覺任務的平均值
量化
- Llama 4 Scout模型以BF16權重發布,可通過即時int4量化適配單個H100 GPU。
- Llama 4 Maverick模型以BF16和FP8量化權重發布,FP8量化權重可在單個H100 DGX主機上運行,同時保持模型質量。此外,還提供即時int4量化代碼,以減少性能損失。
保障措施
模型級微調
- 微調數據:採用多方面的數據收集方法,結合供應商提供的人工生成數據和合成數據,以降低潛在安全風險。開發了多個基於大語言模型(LLM)的分類器,用於精心選擇高質量的提示和響應,提高數據質量控制。
- 拒絕率:在Llama 3模型的基礎上,著重降低Llama 4模型對良性提示的拒絕率。在安全數據策略中納入邊界和對抗性提示,並修改安全數據響應以遵循語氣指南。
- 語氣:擴展了Llama 3模型在拒絕語氣方面的工作,使模型聽起來更自然。目標是去除說教和過度道德化的語言,並糾正格式問題,包括正確使用標題、列表、表格等。
- 系統提示:Llama 4模型更易於引導,響應可根據開發者需求進行定製。有效的系統提示可顯著提高大語言模型的性能,減少誤拒絕和常見的模板化或“說教式”語言模式,提高對話性和格式使用的適當性。
Llama 4系統保護
大語言模型(包括Llama 4)不應單獨部署,而應作為整體AI系統的一部分,並根據需要添加額外的防護措施。系統保護對於實現正確的有用性 - 安全性平衡、降低系統固有的安全和風險以及將模型或系統與外部工具集成至關重要。Meta為社區提供了系統級保護措施,如Llama Guard、Prompt Guard和Code Shield,開發者應將其與Llama模型或其他大語言模型一起部署。所有參考實現演示默認包含這些保障措施,開發者可直接受益於系統級安全。
評估
對Llama模型進行了常見用例和特定能力的評估。常見用例評估衡量了最常見應用(如聊天機器人、視覺問答)系統的安全風險。構建了專門的對抗性評估數據集,並評估了由Llama模型和Llama Guard 3組成的系統,以過濾輸入提示和輸出響應。建議為特定用例構建專門的評估數據集。Prompt Guard和Code Shield在相關應用中也可用。
社區
- 安全標準貢獻:積極參與開放聯盟,如AI聯盟、AI合作組織和MLCommons,為安全標準化和透明度做出貢獻。鼓勵社區採用MLCommons概念驗證評估等分類法,促進安全和內容評估的協作和透明度。
- 信任工具開源:信任工具開源,供社區使用,並廣泛分佈在包括雲服務提供商在內的生態系統合作伙伴中。鼓勵社區為Github倉庫做出貢獻。
- 影響贈款計劃:設立Llama影響贈款計劃,支持Meta Llama模型在教育、氣候和開放創新三個領域的社會有益應用。數百份申請中的20名決賽選手名單見此處。
- 社區反饋機制:建立了輸出報告機制和漏洞賞金計劃,藉助社區力量不斷改進Llama技術。
🔧 技術細節
訓練因素
使用自定義訓練庫、Meta定製的GPU集群和生產基礎設施進行預訓練。微調、量化、標註和評估也在生產基礎設施上進行。
訓練能耗
模型預訓練在H100 - 80GB(TDP為700W)類型硬件上累計使用了738萬GPU小時的計算資源。
訓練溫室氣體排放
基於位置的估計總溫室氣體排放量為1999噸CO2eq。自2020年以來,Meta在全球運營中保持淨零溫室氣體排放,並使用清潔能源匹配100%的電力消耗,因此基於市場的總溫室氣體排放量為0噸CO2eq。
方法論
確定訓練能耗和溫室氣體排放的方法見此處。由於Meta公開發布這些模型,其他用戶不會產生訓練能耗和溫室氣體排放。
📄 許可證
本模型使用自定義商業許可證,Llama 4社區許可協議,詳情見此處。
⚠️ 重要提示
- Llama 4模型的使用應遵守適用法律法規和Llama 4社區許可協議。
- 模型測試尚未覆蓋所有場景,使用前建議進行安全測試和調優。
- 模型可能會產生不準確或令人反感的響應,開發者應根據具體應用進行評估和處理。
💡 使用建議
- 參考系統提示模板,根據具體需求定製系統提示,以提高模型性能。
- 為特定用例構建專門的評估數據集,以評估模型在實際應用中的安全性和性能。
- 積極參與社區貢獻,共同推動Llama技術的發展和安全標準的制定。









