🚀 SmolVLM2 2.2B
SmolVLM2-2.2B是一款轻量级多模态模型,专为分析视频内容而设计。该模型能够处理视频、图像和文本输入,以生成文本输出,可用于回答关于媒体文件的问题、比较视觉内容或从图像中转录文本。尽管其体积小巧,视频推理仅需5.2GB的GPU内存,但在复杂的多模态任务中仍能提供出色的性能。这种高效性使其特别适合计算资源有限的设备端应用。
✨ 主要特性
- 多模态处理:能够处理视频、图像和文本输入,生成文本输出。
- 轻量级设计:仅需5.2GB的GPU内存进行视频推理。
- 高效性能:在复杂的多模态任务中表现出色。
- 适合设备端应用:适用于计算资源有限的场景。
📦 安装指南
使用transformers
库加载、推理和微调SmolVLM,确保安装num2words
、flash-attn
和最新版本的transformers
。
💻 使用示例
基础用法
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_path = "HuggingFaceTB/SmolVLM2-2.2B-Instruct"
processor = AutoProcessor.from_pretrained(model_path)
model = AutoModelForImageTextToText.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
_attn_implementation="flash_attention_2"
).to("cuda")
高级用法
简单推理
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "text", "text": "Can you describe this image?"},
]
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device, dtype=torch.bfloat16)
generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
)
print(generated_texts[0])
视频推理
messages = [
{
"role": "user",
"content": [
{"type": "video", "path": "path_to_video.mp4"},
{"type": "text", "text": "Describe this video in detail"}
]
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device, dtype=torch.bfloat16)
generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
)
print(generated_texts[0])
多图像交错推理
import torch
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the similarity between these two images?"},
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"},
]
},
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device, dtype=torch.bfloat16)
generated_ids = model.generate(**inputs, do_sample=False, max_new_tokens=64)
generated_texts = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
)
print(generated_texts[0])
📚 详细文档
模型概述
属性 |
详情 |
开发者 |
Hugging Face 🤗 |
模型类型 |
多模态模型(图像/多图像/视频/文本) |
语言(NLP) |
英语 |
许可证 |
Apache 2.0 |
架构 |
基于 Idefics3(详见技术概述) |
资源
用途
SmolVLM2可用于多模态(视频/图像/文本)任务的推理,输入包括文本查询以及视频或一个或多个图像。文本和媒体文件可以任意交错,支持诸如字幕生成、视觉问答和基于视觉内容的故事讲述等任务。该模型不支持图像或视频生成。
若要针对特定任务微调SmolVLM2,可参考微调教程。
评估
视觉评估
模型 |
Mathvista |
MMMU |
OCRBench |
MMStar |
AI2D |
ChartQA_Test |
Science_QA |
TextVQA Val |
DocVQA Val |
SmolVLM2 2.2B |
51.5 |
42 |
72.9 |
46 |
70 |
68.84 |
90 |
73.21 |
79.98 |
SmolVLM 2.2B |
43.9 |
38.3 |
65.5 |
41.8 |
84.5 |
71.6 |
84.5 |
72.1 |
79.7 |
视频评估
规模 |
Video-MME |
MLVU |
MVBench |
2.2B |
52.1 |
55.2 |
46.27 |
500M |
42.2 |
47.3 |
39.73 |
256M |
33.7 |
40.6 |
32.7 |
模型优化
文档未提及具体优化内容。
误用和超范围使用
SmolVLM不适用于高风险场景或影响个人福祉和生计的关键决策过程。该模型可能会生成看似事实但可能不准确的内容。误用包括但不限于:
- 禁止用途:
- 评估或评分个人(如就业、教育、信贷方面)
- 关键自动化决策
- 生成不可靠的事实内容
- 恶意活动:
- 垃圾邮件生成
- 虚假信息传播
- 骚扰或虐待
- 未经授权的监控
许可证
SmolVLM2使用 形状优化的SigLIP 作为图像编码器,SmolLM2 作为文本解码器。
我们以Apache 2.0许可证发布SmolVLM2的检查点。
引用信息
@article{marafioti2025smolvlm,
title={SmolVLM: Redefining small and efficient multimodal models},
author={Andrés Marafioti and Orr Zohar and Miquel Farré and Merve Noyan and Elie Bakouch and Pedro Cuenca and Cyril Zakka and Loubna Ben Allal and Anton Lozhkov and Nouamane Tazi and Vaibhav Srivastav and Joshua Lochner and Hugo Larcher and Mathieu Morlon and Lewis Tunstall and Leandro von Werra and Thomas Wolf},
journal={arXiv preprint arXiv:2504.05299},
year={2025}
}
训练数据
SmolVLM2最初使用来自十个不同数据集的330万个样本进行训练:LlaVa Onevision、M4-Instruct、Mammoth、LlaVa Video 178K、FineVideo、VideoStar、VRipt、Vista-400K、MovieChat 和 ShareGPT4Video。
各模态数据拆分
数据类型 |
百分比 |
图像 |
34.4% |
文本 |
20.2% |
视频 |
33.0% |
多图像 |
12.3% |
各模态数据集详细切片
文本数据集
数据集 |
百分比 |
llava-onevision/magpie_pro_ft3_80b_mt |
6.8% |
llava-onevision/magpie_pro_ft3_80b_tt |
6.8% |
llava-onevision/magpie_pro_qwen2_72b_tt |
5.8% |
llava-onevision/mathqa |
0.9% |
多图像数据集
数据集 |
百分比 |
m4-instruct-data/m4_instruct_multiimage |
10.4% |
mammoth/multiimage-cap6 |
1.9% |
图像数据集
数据集 |
百分比 |
llava-onevision/other |
17.4% |
llava-onevision/vision_flan |
3.9% |
llava-onevision/mavis_math_metagen |
2.6% |
llava-onevision/mavis_math_rule_geo |
2.5% |
llava-onevision/sharegpt4o |
1.7% |
llava-onevision/sharegpt4v_coco |
1.5% |
llava-onevision/image_textualization |
1.3% |
llava-onevision/sharegpt4v_llava |
0.9% |
llava-onevision/mapqa |
0.9% |
llava-onevision/qa |
0.8% |
llava-onevision/textocr |
0.8% |
视频数据集
数据集 |
百分比 |
llava-video-178k/1-2m |
7.3% |
llava-video-178k/2-3m |
7.0% |
other-video/combined |
5.7% |
llava-video-178k/hound |
4.4% |
llava-video-178k/0-30s |
2.4% |
video-star/starb |
2.2% |
vista-400k/combined |
2.2% |
vript/long |
1.0% |
ShareGPT4Video/all |
0.8% |
📄 许可证
本项目采用Apache 2.0许可证。