SmolVLM2
SmolVLM2 — небольшая vision-language модель от Hugging Face. LibreYOLO оборачивает её как детектор объектов с открытым словарём и напрямую открывает свободный чат: передайте список классов для детекции или просто задайте вопрос.
- Задачи
- detection
- Размеры
- 500m at 512 px
- Установка
pip install libreyolo- Уровень поддержки
- Смежный уровень, начиная с v. Отдельная часть продукта со своей фабрикой и контрактом.
- Исходный проект
- SmolVLM2 от Hugging Face (HuggingFaceTB), Apache-2.0. Статья, исходный код
- Лицензии
- Код: MIT, веса: Apache-2.0. Коммерческое использование
Установка
SmolVLM2 относится к уровню «VLM как детектор» в LibreYOLO — это отдельная
часть продукта со своей фабрикой, а не одно из семейств на основе чекпойнтов.
Ему нужен extra vlm, который заодно подтягивает 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. CLI LibreYOLO этот уровень не
покрывает: формы libreyolo predict model=... для него нет. Про источники,
стриминг и обработку результатов см. предсказание.
Варианты
В реестре один размер: SmolVLM2-500M-Video-Instruct, загружается как
LibreVLM("smolvlm2-500m"). Как детектор SmolVLM2 слабее, чем модели этого
уровня, специально созданные для привязки к изображению; в собственной
обёртке LibreYOLO он описан как демонстрация того, что новому семейству не
нужен особый разбор вывода, чтобы здесь заработать, а не как самый сильный
вариант для детекции с открытым словарём.
LibreYOLO не обучает, не валидирует и не экспортирует SmolVLM2: train(),
val() и export() выбрасывают NotImplementedError для каждого семейства
этого уровня (см. уровень поддержки выше). Если нужен свой словарь,
запечённый в модель, дообучите SmolVLM2 в исходном проекте и загрузите
получившиеся веса; вывод predict() проверяйте глазами, а не прогоном
валидации в стиле COCO, поскольку у каждой детекции одна и та же
уверенность-заглушка.
Лицензирование
Проверяйте лицензию в репозитории конкретных весов на Hugging Face. Она указана для каждого чекпойнта в организации LibreYOLO и может различаться даже внутри одного семейства. Этот репозиторий считается авторитетным источником, а сводка ниже описывает условия на момент последней проверки страницы.
Это описание соответствующих лицензий, а не юридическая консультация. Если ответ важен для коммерческого использования, прочитайте лицензии самостоятельно и проконсультируйтесь с юристом.
- Оригинальная работа
- SmolVLM2, Hugging Face (HuggingFaceTB)
- Лицензия исходного проекта
- Apache-2.0
- Исходный код проекта
- github.com/huggingface/smollm/tree/main/vision
- Код 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.