Idefics3-8B-Llama3项目介绍
项目概述
Idefics3-8B-Llama3是一个由Hugging Face开发的多模态模型,能够处理任意顺序的图文输入并生成文本输出。这个模型可以回答有关图像的问题、描述视觉内容、基于多张图片创作故事,或仅作为一个纯语言模型使用(不需要视觉输入)。相比Idefics1和Idefics2,Idefics3显著增强了OCR(光学字符识别)、文档理解和视觉推理的能力。
模型特点
- 开发者: Hugging Face
- 类型: 多模态模型(图像+文本)
- 支持语言: 英语
- 许可证: Apache 2.0
- 基础模型: 包括google/siglip-so400m-patch14-384和meta-llama/Meta-Llama-3.1-8B-Instruct
用途
Idefics3-8B可以用于多模态(图像+文本)任务,其中输入由文本查询和一张或多张图像组成。这些任务包括图像描述、视觉问答等。这个模型不支持图像生成。
模型技术细节
Idefics3在文档理解任务上相较Idefics2有显著提高,为多种特定任务的微调奠定了坚实基础。模型引入了一些新变化:
- 使用169个视觉标记编码大小为364x364的图像。
- 扩展了微调数据集,包括新的数据集如Docmatix。
如何开始使用
以下为生成代码片段示例:
from transformers import AutoProcessor, AutoModelForVision2Seq
from transformers.image_utils import load_image
DEVICE = "cuda:0"
image1 = load_image("图像网址")
processor = AutoProcessor.from_pretrained("HuggingFaceM4/Idefics3-8B-Llama3")
model = AutoModelForVision2Seq.from_pretrained(
"HuggingFaceM4/Idefics3-8B-Llama3", torch_dtype=torch.bfloat16
).to(DEVICE)
# 创建输入
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": "这个图像里有什么?"},
]
}
]
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, images=[image1], return_tensors="pt")
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
# 生成
generated_ids = model.generate(**inputs, max_new_tokens=500)
generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)
print(generated_texts)
注意事项
Idefics3模型不适合高风险环境,例如把模型用于重要决策或生成需要绝对准确的摘要和预测等。任何故意用于伤害、侵犯人权或其他恶意活动的行为都是对模型的误用。
许可证
Idefics3的检查点在Apache 2.0许可证下发布。模型是基于google/siglip-so400m-patch14-384和meta-llama/Meta-Llama-3.1-8B-Instruct构建的。
这篇介绍全面覆盖了Idefics3-8B-Llama3的核心功能,帮助用户更好地理解和使用这个多模态模型。