Smolvlm2 2.2B Instruct
SmolVLM2-2.2B 是一款轻量级多模态模型,专为分析视频内容而设计,可处理视频、图像和文本输入并生成文本输出。
下载量 62.56k
发布时间 : 2/8/2025
模型简介
该模型能够回答关于媒体文件的问题、比较视觉内容或从图像中转录文本,适合计算资源有限的设备端应用。
模型特点
轻量高效
仅需5.2GB GPU显存即可进行视频推理,适合资源有限的环境
多模态支持
可同时处理视频、图像和文本输入,支持多种媒体交错排列
设备端适用
小巧的体积使其特别适合在计算资源有限的设备上运行
强任务表现
尽管体积小,但在复杂多模态任务上表现强劲
模型能力
视觉问答
视频内容描述
图像内容描述
多图像比较分析
文本转录
基于视觉内容的故事讲述
使用案例
内容分析
视频亮点生成
分析视频内容并生成关键事件描述
可用于自动生成视频摘要
视觉问答
回答关于图像或视频内容的特定问题
在Mathvista基准测试中达到51.5分
文档处理
文本转录
从图像中提取和转录文本内容
在OCRBench基准测试中达到72.9分
🚀 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许可证。
Clip Vit Large Patch14
CLIP是由OpenAI开发的视觉-语言模型,通过对比学习将图像和文本映射到共享的嵌入空间,支持零样本图像分类
图像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI开发的多模态模型,能够理解图像和文本之间的关系,支持零样本图像分类任务。
图像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基于WebLi数据集预训练的视觉语言模型,采用改进的sigmoid损失函数,优化了图像-文本匹配任务。
图像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI开发的多模态模型,通过对比学习将图像和文本映射到共享的嵌入空间,实现零样本图像分类能力。
图像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一个先进的视觉-语言预训练模型,擅长图像描述生成任务,支持条件式和非条件式文本生成。
图像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一个统一的视觉-语言预训练框架,擅长图像描述生成任务,支持条件式和无条件式图像描述生成。
图像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一个基于Open X-Embodiment数据集训练的开源视觉-语言-动作模型,能够根据语言指令和摄像头图像生成机器人动作。
图像生成文本
Transformers 英语

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款开源多模态聊天机器人,基于 LLaMA/Vicuna 微调,支持图文交互。
图像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
这是一个基于ViT和GPT2架构的图像描述生成模型,能够为输入图像生成自然语言描述。
图像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一个视觉语言模型,结合了图像编码器和大型语言模型,用于图像到文本的生成任务。
图像生成文本
Transformers 英语

B
Salesforce
867.78k
359
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98