模型简介
模型特点
模型能力
使用案例
🚀 SmolVLM2-256M-Video
SmolVLM2-256M-Video 是一款轻量级的多模态模型,旨在分析视频内容。该模型能够处理视频、图像和文本输入,并生成文本输出,可用于回答有关媒体文件的问题、比较视觉内容或从图像中转录文本。尽管模型体积小巧,但在进行视频推理时仅需 1.38GB 的 GPU 显存。这种高效性使其特别适合需要特定领域微调且计算资源可能有限的设备端应用。
🚀 快速开始
你可以使用 transformers
库来加载、推理和微调 SmolVLM。请确保你已经安装了 num2words
、flash-attn
和最新版本的 transformers
。以下是加载模型的示例代码:
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_path = "HuggingFaceTB/SmolVLM2-256M-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.38GB 的 GPU 显存进行视频推理,适合设备端应用。
- 广泛应用:可用于回答媒体文件问题、比较视觉内容、图像文本转录等。
📚 详细文档
模型概述
- 开发者:Hugging Face 🤗
- 模型类型:多模态模型(图像/多图像/视频/文本)
- 支持语言(NLP):英语
- 许可证: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 许可证下发布。








