模型简介
模型特点
模型能力
使用案例
🚀 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-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,
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-11B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-11B-Vision-Instruct
✨ 主要特性
- 多模态处理:支持图像和文本输入,输出文本,可用于视觉问答、图像描述等多种任务。
- 高性能表现:在常见行业基准测试中,优于许多开源和闭源的多模态模型。
- 多语言支持:文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
📦 安装指南
使用 transformers
库
确保通过以下命令更新 transformers
库:
pip install --upgrade transformers
使用 llama
代码库
请遵循 仓库 中的说明进行操作。
你可以使用 huggingface-cli
下载原始检查点:
huggingface-cli download meta-llama/Llama-3.2-11B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-11B-Vision-Instruct
💻 使用示例
基础用法
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,
add_special_tokens=False,
return_tensors="pt"
).to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
高级用法
目前文档中未提供高级用法示例,你可以参考相关文档或根据需求进行探索。
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | 基于 Llama 3.1 文本模型构建,使用优化的变压器架构,微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)。 |
训练数据 | 预训练使用 60 亿图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过 300 万个合成生成的示例。 |
支持语言 | 文本任务支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语;图像 + 文本应用仅支持英语。 |
模型发布日期 | 2024 年 9 月 25 日 |
状态 | 静态模型,未来可能会发布改进版本。 |
许可证 | Llama 3.2 社区许可证 |
反馈 | 可参考模型 README 提供反馈,技术信息可参考 此处。 |
预期用途
Llama 3.2-Vision 适用于商业和研究用途,具体用例包括:
- 视觉问答和推理:回答关于图像的问题。
- 文档视觉问答:理解文档的文本和布局,并回答相关问题。
- 图像描述:为图像生成描述性文本。
- 图像 - 文本检索:根据图像或文本描述进行检索。
- 视觉定位:根据自然语言描述定位图像中的对象或区域。
硬件和软件
- 训练因素:使用自定义训练库、Meta 的自定义 GPU 集群和生产基础设施进行预训练,微调、标注和评估也在生产基础设施上进行。
- 训练能源使用:累计使用 202 万 GPU 小时的 H100-80GB(TDP 为 700W)类型硬件进行训练。
- 训练温室气体排放:估计总基于位置的温室气体排放量为 584 吨 CO2eq,基于市场的温室气体排放量为 0 吨 CO2eq。
训练数据
- 概述:预训练使用 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 是一种基础技术,可用于多种用例。Meta 的 Llama 模型负责任部署的示例可在 社区故事网页 中找到。开发者应根据具体用例定制安全策略,并在 Llama 系统中部署必要的安全防护措施。
- Llama 3.2 Instruct:安全微调的主要目标是为研究社区提供有价值的资源,为开发者提供安全强大的模型。采用多方面的数据收集方法,结合人类生成数据和合成数据,使用基于大语言模型的分类器选择高质量的提示和响应。
- Llama 3.2 系统:大语言模型应作为整体 AI 系统的一部分进行部署,并配备额外的安全防护措施。Meta 提供了 安全防护措施,开发者应在 Llama 模型或其他大语言模型中部署这些措施。
新功能和用例
- 技术进步:Llama 版本通常会引入新功能,需要额外考虑。对于 Llama 3.2 支持的先前版本功能,请参考 Llama 3.1 模型卡片。
- 图像推理:Llama 3.2-Vision 模型具有多模态输入能力,可用于图像推理应用。在负责任的发布过程中,采取了专门措施来解决模型在图像中唯一识别个人的风险。
评估
- 大规模评估:构建了专门的对抗性评估数据集,评估由 Llama 模型和 Purple Llama 安全防护措施组成的系统。建议为具体用例构建专门的评估数据集。
- 红队测试:进行定期的红队测试,以发现风险并改进基准测试和安全调优数据集。与关键风险领域的专家合作,了解现实世界的危害,并制定对抗性目标。
关键风险
- CBRNE(化学、生物、放射、核和爆炸武器):对 Llama 3.2-Vision 模型进行了额外的针对性评估,发现与 Llama 3.1 相比,其图像理解能力不太可能增加科学能力。
- 儿童安全:使用专家团队进行儿童安全风险评估,通过 Llama 3 模型开发扩展评估基准的覆盖范围。与内容专家合作,进行红队测试,评估潜在违规内容。
- 网络攻击:认为 Llama 3.1 的测试结果也适用于 Llama 3.2,因为 Llama 3.2 的视觉能力与网络提升一般无关。
社区
- 行业合作:积极参与开源联盟,为安全标准化和透明度做出贡献。鼓励社区采用 MLCommons 概念验证评估等分类法,促进安全和内容评估的协作和透明度。
- 资助计划:设立 Llama 影响资助 计划,支持 Meta 的 Llama 模型在教育、气候和开放创新三个类别中的应用。
- 报告机制:建立了 输出报告机制 和 漏洞赏金计划,借助社区力量不断改进 Llama 技术。
伦理考虑和限制
- 价值观:Llama 3.2 的核心价值观是开放、包容和有用。旨在为所有人服务,适用于广泛的用例。尊重所有用户的尊严和自主权,尤其是自由思想和表达的价值观。
- 测试:Llama 3.2 是一项新技术,其潜在输出无法提前预测,可能会产生不准确、有偏见或其他令人反感的响应。在部署 Llama 3.2 模型的应用程序之前,开发者应进行针对特定应用的安全测试和调优。
🔧 技术细节
模型架构
Llama 3.2-Vision 基于 Llama 3.1 文本模型构建,使用优化的变压器架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF),以符合人类对有用性和安全性的偏好。为支持图像识别任务,模型使用了单独训练的视觉适配器,该适配器由一系列交叉注意力层组成,将图像编码器的表示输入到核心大语言模型中。
训练数据
预训练使用 60 亿图像和文本对,指令微调数据包括公开可用的视觉指令数据集和超过 300 万个合成生成的示例。预训练数据截止到 2023 年 12 月。
训练过程
使用自定义训练库、Meta 的自定义 GPU 集群和生产基础设施进行预训练,微调、标注和评估也在生产基础设施上进行。训练累计使用 202 万 GPU 小时的 H100-80GB(TDP 为 700W)类型硬件,估计总基于位置的温室气体排放量为 584 吨 CO2eq,基于市场的温室气体排放量为 0 吨 CO2eq。
📄 许可证
使用 Llama 3.2 受 Llama 3.2 社区许可证 (自定义商业许可协议)的约束。
Llama 3.2 社区许可协议
请参考文档中的详细内容,了解使用、复制、分发和修改 Llama 材料的条款和条件。
Llama 3.2 可接受使用政策
使用 Llama 3.2 需遵守 可接受使用政策,禁止用于违反法律、侵犯他人权利、造成伤害或其他不当行为。
如果你发现模型违反可接受使用政策或存在其他问题,可以通过以下方式进行报告:
- 报告模型问题:https://github.com/meta-llama/llama-models/issues
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
- 报告违反可接受使用政策或未经授权使用 Llama 3.2 的情况:LlamaUseReport@meta.com









