模型简介
模型特点
模型能力
使用案例
🚀 Transformers库中的Llama 4模型
Llama 4是一系列原生多模态AI模型,支持文本和多模态交互。它采用混合专家架构,在文本和图像理解方面表现卓越,适用于商业和研究领域。
🚀 快速开始
安装依赖
请确保你已安装 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])
✨ 主要特性
- 多语言支持:支持阿拉伯语、英语、法语、德语、印地语、印尼语、意大利语、葡萄牙语、西班牙语、他加禄语、泰语和越南语等多种语言。
- 多模态能力:原生支持文本和图像输入,可用于视觉识别、图像推理、图像描述等任务。
- 高性能表现:在多个基准测试中,相较于前代模型有显著提升,如在推理、代码生成、多语言理解和图像问答等任务上。
- 灵活的量化方案:提供不同的量化权重版本,如BF16、FP8和int4,可根据硬件资源进行选择。
- 安全保障:采用多方面的安全策略,包括模型微调、系统保护和评估机制,以降低潜在风险。
📦 安装指南
请确保你已安装 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社区许可协议,详情见:https://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSE |
问题反馈 | 有关模型的问题或建议,请参考Llama README。如需了解更多关于生成参数和在应用中使用Llama 4的技术信息,请访问这里 |
预期用途
- 预期用例:Llama 4适用于多语言的商业和研究用途。指令调优模型可用于类似助手的聊天和视觉推理任务,而预训练模型可用于自然语言生成。在视觉方面,Llama 4模型还针对视觉识别、图像推理、图像描述和回答关于图像的一般问题进行了优化。Llama 4社区许可证允许这些用例的使用。
- 超出范围:禁止以任何违反适用法律法规(包括贸易合规法律)的方式使用。禁止以可接受使用政策和Llama 4社区许可证禁止的任何其他方式使用。禁止在本模型卡片中未明确支持的语言或能力范围内使用。
硬件和软件
- 训练因素:使用自定义训练库、Meta的定制GPU集群和生产基础设施进行预训练。微调、量化、标注和评估也在生产基础设施上进行。
- 训练能源使用:模型预训练在H100 - 80GB(TDP为700W)类型的硬件上累计使用了738万个GPU小时的计算资源。训练时间是每个模型训练所需的总GPU时间,功耗是所用每个GPU设备的峰值功率容量,并根据电源使用效率进行了调整。
- 训练温室气体排放:估计基于位置的总温室气体排放量为1999吨CO2eq。自2020年以来,Meta在其全球运营中保持净零温室气体排放,并以100%的清洁能源匹配其电力使用;因此,基于市场的总温室气体排放量为0吨CO2eq。
训练数据
- 概述:Llama 4 Scout在约40万亿个多模态数据令牌上进行预训练,Llama 4 Maverick在约22万亿个多模态数据令牌上进行预训练。这些数据来自公开可用的、有许可证的数据以及Meta产品和服务中的信息,包括Instagram和Facebook上的公开帖子以及人们与Meta AI的交互。
- 数据新鲜度:预训练数据的截止日期为2024年8月。
基准测试
预训练模型
类别 | 基准测试 | 样本数 | 指标 | 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 | accuracy | 无多模态支持 | 69.4 | 73.4 | |
MMMU Pro^ | 0 | accuracy | 52.2 | 59.6 | |||
MathVista | 0 | accuracy | 70.7 | 73.7 | |||
图像理解 | ChartQA | 0 | relaxed_accuracy | 88.8 | 90.0 | ||
DocVQA (test) | 0 | anls | 94.4 | 94.4 | |||
编码 | LiveCodeBench (10/01/2024 - 02/01/2025) | 0 | pass@1 | 33.3 | 27.7 | 32.8 | 43.4 |
推理与知识 | MMLU Pro | 0 | macro_avg/em | 68.9 | 73.4 | 74.3 | 80.5 |
GPQA Diamond | 0 | accuracy | 50.5 | 49.0 | 57.2 | 69.8 | |
多语言 | MGSM | 0 | average/em | 91.1 | 91.6 | 90.6 | 92.3 |
长上下文 | MTOB (half book) eng -> kgv/kgv -> eng | - | chrF | 上下文窗口为128K | 42.2/36.6 | 54.0/46.4 | |
MTOB (full book) 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是一个更易于引导的模型,意味着可以轻松调整响应以满足特定的开发者需求。有效的系统提示可以显著提高大语言模型的性能。特别是,使用系统提示可以有效减少常见于LLM中的错误拒绝和模板化或“说教”语言模式。它们还可以提高对话性和适当格式的使用。
Llama 4系统保护
提供系统级的保护措施,如Llama Guard、Prompt Guard和Code Shield,开发者应将这些保护措施与Llama模型或其他LLM一起部署。所有参考实现演示默认包含这些保护措施,以便开发者可以直接受益于系统级的安全保障。
评估
- 常见用例评估:评估Llama模型在常见用例和特定能力方面的安全性。常见用例评估衡量了最常见构建的应用程序(包括聊天机器人、视觉问答)的系统安全风险。构建了专门的对抗性评估数据集,并评估了由Llama模型和Llama Guard 3组成的系统,以过滤输入提示和输出响应。
- 能力评估:衡量Llama模型特定能力固有的漏洞,为此设计了专门的基准测试,包括长上下文、多语言、编码或记忆等方面。
红队测试
定期进行红队测试,目标是通过对抗性提示发现风险,并利用这些经验教训改进基准测试和安全调优数据集。与关键风险领域的主题专家早期合作,了解模型可能对社会造成意外危害的方式。
关键风险
- CBRNE(化学、生物、放射、核和爆炸材料)帮助性:评估Llama 4在化学和生物武器扩散方面的风险,应用专家设计和其他有针对性的评估,以确定使用Llama 4是否会显著增加恶意行为者计划或实施使用此类武器的攻击的能力。
- 儿童安全:在模型中使用数据过滤等预训练方法作为减轻儿童安全风险的第一步。由专家团队评估训练后模型的儿童安全风险,并据此进行额外的模型微调。
- 网络攻击启用:调查Llama 4是否有足够的能力导致灾难性的威胁场景结果。进行威胁建模练习,以确定在关键攻击向量方面自动化操作或增强人类能力所需的特定模型能力。
社区
- 安全标准化:积极参与开放联盟,如AI Alliance、Partnership on AI和MLCommons,为安全标准化和透明度做出贡献。鼓励社区采用MLCommons概念验证评估等分类法,以促进安全和内容评估的协作和透明度。
- 开源工具:我们的信任工具已开源,供社区使用,并广泛分布在包括云服务提供商在内的生态系统合作伙伴中。鼓励社区为我们的Github仓库做出贡献。
- 影响赠款计划:设立了Llama影响赠款计划,以识别和支持Meta的Llama模型在教育、气候和开放创新三个类别中对社会有益的最有吸引力的应用。
- 资源支持:提供了一系列资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下不断改进Llama技术。
🔧 技术细节
模型架构
Llama 4模型是自回归语言模型,采用混合专家(MoE)架构,并集成早期融合技术以实现原生多模态能力。
训练数据
Llama 4 Scout在约40万亿个多模态数据令牌上进行预训练,Llama 4 Maverick在约22万亿个多模态数据令牌上进行预训练。这些数据来自公开可用的、有许可证的数据以及Meta产品和服务中的信息,包括Instagram和Facebook上的公开帖子以及人们与Meta AI的交互。
量化方案
提供不同的量化权重版本,如BF16、FP8和int4,可根据硬件资源进行选择。
安全策略
采用多方面的安全策略,包括模型微调、系统保护和评估机制,以降低潜在风险。
📄 许可证
本项目采用自定义商业许可证,Llama 4社区许可协议,详情见:https://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSE
考虑事项和限制
我们的AI基于言论自由的价值观,帮助人们使用我们的技术进行探索、辩论和创新。我们尊重人们的自主权,使他们能够选择如何体验、交互和构建AI。我们的AI促进思想的开放交流。
Llama 4旨在为所有人服务,并适用于广泛的用例。因此,它设计为对具有不同背景、经验和观点的人都可访问。Llama 4以用户的实际情况来对待他们及其需求,不插入不必要的判断,同时认识到即使在某些情况下可能看似有问题的内容,在其他情况下也可能有宝贵的用途。它尊重所有用户的自主权,特别是在推动创新和进步的自由思想和表达价值观方面。
Llama 4是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试尚未涵盖,也不可能涵盖所有场景。因此,与所有大语言模型一样,Llama 4的潜在输出无法提前预测,并且在某些情况下,模型可能会对用户提示产生不准确或其他令人反感的响应。因此,在部署Llama 4模型的任何应用程序之前,开发者应针对其特定的模型应用进行安全测试和调优。我们也鼓励开源社区将Llama用于研究目的,并构建解决新兴风险的先进工具。请参考可用资源,包括我们的《开发者使用指南:AI保护》、Llama保护解决方案和其他资源以了解更多信息。









