模型简介
模型特点
模型能力
使用案例
🚀 Llama 3.2-Vision模型
Llama 3.2-Vision是Meta推出的多模态大语言模型集合,包含11B和90B两种规模。它能处理文本和图像输入,输出文本,在视觉识别、图像推理、图像描述和回答图像相关问题等任务上表现出色,优于许多开源和闭源多模态模型。
🚀 快速开始
本仓库包含两个版本的Llama-3.2-11B-Vision-Instruct,可分别与transformers
库和原始llama
代码库配合使用。
使用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-11B-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, 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-11B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-11B-Vision-Instruct
✨ 主要特性
- 多模态处理能力:支持文本和图像输入,输出文本,可用于视觉问答、图像描述等多种任务。
- 多种语言支持:文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语;图像+文本应用仅支持英语。开发者可根据许可对其他语言进行微调。
- 模型家族优势:所有模型版本均使用分组查询注意力(GQA),提高推理可扩展性。
- 性能出色:在多个标准自动基准测试中表现优异,优于许多现有模型。
📦 安装指南
使用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-11B-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, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
高级用法
可根据具体需求,调整模型参数和输入消息,以实现更复杂的任务。例如,使用不同的图像和文本输入,调整max_new_tokens
等参数。
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | 基于Llama 3.1文本模型构建,使用优化的Transformer架构,微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)。支持图像识别任务的Vision Adapter与预训练的Llama 3.1语言模型集成。 |
训练数据 | 预训练使用60亿个图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过300万个合成生成的示例。 |
参数规模 | 11B(10.6)和90B(88.8) |
输入模态 | 文本 + 图像 |
输出模态 | 文本 |
上下文长度 | 128k |
GQA | 是 |
数据量 | 60亿个(图像,文本)对 |
知识截止日期 | 2023年12月 |
支持语言 | 文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语;图像+文本应用仅支持英语。 |
模型发布日期 | 2024年9月25日 |
状态 | 基于离线数据集训练的静态模型,未来可能发布改进版本。 |
许可证 | Llama 3.2社区许可证 |
反馈渠道 | 可在模型README中找到提供反馈的说明。技术信息可参考此处。 |
预期用途
预期用例
- 视觉问答和推理:理解图像并回答相关问题。
- 文档视觉问答:理解文档的文本和布局,并回答相关问题。
- 图像描述:为图像生成描述性文本。
- 图像-文本检索:根据图像或文本描述进行检索。
- 视觉定位:根据自然语言描述定位图像中的对象或区域。
Llama 3.2模型集合还支持利用其输出改进其他模型,如合成数据生成和蒸馏。
超出范围的使用
- 违反适用法律法规(包括贸易合规法律)的使用。
- 违反可接受使用政策和Llama 3.2社区许可证的使用。
- 使用模型卡片中未明确支持的语言。
硬件和软件
训练因素
使用自定义训练库、Meta的自定义GPU集群和生产基础设施进行预训练,微调、标注和评估也在生产基础设施上进行。
训练能源使用
训练共使用了202万个H100-80GB GPU小时的计算资源,功率为700W。
训练温室气体排放
估计基于位置的总温室气体排放量为584吨CO2eq,由于Meta自2020年以来实现了全球运营的净零温室气体排放,并100%使用可再生能源匹配电力消耗,因此基于市场的总温室气体排放量为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(验证集) | 0 | 准确率 | 66.8 | 73.6 |
文本VQA(验证集) | 0 | 宽松准确率 | 73.1 | 73.5 | |
DocVQA(验证集,未见) | 0 | ANLS | 62.3 | 70.7 | |
视觉推理 | MMMU(验证集,零样本) | 0 | 微平均准确率 | 41.7 | 49.3 |
ChartQA(测试集) | 0 | 准确率 | 39.4 | 54.2 | |
InfographicsQA(验证集,未见) | 0 | ANLS | 43.2 | 56.8 | |
AI2 Diagram(测试集) | 0 | 准确率 | 62.4 | 75.3 |
指令微调模型
模态 | 能力 | 基准测试 | 样本数 | 指标 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|---|
图像 | 大学水平问题和数学推理 | MMMU(验证集,思维链) | 0 | 微平均准确率 | 50.7 | 60.3 |
MMMU-Pro,标准(10选项,测试集) | 0 | 准确率 | 33.0 | 45.2 | ||
MMMU-Pro,视觉(测试集) | 0 | 准确率 | 23.7 | 33.8 | ||
MathVista(测试集mini) | 0 | 准确率 | 51.5 | 57.3 | ||
图表和图表理解 | ChartQA(测试集,思维链) | 0 | 宽松准确率 | 83.4 | 85.5 | |
AI2 Diagram(测试集) | 0 | 准确率 | 91.1 | 92.3 | ||
DocVQA(测试集) | 0 | ANLS | 88.4 | 90.1 | ||
通用视觉问答 | VQAv2(测试集) | 0 | 准确率 | 75.2 | 78.1 | |
文本 | 通用 | MMLU(思维链) | 0 | 宏平均/准确率 | 73.0 | 86.0 |
数学 | MATH(思维链) | 0 | 最终精确匹配 | 51.9 | 68.0 | |
推理 | GPQA | 0 | 准确率 | 32.8 | 46.7 | |
多语言 | MGSM(思维链) | 0 | 精确匹配 | 68.9 | 86.9 |
责任与安全
负责任的部署
- 方法:Llama是一种基础技术,可用于多种用例。Meta的Llama模型负责任部署的示例可在社区故事网页中找到。Meta的方法是构建最有用的模型,通过使模型安全与通用用例对齐,解决一系列标准危害。开发者可根据自己的用例定制安全策略,并在其Llama系统中部署必要的保障措施。Llama 3.2的开发遵循了负责任使用指南中的最佳实践。
- Llama 3.2 Instruct:安全微调的主要目标是为研究社区提供研究安全微调鲁棒性的有价值资源,为开发者提供一个现成的、安全且强大的模型,以减少部署安全AI系统的工作量。实施了与Llama 3相同的安全缓解措施,更多信息可参考Llama 3 论文。采用多方面的数据收集方法,结合人类生成数据和合成数据,开发了许多基于大语言模型(LLM)的分类器,以选择高质量的提示和响应,提高数据质量控制。注重模型对良性提示的拒绝以及拒绝语气,在安全数据策略中包括边界和对抗性提示,并修改安全数据响应以遵循语气指南。
- Llama 3.2系统:大型语言模型,包括Llama 3.2,不应单独部署,而应作为整体AI系统的一部分,根据需要添加额外的安全护栏。开发者在构建代理系统时应部署系统保障措施。保障措施是实现正确的有用性 - 安全性对齐以及减轻系统和模型与外部工具集成所固有的安全和风险的关键。Meta提供了保障措施,包括Llama Guard、Prompt Guard和Code Shield,开发者应与Llama模型或其他LLM一起部署。所有参考实现演示默认包含这些保障措施。
新功能和用例
- 技术进步:Llama的发布通常会引入新功能,除了适用于所有生成式AI用例的最佳实践外,还需要特定的考虑因素。对于Llama 3.2也支持的先前版本功能,请参考Llama 3.1模型卡片。
- 图像推理:Llama 3.2-Vision模型具有多模态(文本和图像)输入功能,可实现图像推理应用。在负责任的发布过程中,采取了专门的措施,包括评估和缓解措施,以解决模型在图像中唯一识别个人的风险。与其他LLM风险一样,模型可能并不总是对对抗性提示具有鲁棒性,开发者应在其应用的上下文中评估识别和其他适用风险,并考虑部署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.1 405B,进行了网络攻击提升研究,调查了LLM是否可以在技能水平和速度方面增强人类在黑客任务中的能力。攻击自动化研究专注于评估LLM作为自主代理在网络攻击行动中的能力,特别是在勒索软件攻击的背景下。由于Llama 3.2的视觉能力通常与网络提升无关,因此认为对Llama 3.1进行的测试也适用于Llama 3.2。
社区
- 行业合作:生成式AI安全需要专业知识和工具,Meta相信开放社区的力量可以加速其发展。Meta是AI Alliance、Partnership on AI和MLCommons等开放联盟的积极成员,积极参与安全标准化和透明度工作。鼓励社区采用MLCommons概念验证评估等分类法,以促进安全和内容评估的合作和透明度。Purple Llama工具已开源供社区使用,并广泛分布在包括云服务提供商在内的生态系统合作伙伴中。鼓励社区为Github仓库做出贡献。
- 资助计划:设立了Llama影响资助计划,以识别和支持Meta的Llama模型在教育、气候和开放创新三个类别中的最有前景的应用。数百份申请中的20名决赛选手可在此处找到。
- 报告机制:建立了一套资源,包括输出报告机制和漏洞赏金计划,以借助社区的帮助不断改进Llama技术。
伦理考虑和局限性
- 价值观:Llama 3.2的核心价值观是开放性、包容性和有用性。旨在为所有人服务,适用于广泛的用例。设计上易于不同背景、经验和观点的人使用。尊重所有用户的尊严和自主性,特别是自由思考和表达的价值观,这些价值观推动创新和进步。
- 测试:Llama 3.2是一项新技术,与任何新技术一样,使用时存在风险。到目前为止进行的测试未能涵盖所有场景。因此,与所有LLM一样,Llama 3.2的潜在输出无法提前预测,模型在某些情况下可能会产生不准确、有偏见或其他令人反感的响应。在部署Llama 3.2模型的任何应用之前,开发者应针对其特定应用进行安全测试和微调。更多关于负责任开发的信息,请参考负责任使用指南、信任与安全解决方案和其他资源。
🔧 技术细节
模型架构
Llama 3.2-Vision基于Llama 3.1文本模型构建,使用优化的Transformer架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以与人类的有用性和安全性偏好对齐。支持图像识别任务的Vision Adapter由一系列交叉注意力层组成,将图像编码器表示输入到核心大语言模型中。
训练过程
预训练使用60亿个图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过300万个合成生成的示例。训练使用自定义训练库、Meta的自定义GPU集群和生产基础设施进行。
安全机制
实施了多种安全机制,包括安全微调、使用基于大语言模型的分类器选择高质量数据、注重模型拒绝和拒绝语气、提供系统保障措施等。
📄 许可证
使用Llama 3.2受Llama 3.2社区许可证(自定义商业许可协议)的约束。
⚠️ 重要提示
使用Llama 3.2时,请遵守适用法律法规和可接受使用政策,不得用于违反法律或本许可证的用途。对于图像+文本应用,仅支持英语。
💡 使用建议
在部署Llama 3.2模型的应用之前,建议进行充分的安全测试和微调,以确保模型的输出符合预期和安全要求。可参考Meta提供的负责任使用指南和信任与安全解决方案。








