模型简介
模型特点
模型能力
使用案例
🚀 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社区许可协议可在此处查看。









