模型简介
模型特点
模型能力
使用案例
库名称: transformers
许可证: apache-2.0
数据集:
- HuggingFaceM4/the_cauldron
- HuggingFaceM4/Docmatix
- lmms-lab/LLaVA-OneVision-Data
- lmms-lab/M4-Instruct-Data
- HuggingFaceFV/finevideo
- MAmmoTH-VL/MAmmoTH-VL-Instruct-12M
- lmms-lab/LLaVA-Video-178K
- orrzohar/Video-STaR
- Mutonix/Vript
- TIGER-Lab/VISTA-400K
- Enxin/MovieChat-1K_train
- ShareGPT4Video/ShareGPT4Video
管道标签: 图像文本转文本
标签: - 视频文本转文本
语言: - 英语
基础模型: - HuggingFaceTB/SmolVLM-Instruct

SmolVLM2 2.2B
SmolVLM2-2.2B 是一款轻量级多模态模型,专为分析视频内容而设计。该模型可处理视频、图像和文本输入,生成文本输出——无论是回答关于媒体文件的问题、比较视觉内容,还是从图像中转录文本。尽管体积小巧,视频推理仅需5.2GB GPU显存,但在复杂多模态任务上表现强劲。这种高效性使其特别适合计算资源有限的设备端应用。
模型概览
- 开发团队: 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 |
视频评估
我们对 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 |
快速入门
您可以使用 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": "你能描述这张图片吗?"},
]
},
]
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": "详细描述这段视频"}
]
},
]
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": "这两张图片有什么相似之处?"},
{"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])
模型优化
滥用与超范围使用
SmolVLM 不适用于影响个人福祉或生计的高风险场景或关键决策过程。模型可能生成看似真实但不准确的内容。滥用包括但不限于:
- 禁止用途:
- 评估或评分个人(如就业、教育、信用)
- 关键自动化决策
- 生成不可靠的事实内容
- 恶意活动:
- 垃圾信息生成
- 虚假信息传播
- 骚扰或滥用
- 未经授权的监控
许可证
SmolVLM2 基于 the shape-optimized SigLIP 作为图像编码器和 SmolLM2 作为文本解码器部分。
我们在 Apache 2.0 许可证下发布 SmolVLM2 检查点。
引用信息
您可以通过以下方式引用我们:
@article{marafioti2025smolvlm,
title={SmolVLM: 重新定义小型高效多模态模型},
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% |








