模型概述
模型特點
模型能力
使用案例
🚀 Llama-4-Maverick-17B-128E-Instruct-FP8
Llama 4系列模型是原生多模態AI模型,支持文本和多模態體驗。本模型Llama-4-Maverick-17B-128E-Instruct-FP8在文本和圖像理解方面具有出色性能,可用於商業和研究等多種場景。
🚀 快速開始
本模型可在vLLM、Red Hat Enterprise Linux AI和Openshift AI等平臺高效部署,以下是具體部署示例。
✨ 主要特性
- 原生多模態:Llama 4系列模型是原生多模態AI模型,支持文本和圖像等多模態輸入輸出。
- 混合專家架構:採用混合專家(MoE)架構,在文本和圖像理解方面提供行業領先的性能。
- 多語言支持:支持阿拉伯語、英語、法語、德語、印地語、印尼語、意大利語、葡萄牙語、西班牙語、他加祿語、泰語和越南語等多種語言。
📦 安裝指南
使用本模型前,請確保安裝了transformers
庫的v4.51.0
版本,可使用以下命令進行安裝或升級:
pip install -U transformers
💻 使用示例
基礎用法
from transformers import AutoTokenizer, Llama4ForConditionalGeneration
import torch
model_id = "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt", return_dict=True)
model = Llama4ForConditionalGeneration.from_pretrained(
model_id,
tp_plan="auto",
torch_dtype="auto",
)
outputs = model.generate(**inputs.to(model.device), max_new_tokens=100)
outputs = tokenizer.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])
print(outputs[0])
📚 詳細文檔
模型信息
基於Llama構建:Llama 4系列模型是原生多模態AI模型,支持文本和多模態體驗。本系列推出了兩個高效模型,Llama 4 Scout(170億參數,16個專家)和Llama 4 Maverick(170億參數,128個專家)。
模型開發者:Meta
模型架構:Llama 4模型是自迴歸語言模型,採用混合專家(MoE)架構,並結合早期融合實現原生多模態。
屬性 | 詳情 |
---|---|
模型名稱 | 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月 |
支持語言 | 阿拉伯語、英語、法語、德語、印地語、印尼語、意大利語、葡萄牙語、西班牙語、他加祿語、泰語和越南語 |
模型發佈日期 | 2025年4月5日 |
狀態 | 這是一個基於離線數據集訓練的靜態模型。隨著根據社區反饋改進模型行為,未來可能會發布調優後的版本 |
許可證 | 自定義商業許可證,Llama 4社區許可協議可在此處查看 |
反饋渠道 | 關於模型的反饋或評論說明可在Llama README中找到。有關生成參數和在應用程序中使用Llama 4的更多技術信息,請訪問此處 |
部署
在vLLM上部署
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Llama-4-Maverick-17B-128E-Instruct-FP8"
number_gpus = 4
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
prompt = "Give me a short introduction to large language model."
llm = LLM(model=model_id, tensor_parallel_size=number_gpus)
outputs = llm.generate(prompt, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
vLLM還支持OpenAI兼容服務,更多詳情可查看文檔。
在Red Hat AI推理服務器上部署
podman run --rm -it --device nvidia.com/gpu=all -p 8000:8000 \
--ipc=host \
--env "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
--env "HF_HUB_OFFLINE=0" -v ~/.cache/vllm:/home/vllm/.cache \
--name=vllm \
registry.access.redhat.com/rhaiis/rh-vllm-cuda \
vllm serve \
--tensor-parallel-size 8 \
--max-model-len 32768 \
--enforce-eager --model RedHatAI/Llama-4-Maverick-17B-128E-Instruct-FP8
更多詳情可查看Red Hat AI推理服務器文檔。
在Red Hat Enterprise Linux AI上部署
# 從Red Hat Registry通過docker下載模型
# 注意:除非指定--model-dir,否則模型將下載到~/.cache/instructlab/models
ilab model download --repository docker://registry.redhat.io/rhelai1/llama-4-maverick-17b-128e-instruct-fp8:1.5
# 通過ilab服務模型
ilab model serve --model-path ~/.cache/instructlab/models/llama-4-maverick-17b-128e-instruct-fp8
# 與模型聊天
ilab model chat --model ~/.cache/instructlab/models/llama-4-maverick-17b-128e-instruct-fp8
更多詳情可查看Red Hat Enterprise Linux AI文檔。
在Red Hat Openshift AI上部署
# 使用ServingRuntime設置vllm服務器
# 保存為:vllm-servingruntime.yaml
apiVersion: serving.kserve.io/v1alpha1
kind: ServingRuntime
metadata:
name: vllm-cuda-runtime # 可選更改:設置唯一名稱
annotations:
openshift.io/display-name: vLLM NVIDIA GPU ServingRuntime for KServe
opendatahub.io/recommended-accelerators: '["nvidia.com/gpu"]'
labels:
opendatahub.io/dashboard: 'true'
spec:
annotations:
prometheus.io/port: '8080'
prometheus.io/path: '/metrics'
multiModel: false
supportedModelFormats:
- autoSelect: true
name: vLLM
containers:
- name: kserve-container
image: quay.io/modh/vllm:rhoai-2.20-cuda # 根據需要更改。如果是AMD:quay.io/modh/vllm:rhoai-2.20-rocm
command:
- python
- -m
- vllm.entrypoints.openai.api_server
args:
- "--port=8080"
- "--model=/mnt/models"
- "--served-model-name={{.Name}}"
env:
- name: HF_HOME
value: /tmp/hf_home
ports:
- containerPort: 8080
protocol: TCP
# 將模型附加到vllm服務器。這是一個NVIDIA模板
# 保存為:inferenceservice.yaml
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
annotations:
openshift.io/display-name: Llama-4-Maverick-17B-128E-Instruct-FP8 # 可選更改
serving.kserve.io/deploymentMode: RawDeployment
name: Llama-4-Maverick-17B-128E-Instruct-FP8 # 指定模型名稱。此值將用於在有效負載中調用模型
labels:
opendatahub.io/dashboard: 'true'
spec:
predictor:
maxReplicas: 1
minReplicas: 1
model:
modelFormat:
name: vLLM
name: ''
resources:
limits:
cpu: '2' # 這是特定於模型的
memory: 8Gi # 這是特定於模型的
nvidia.com/gpu: '1' # 這是特定於加速器的
requests: # 此塊同樣適用
cpu: '1'
memory: 4Gi
nvidia.com/gpu: '1'
runtime: vllm-cuda-runtime # 必須與上面的ServingRuntime名稱匹配
storageUri: oci://registry.redhat.io/rhelai1/modelcar-llama-4-maverick-17b-128e-instruct-fp8:1.5
tolerations:
- effect: NoSchedule
key: nvidia.com/gpu
operator: Exists
# 首先確保位於要部署模型的項目中
# oc project <項目名稱>
# 應用兩個資源以運行模型
# 應用ServingRuntime
oc apply -f vllm-servingruntime.yaml
# 應用InferenceService
oc apply -f qwen-inferenceservice.yaml
# 替換下面的<推理服務名稱>和<集群入口域名>:
# - 如果不確定,請運行`oc get inferenceservice`查找URL
# 使用curl調用服務器:
curl https://<推理服務名稱>-predictor-default.<域名>/v1/chat/completions
-H "Content-Type: application/json" \
-d '{
"model": "Llama-4-Maverick-17B-128E-Instruct-FP8",
"stream": true,
"stream_options": {
"include_usage": true
},
"max_tokens": 1,
"messages": [
{
"role": "user",
"content": "How can a bee fly when its wings are so small?"
}
]
}'
更多詳情可查看Red Hat Openshift AI文檔。
預期用途
預期用例:Llama 4適用於多種語言的商業和研究用途。指令調優模型適用於類似助手的聊天和視覺推理任務,而預訓練模型可用於自然語言生成。在視覺方面,Llama 4模型還針對視覺識別、圖像推理、圖像描述和回答有關圖像的一般問題進行了優化。Llama 4模型系列還支持利用其模型的輸出來改進其他模型,包括合成數據生成和蒸餾。Llama 4社區許可證允許這些用例。
超出範圍的使用:以任何違反適用法律法規(包括貿易合規法律)的方式使用。以可接受使用政策和Llama 4社區許可證禁止的任何其他方式使用。在本模型卡片中未明確提及支持的語言或功能中使用。
注意事項:
- Llama 4在比支持的12種語言更廣泛的語言集合上進行了訓練(預訓練包括總共200種語言)。開發者可以對Llama 4模型進行微調以用於支持的12種語言之外的語言,前提是他們遵守Llama 4社區許可證和可接受使用政策。開發者有責任確保他們在其他語言中使用Llama 4的方式是安全和負責任的。
- Llama 4已針對最多5張輸入圖像的圖像理解進行了測試。如果利用超出此範圍的額外圖像理解功能,開發者有責任確保他們的部署能夠降低風險,並應針對其特定應用進行額外的測試和調優。
硬件和軟件
訓練因素:我們使用自定義訓練庫、Meta定製的GPU集群和生產基礎設施進行預訓練。微調、量化、註釋和評估也在生產基礎設施上進行。
訓練能源使用:模型預訓練在H100 - 80GB(TDP為700W)類型的硬件上累計使用了738萬 GPU小時的計算量,如下表所示。訓練時間是每個模型訓練所需的總GPU時間,功耗是所用每個GPU設備的峰值功率容量,並根據功率使用效率進行了調整。
模型名稱 | 訓練時間(GPU小時) | 訓練功耗(W) | 基於位置的訓練溫室氣體排放(噸CO2eq) | 基於市場的訓練溫室氣體排放(噸CO2eq) |
---|---|---|---|---|
Llama 4 Scout | 500萬 | 700 | 1354 | 0 |
Llama 4 Maverick | 238萬 | 700 | 645 | 0 |
總計 | 738萬 | - | 1999 | 0 |
確定訓練能源使用和溫室氣體排放的方法可在此處找到。由於Meta正在公開發布這些模型,其他人不會產生訓練能源使用和溫室氣體排放。
訓練數據
概述:Llama 4 Scout在約40萬億個令牌的多模態數據上進行預訓練,Llama 4 Maverick在約22萬億個令牌的多模態數據上進行預訓練。這些數據來自公開可用數據、授權數據以及Meta產品和服務中的信息,包括Instagram和Facebook上的公開帖子以及用戶與Meta AI的交互。
數據新鮮度:預訓練數據的截止日期為2024年8月。
基準測試
在本節中,我們報告了Llama 4相對於我們之前模型的基準測試結果。我們提供了量化檢查點以實現部署靈活性,但所有報告的評估和測試均在bf16模型上進行。
預訓練模型
類別 | 基準測試 | 樣本數 | 指標 | 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量化的代碼,以儘量減少性能下降。
保障措施
作為我們發佈方法的一部分,我們遵循三管齊下的策略來管理風險:
- 使開發者能夠為其目標受眾和Llama支持的用例部署有用、安全和靈活的體驗。
- 保護開發者免受旨在利用Llama功能可能造成傷害的惡意用戶的侵害。
- 為社區提供保護,幫助防止我們的模型被濫用。
Llama是一種基礎技術,旨在用於各種用例;關於Meta的Llama模型如何部署的示例可以在我們的社區故事網頁上找到。我們的方法是構建最有用的模型,使世界能夠從這項技術中受益,通過使我們的模型的安全性與一組標準風險保持一致。然後,開發者可以根據自己的用例定製安全性,定義自己的政策並部署帶有必要保障措施的模型。Llama 4是按照我們的開發者使用指南:AI保護中概述的最佳實踐開發的。
模型級微調
進行安全微調的主要目標是為各種應用為開發者提供一個隨時可用、安全且強大的模型,減少部署安全AI系統所需的工作量。此外,這項工作為研究社區提供了一個有價值的資源,用於研究安全微調的魯棒性。
微調數據:我們採用多方面的數據收集方法,將供應商提供的人工生成數據與合成數據相結合,以減輕潛在的安全風險。我們開發了許多基於大語言模型(LLM)的分類器,使我們能夠精心選擇高質量的提示和響應,加強數據質量控制。
拒絕率:在我們從Llama 3模型開始的工作基礎上,我們非常重視降低Llama 4模型對良性提示的拒絕率。我們在安全數據策略中包括了臨界和對抗性提示,並修改了我們的安全數據響應以遵循語氣指南。
語氣:我們擴展了在Llama 3上關於拒絕語氣的工作,使模型聽起來更自然。我們旨在去除說教和過於道德化的語言,並糾正格式問題,包括正確使用標題、列表、表格等。
為了實現這一目標,我們還針對系統提示的可引導性和指令遵循進行了改進,這意味著模型更能夠採用指定的語氣。所有這些都有助於整體上提供更具對話性和洞察力的體驗。
系統提示:Llama 4是一個更易於引導的模型,這意味著響應可以很容易地根據特定的開發者結果進行定製。有效的系統提示可以顯著提高大語言模型的性能。特別是,我們發現使用系統提示可以有效地減少錯誤拒絕和大語言模型中常見的模板化或“說教式”語言模式。它們還可以提高對話性和適當格式的使用。
考慮下面的提示作為一個基本模板,開發者可能希望進一步定製以滿足我們的Llama 4模型的特定需求或用例。
系統提示 |
---|
You are an expert conversa |
🔧 技術細節
訓練相關
- 訓練庫:使用自定義訓練庫。
- 訓練集群:Meta定製的GPU集群。
- 基礎設施:生產基礎設施用於預訓練、微調、量化、註釋和評估。
能源使用與排放
- 模型預訓練在H100 - 80GB(TDP為700W)類型的硬件上累計使用了738萬GPU小時的計算量。
- 基於位置的訓練溫室氣體排放總計1999噸CO2eq,基於市場的訓練溫室氣體排放為0噸CO2eq。
量化技術
- Llama 4 Scout可通過即時int4量化適應單個H100 GPU。
- Llama 4 Maverick以BF16和FP8量化權重發布,FP8量化權重可在單個H100 DGX主機上運行並保持質量。
📄 許可證
本模型使用自定義商業許可證,Llama 4社區許可協議可在此處查看。









