模型简介
模型特点
模型能力
使用案例
🚀 SmolVLM2-500M-Video
SmolVLM2-500M-Video是一款轻量级多模态模型,旨在分析视频内容。该模型可处理视频、图像和文本输入,以生成文本输出,无论是回答有关媒体文件的问题、比较视觉内容,还是从图像中转录文本。尽管其体积小巧,视频推理仅需1.8GB的GPU内存,但它在复杂的多模态任务上表现出色。这种高效性使其特别适合计算资源有限的设备端应用。
🚀 快速开始
你可以使用transformers
库来加载、推理和微调SmolVLM。请确保你已安装num2words
、flash-attn
和最新版本的transformers
。以下是加载模型的示例代码:
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_path = "HuggingFaceTB/SmolVLM2-500M-Video-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])
高级用法 - 视频推理
若要使用SmolVLM2进行视频推理,请确保你已安装decord
。
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])
✨ 主要特性
- 轻量级高效:模型体积小巧,视频推理仅需1.8GB的GPU内存,适合资源有限的设备端应用。
- 多模态处理:能够处理视频、图像和文本输入,生成文本输出,可应用于多种复杂的多模态任务。
📚 详细文档
模型概述
- 开发者:Hugging Face 🤗
- 模型类型:多模态模型(图像/多图像/视频/文本)
- 自然语言处理支持语言:英语
- 许可证:Apache 2.0
- 架构:基于 Idefics3(详见技术总结)
资源链接
应用场景
SmolVLM2可用于多模态(视频/图像/文本)推理任务,输入可以是文本查询以及视频或一个或多个图像。文本和媒体文件可以任意交错,支持诸如字幕生成、视觉问答和基于视觉内容的故事讲述等任务。但该模型不支持图像或视频生成。
若要针对特定任务微调SmolVLM2,可参考 微调教程。
评估结果
我们在以下科学基准测试中评估了SmolVLM2系列的性能:
模型规模 | 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% |
📄 许可证
SmolVLM2遵循Apache 2.0许可证。








