模型简介
模型特点
模型能力
使用案例
🚀 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技术的发展和安全标准的制定。









