SmolVLM2
SmolVLM2 是 Hugging Face 的小型视觉语言模型。LibreYOLO 把它包装成一个开放词汇目标检测器,并直接暴露它的自由形式对话:给一份类别列表就做检测,或者直接问它一个问题。
- 任务
- detection
- 尺寸
- 500m at 512 px
- 安装
pip install libreyolo- 支持层级
- 兄弟层级,自 v 起。一个独立的产品面,有自己的工厂和契约。
- 许可
- 代码采用 MIT,权重采用 Apache-2.0。商用
安装
SmolVLM2 属于 LibreYOLO 的「VLM 当检测器」这一层,它和那些基于检查点
(checkpoint)的家族是相互独立的两块产品面,有自己的工厂。它需要 vlm extra,
这个 extra 还会一并装上 num2words,也就是 SmolVLM2 自己的处理器的一个依赖。
pip install "libreyolo[vlm]"预测
权重在首次使用时从 Hugging Face 下载,并缓存在本地。
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("smolvlm2-500m")model.set_classes(["cat", "dog"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("smolvlm2-500m") # 检测这层便利封装底下的逃生口:任何问题都可以问,# 不只是检测框查询answer = model.chat(SAMPLE_IMAGE, "What is the cat doing?")print(answer)这个家族通过 LibreVLM() 工厂加载,而不是 LibreYOLO():VLM 家族不声明检查点
加载器,所以其他模型页面上讲的那套按文件后缀路由在这里不适用。set_classes()
设定要让 SmolVLM2 去找的词汇表;它粘住不放,会在之后每一次 predict()/track()
调用里一直生效,直到你再设一次。SmolVLM2 在 LibreYOLO 里不需要覆盖解析器:它和
这一层共用的默认形式一样,输出的是聊天模板加 JSON,所以它的检测提示词和检测框
格式并不是家族特有的。每个检测结果带的都是同一个占位置信度,所以按 conf 过滤
是全有或全无,而不是一种排序;iou 确实有作用,一旦后出现的同类别检测框和某个
已经保留下来的框重叠超过阈值,它就会被丢掉,因为一个会重复输出的生成器可能会对
同一个物体吐出近乎重复的检测框。SmolVLM2 还能通过 chat() 回答自由形式的问题,
也就是 LibreVLM 工厂那一页上写的同一个逃生口。LibreYOLO 的 CLI 不覆盖这一层:
它没有 libreyolo predict model=... 这种形式。数据源、流式处理和结果处理见
预测。
变体
注册表(registry)里只有一种尺寸:SmolVLM2-500M-Video-Instruct,用
LibreVLM("smolvlm2-500m") 加载。作为检测器,SmolVLM2 比这一层里那些专门为
grounding 打造的模型要弱;LibreYOLO 自己的封装把它描述成一个演示,说明一个新家族
不需要任何特例解析就能在这里跑起来,而不是把它当作 LibreYOLO 最强的开放词汇选项。
LibreYOLO 不训练、不验证、也不导出 SmolVLM2:train()、val() 和 export()
对这一层里的每个家族都抛出 NotImplementedError(见上面的支持层级)。如果你需要
把一份自定义词汇表固化进模型,就在上游微调 SmolVLM2,再加载得到的权重;用肉眼
检查 predict() 的输出,而不是跑一遍 COCO 式的验证,因为每个检测结果带的都是同
一个占位置信度。
许可证
请检查你所下载的具体权重在 Hugging Face 仓库中的许可。LibreYOLO 组织里的每个检查点都附有许可,同一家族内也不一定相同。该仓库是权威来源;以下摘要说明本页上次验证时适用的情况。
这里只说明涉及的许可证,不构成法律意见。如果答案对商用很重要,请自行阅读许可证并咨询法律顾问。
- 原始工作
- SmolVLM2, Hugging Face (HuggingFaceTB)
- 上游许可
- Apache-2.0
- LibreYOLO 代码
- MIT
- 权重
- 采用 Apache-2.0 许可,由作者分发。LibreYOLO 不托管或镜像这些权重。
- 解读
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. Both sizes LibreYOLO downloads, SmolVLM2-500M-Video-Instruct and SmolVLM2-2.2B-Instruct, carry this license on their Hugging Face repository.
引用
@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}
}复制自作者在 huggingface.co/blog/smolvlm2 上提供的引用块。