模型简介
模型特点
模型能力
使用案例
🚀 Llama 3.2-Vision模型
Llama 3.2-Vision是一系列多模态大语言模型,支持图像推理和生成任务。它在常见行业基准测试中表现出色,可用于视觉识别、图像推理、图像描述和问答等多种场景。
🚀 快速开始
使用transformers库
从transformers >= 4.45.0版本开始,你可以使用包含图像的对话消息进行推理。
确保通过以下命令更新transformers库:
pip install --upgrade transformers
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
model_id = "meta-llama/Llama-3.2-90B-Vision-Instruct"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
messages = [
{"role": "user", "content": [
{"type": "image"},
{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}
]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(
image,
input_text,
add_special_tokens=False,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
使用原始llama
代码库
请遵循仓库中的说明。
可以使用huggingface-cli
下载原始检查点:
huggingface-cli download meta-llama/Llama-3.2-90B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-90B-Vision-Instruct
✨ 主要特性
- 多模态处理:支持图像和文本输入,输出文本,适用于视觉识别、图像推理、图像描述和问答等任务。
- 高性能表现:在常见行业基准测试中,优于许多开源和闭源的多模态模型。
- 多语言支持:文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语;图像+文本应用仅支持英语。
- 灵活使用:开发者可根据Llama 3.2社区许可协议和可接受使用政策,对模型进行微调以支持更多语言。
📦 安装指南
安装transformers库
pip install --upgrade transformers
💻 使用示例
基础用法
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
model_id = "meta-llama/Llama-3.2-90B-Vision-Instruct"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
messages = [
{"role": "user", "content": [
{"type": "image"},
{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}
]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(
image,
input_text,
add_special_tokens=False,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
高级用法
可以根据具体需求调整模型参数,如max_new_tokens
、temperature
等,以获得不同的生成效果。
# 示例:调整max_new_tokens和temperature参数
output = model.generate(**inputs, max_new_tokens=50, temperature=0.7)
print(processor.decode(output[0]))
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | 基于Llama 3.1文本模型构建,使用优化的Transformer架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)。 |
训练数据 | 预训练使用60亿个图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过300万个合成生成的示例。 |
支持语言 | 文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语;图像+文本应用仅支持英语。 |
模型发布日期 | 2024年9月25日 |
状态 | 静态模型,未来可能发布改进版本。 |
许可证 | Llama 3.2社区许可证 |
反馈 | 可在模型README中查看反馈说明,更多技术信息可参考此处。 |
预期用途
预期用例
- 视觉问答和推理:理解图像并回答相关问题。
- 文档视觉问答:理解文档图像中的文本和布局,并回答问题。
- 图像描述:为图像生成描述性文本。
- 图像-文本检索:根据文本描述检索相关图像,或根据图像检索相关文本。
- 视觉定位:根据自然语言描述定位图像中的对象或区域。
Llama 3.2模型集合还支持利用其输出改进其他模型,如合成数据生成和蒸馏。
超出范围
- 违反适用法律法规(包括贸易合规法律)的使用。
- 违反可接受使用政策和Llama 3.2社区许可证的使用。
- 使用模型未明确支持的语言。
硬件和软件
训练因素
使用自定义训练库、Meta的自定义GPU集群和生产基础设施进行预训练。微调、标注和评估也在生产基础设施上进行。
训练能源使用
训练累计使用了202万个H100-80GB(TDP为700W)类型硬件的GPU小时计算资源。
训练温室气体排放
估计基于位置的总温室气体排放量为584吨CO2eq,基于市场的总温室气体排放量为0吨CO2eq。
模型 | 训练时间(GPU小时) | 训练功耗(W) | 基于位置的训练温室气体排放(吨CO2eq) | 基于市场的训练温室气体排放(吨CO2eq) |
---|---|---|---|---|
Llama 3.2-vision 11B | 阶段1预训练:14.7万H100小时;阶段2退火:9.8万H100小时;SFT:896 H100小时;RLHF:224 H100小时 | 700 | 71 | 0 |
Llama 3.2-vision 90B | 阶段1预训练:88.5万H100小时;阶段2退火:88.5万H100小时;SFT:3072 H100小时;RLHF:2048 H100小时 | 700 | 513 | 0 |
总计 | 202万 | 584 | 0 |
训练能源使用和温室气体排放的计算方法可参考此处。
训练数据
- 概述:预训练使用60亿个图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过300万个合成生成的示例。
- 数据时效性:预训练数据截止到2023年12月。
基准测试 - 图像推理
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|
图像理解 | VQAv2 (val) | 0 | 准确率 | 66.8 | 73.6 |
Text VQA (val) | 0 | 宽松准确率 | 73.1 | 73.5 | |
DocVQA (val, unseen) | 0 | ANLS | 62.3 | 70.7 | |
视觉推理 | MMMU (val, 0-shot) | 0 | 微观平均准确率 | 41.7 | 49.3 |
ChartQA (test) | 0 | 准确率 | 39.4 | 54.2 | |
InfographicsQA (val, unseen) | 0 | ANLS | 43.2 | 56.8 | |
AI2 Diagram (test) | 0 | 准确率 | 62.4 | 75.3 |
指令微调模型
模态 | 能力 | 基准测试 | 样本数 | 指标 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|---|
图像 | 大学水平问题和数学推理 | MMMU (val, CoT) | 0 | 微观平均准确率 | 50.7 | 60.3 |
MMMU-Pro, Standard (10 opts, test) | 0 | 准确率 | 33.0 | 45.2 | ||
MMMU-Pro, Vision (test) | 0 | 准确率 | 23.7 | 33.8 | ||
MathVista (testmini) | 0 | 准确率 | 51.5 | 57.3 | ||
图表和图表理解 | ChartQA (test, CoT) | 0 | 宽松准确率 | 83.4 | 85.5 | |
AI2 Diagram (test) | 0 | 准确率 | 91.1 | 92.3 | ||
DocVQA (test) | 0 | ANLS | 88.4 | 90.1 | ||
通用视觉问答 | VQAv2 (test) | 0 | 准确率 | 75.2 | 78.1 | |
文本 | 通用 | MMLU (CoT) | 0 | 宏观平均准确率 | 73.0 | 86.0 |
数学 | MATH (CoT) | 0 | 最终精确匹配率 | 51.9 | 68.0 | |
推理 | GPQA | 0 | 准确率 | 32.8 | 46.7 | |
多语言 | MGSM (CoT) | 0 | 精确匹配率 | 68.9 | 86.9 |
🔧 技术细节
模型架构
Llama 3.2-Vision基于Llama 3.1文本模型构建,使用优化的Transformer架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以符合人类对有用性和安全性的偏好。为支持图像识别任务,模型使用了一个单独训练的视觉适配器,将图像编码器表示输入到核心大语言模型中。
训练过程
预训练使用60亿个图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过300万个合成生成的示例。
📄 许可证
使用Llama 3.2受Llama 3.2社区许可证(自定义商业许可协议)的约束。
责任与安全
负责任的部署
- 方法:Llama是一种基础技术,旨在用于多种用例。Meta的Llama模型负责任部署的示例可在社区故事网页中找到。Meta的方法是构建最有用的模型,通过调整模型安全性以应对通用用例中的标准危害,使世界受益于技术力量。开发者可以根据自己的用例定制安全性,定义自己的政策,并在Llama系统中部署必要的保障措施。Llama 3.2的开发遵循了负责任使用指南中的最佳实践。
- Llama 3.2指令:安全微调的主要目标是为研究社区提供研究安全微调鲁棒性的有价值资源,为开发者提供一个现成、安全且强大的模型,以减少部署安全AI系统的工作量。实施了与Llama 3相同的安全缓解措施,更多信息可参考Llama 3 论文。
- Llama 3.2系统:大语言模型(包括Llama 3.2)不应单独部署,而应作为整体AI系统的一部分,并根据需要添加额外的安全保障措施。开发者在构建代理系统时应部署系统保障措施。保障措施对于实现正确的有用性-安全性平衡以及减轻系统固有的安全和风险至关重要。Meta提供了保障措施,如Llama Guard、Prompt Guard和Code Shield,开发者应与Llama模型或其他大语言模型一起部署这些保障措施。所有参考实现演示默认包含这些保障措施,使开发者能够立即受益于系统级安全。
新功能和用例
- 技术进步:Llama的发布通常会引入新功能,除了适用于所有生成式AI用例的最佳实践外,还需要特定的考虑因素。对于Llama 3.2也支持的先前版本的功能,请参考Llama 3.1模型卡片。
- 图像推理:Llama 3.2-Vision模型具有多模态(文本和图像)输入能力,支持图像推理应用。在负责任的发布过程中,采取了专门的措施,包括评估和缓解措施,以解决模型在图像中唯一识别个人的风险。与其他大语言模型风险一样,模型可能并不总是对对抗性提示具有鲁棒性,开发者应在其应用的上下文中评估识别和其他适用风险,并考虑部署Llama Guard 3-11B-Vision或其他适当的缓解措施来检测和减轻此类风险。
评估
- 大规模评估:构建了专门的对抗性评估数据集,并评估了由Llama模型和Purple Llama保障措施组成的系统,以过滤输入提示和输出响应。建议为特定用例构建专门的评估数据集。
- 红队测试:定期进行红队测试,通过对抗性提示发现风险,并将经验教训用于改进基准测试和安全调优数据集。与关键风险领域的专家合作,了解这些现实世界危害的性质以及此类模型可能对社会造成的意外危害。根据这些对话,为红队设定了一组对抗性目标,如提取有害信息或重新编程模型以潜在地造成危害。红队由网络安全、对抗性机器学习、负责任AI和诚信方面的专家以及具有特定地理市场诚信问题背景的多语言内容专家组成。
关键风险
- CBRNE(化学、生物、放射、核和爆炸武器):对于Llama 3.1,进行了提升测试,以评估使用Llama 3.1模型是否会显著增加恶意行为者使用此类武器策划或实施攻击的能力。对于Llama 3.2-Vision模型,进行了额外的针对性评估,发现与Llama 3.1相比,由于其增加的图像理解能力,Llama 3.2不太可能增加科学能力。
- 儿童安全:使用专家团队进行儿童安全风险评估,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调提供必要和适当的风险缓解措施。利用这些专家红队测试会话,在Llama 3模型开发过程中扩展了评估基准的覆盖范围。对于Llama 3,使用基于目标的方法进行了新的深入会话,以评估模型在多个攻击向量上的风险,包括Llama 3训练的额外语言。还与内容专家合作进行红队测试,评估潜在违规内容,同时考虑特定市场的细微差别或经验。
- 网络攻击:对于Llama 3.1 405B,进行了网络攻击提升研究,以调查大语言模型是否能在技能水平和速度方面增强人类在黑客任务中的能力。攻击自动化研究专注于评估大语言模型作为自主代理在网络攻击操作中的能力,特别是在勒索软件攻击的背景下。此评估与之前将大语言模型视为交互式助手的研究不同。主要目标是评估这些模型是否能在没有人类干预的情况下有效执行复杂的网络攻击。由于Llama 3.2的视觉能力通常与网络提升无关,因此认为对Llama 3.1进行的测试也适用于Llama 3.2。
社区
- 行业合作:生成式AI安全需要专业知识和工具,Meta相信开放社区的力量可以加速其发展。Meta是开放联盟的积极成员,包括AI联盟、AI合作组织和MLCommons,积极为安全标准化和透明度做出贡献。鼓励社区采用MLCommons概念验证评估等分类法,以促进安全和内容评估的合作和透明度。Meta的Purple Llama工具已开源供社区使用,并广泛分发给包括云服务提供商在内的生态系统合作伙伴。鼓励社区为Github仓库做出贡献。
- 资助:设立了Llama影响资助计划,以识别和支持Meta的Llama模型在教育、气候和开放创新三个类别中对社会有益的最有吸引力的应用。数百份申请中的20名决赛选手可在此处找到。
- 报告:建立了一套资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下不断改进Llama技术。
伦理考虑和局限性
价值观
Llama 3.2的核心价值观是开放性、包容性和有用性。它旨在为所有人服务,并适用于广泛的用例。因此,它设计为对不同背景、经验和观点的人都可访问。Llama 3.2尊重所有用户的尊严和自主权,特别是在推动创新和进步的自由思想和表达价值观方面,它以用户的实际需求为导向,不插入不必要的判断或规范性,同时认识到即使在某些情况下可能看起来有问题的内容,在其他情况下也可能有价值。
测试
Llama 3.2是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试未能涵盖所有场景,也不可能涵盖所有场景。因此,与所有大语言模型一样,Llama 3.2的潜在输出无法提前预测,模型在某些情况下可能会产生不准确、有偏见或其他令人反感的响应。因此,在部署Llama 3.2模型的任何应用之前,开发者应针对其特定应用进行安全测试和调整。请参考可用资源,包括负责任使用指南、信任和安全解决方案和其他资源,以了解更多关于负责任开发的信息。








