SmolVLM2
SmolVLM2 to mały model wizyjno-językowy Hugging Face. LibreYOLO udostępnia go jako detektor obiektów z otwartym słownikiem oraz zapewnia bezpośredni dostęp do swobodnego czatu: podaj listę klas do detekcji albo zadaj pytanie.
- Zadania
- detection
- Rozmiary
- 500m at 512 px
- Instalacja
pip install libreyolo- Poziom obsługi
- Poziom siostrzany, od wersji v. Osobna część produktu z własną fabryką i kontraktem.
- Projekt źródłowy
- SmolVLM2, autorzy: Hugging Face (HuggingFaceTB), licencja: Apache-2.0. Publikacja, kod źródłowy
- Licencje
- Kod: MIT, wagi: Apache-2.0. Użycie komercyjne
Instalacja
SmolVLM2 należy do poziomu VLM jako detektor w LibreYOLO, osobnej powierzchni
produktu od rodzin opartych na checkpointach, z własną fabryką. Wymaga dodatku
vlm, który instaluje również num2words, zależność własnego procesora
SmolVLM2.
pip install "libreyolo[vlm]"Predykcja
Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej.
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") # Bezpośredni dostęp pod wygodną warstwą detekcji: dowolne pytanie,# nie tylko zapytanie o ramki ograniczające.answer = model.chat(SAMPLE_IMAGE, "What is the cat doing?")print(answer)Ta rodzina jest wczytywana przez fabrykę LibreVLM(), a nie LibreYOLO().
Rodziny VLM nie deklarują loadera checkpointów, dlatego opisany na innych
stronach modeli wybór ścieżki na podstawie rozszerzenia pliku nie ma tu
zastosowania. set_classes() ustawia słownik, o którego znalezienie proszony
jest SmolVLM2. Ustawienie jest trwałe i obowiązuje we wszystkich późniejszych
wywołaniach predict()/track(), dopóki nie zostanie ponownie zmienione.
SmolVLM2 nie wymaga zastąpienia parsera w LibreYOLO. Korzysta z tego samego
szablonu czatu z wyjściem JSON co wspólna wartość domyślna tego poziomu, więc
jego prompt detekcji i format ramek nie zależą od rodziny. Każda detekcja ma ten
sam zastępczy wskaźnik pewności, więc filtrowanie przez conf działa na zasadzie
wszystko albo nic. iou ma natomiast wpływ na wynik: późniejsza ramka tej samej
klasy jest odrzucana, gdy nakłada się na zachowaną ramkę powyżej progu, ponieważ
generator powtarzający może zwrócić prawie identyczne ramki jednego obiektu.
SmolVLM2 odpowiada także na swobodne pytania przez chat(), ten sam bezpośredni
dostęp opisany dla fabryki LibreVLM. CLI LibreYOLO nie obsługuje tego poziomu.
Nie istnieje dla niego forma libreyolo predict model=.... Więcej informacji o
źródłach, streamingu i obsłudze wyników zawiera strona
predykcji.
Warianty
Rejestr zawiera jeden rozmiar: SmolVLM2-500M-Video-Instruct, wczytywany jako
LibreVLM("smolvlm2-500m"). SmolVLM2 jest słabszym detektorem niż specjalnie
zbudowane modele groundingu z tego poziomu. Własny wrapper LibreYOLO opisuje go
jako demonstrację, że nowa rodzina nie wymaga tutaj specjalnego parsera, a nie
jako najlepszą opcję detekcji z otwartym słownikiem.
LibreYOLO nie trenuje, nie waliduje ani nie eksportuje SmolVLM2. Wywołania
train(), val() i export() zgłaszają NotImplementedError dla każdej
rodziny na tym poziomie (zobacz poziom obsługi powyżej). Jeśli potrzebny jest
niestandardowy słownik zapisany w wagach, należy dostroić SmolVLM2 w projekcie
źródłowym i wczytać powstałe wagi. Wynik predict() trzeba sprawdzić wzrokowo
zamiast uruchamiać walidację w stylu COCO, ponieważ każda detekcja ma ten sam
zastępczy wskaźnik pewności.
Licencja
Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.
To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.
- Oryginalna praca
- SmolVLM2, Hugging Face (HuggingFaceTB)
- Licencja projektu źródłowego
- Apache-2.0
- Kod źródłowy projektu
- github.com/huggingface/smollm/tree/main/vision
- Kod LibreYOLO
- MIT
- Wagi
- Apache-2.0, rozpowszechniane przez autorów. LibreYOLO ich nie hostuje ani nie udostępnia kopii.
- Interpretacja
- 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.
Cytowanie
@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}
}Skopiowano z bloku cytowania autorów w huggingface.co/blog/smolvlm2.