alt.freeweights.smollm / SmolVLM2-2.2B-Instruct
From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject:

SmolVLM2-2.2B-Instruct

Date: 2026-11-14Commit: be92141Signed: 2DC28CC7B26A283B ✓

Image text to text model with 2.2B parameters. Safetensors weights, 8.99 GB in all. Published by HuggingFaceTB under Apache-2.0.

2.2B params8.99GBSmolVLM2-2.2B-Instructsafetensorspermissive
FactsParams2.2BSize8.99 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get HuggingFaceTB/SmolVLM2-2.2B-Instruct
# manifest sha256 f6ef84e3b3b5… · 8.99 GB · 16 files
$ fw verify ./SmolVLM2-2.2B-Instruct HuggingFaceTB/SmolVLM2-2.2B-Instruct
From sourceHosted (signed)HuggingFaceTB/SmolVLM2-2.2B-InstructLast check: 2026-11-14 21:11 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of SmolVLM-Instruct.

Works with

Overview

Size
8.99 GB
Weights
8.99 GB (safetensors)
Parameters
2.2B
Formats
safetensors
Task
image text to text
License
Apache-2.0 (permissive)
Files
16, each with a sha256
Publisher
HuggingFaceTB
Added
2026-11-14
Section
alt.freeweights.smollm
Lineage

Original release from the publisher.

Base model: HuggingFaceTB/SmolVLM-Instruct

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:11 UTCpassed

Model card

From the publisher at commit be92141. Shown as plain text with links; images open at the publisher.

Image: Image description

SmolVLM2 2.2B#

SmolVLM2-2.2B is a lightweight multimodal model designed to analyze video content. The model processes videos, images, and text inputs to generate text outputs - whether answering questions about media files, comparing visual content, or transcribing text from images. Despite its compact size, requiring only 5.2GB of GPU RAM for video inference, it delivers robust performance on complex multimodal tasks. This efficiency makes it particularly well-suited for on-device applications where computational resources may be limited.

Model Summary#

  • Developed by: Hugging Face 🤗
  • Model type: Multi-modal model (image/multi-image/video/text)
  • Language(s) (NLP): English
  • License: Apache 2.0
  • Architecture: Based on Idefics3 (see technical summary)

Resources#

Uses#

SmolVLM2 can be used for inference on multimodal (video / image / text) tasks where the input consists of text queries along with video or one or more images. Text and media files can be interleaved arbitrarily, enabling tasks like captioning, visual question answering, and storytelling based on visual content. The model does not support image or video generation.

To fine-tune SmolVLM2 on a specific task, you can follow the fine-tuning tutorial.

Evaluation#

Vision Evaluation#
ModelMathvistaMMMUOCRBenchMMStarAI2DChartQA_TestScience_QATextVQA ValDocVQA Val
SmolVLM2 2.2B51.54272.9467068.849073.2179.98
SmolVLM 2.2B43.938.365.541.884.571.684.572.179.7
Video Evaluation#

We evaluated the performance of the SmolVLM2 family on the following scientific benchmarks:

SizeVideo-MMEMLVUMVBench
2.2B52.155.246.27
500M42.247.339.73
256M33.740.632.7
How to get started#

You can use transformers to load, infer and fine-tune SmolVLM. Make sure you have num2words, flash-attn and latest transformers installed. You can load the model as follows.

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")
Simple Inference#

You preprocess your inputs directly using chat templates and directly passing them

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])
Video Inference#

To use SmolVLM2 for video inference, make sure you have decord installed.

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])
Multi-image Interleaved Inference#

You can interleave multiple media with text using chat templates.

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])
Model optimizations#

Misuse and Out-of-scope Use#

SmolVLM is not intended for high-stakes scenarios or critical decision-making processes that affect an individual's well-being or livelihood. The model may produce content that appears factual but may not be accurate. Misuse includes, but is not limited to:

  • Prohibited Uses:
    • Evaluating or scoring individuals (e.g., in employment, education, credit)
    • Critical automated decision-making
    • Generating unreliable factual content
  • Malicious Activities:
    • Spam generation
    • Disinformation campaigns
    • Harassment or abuse
    • Unauthorized surveillance
License#

SmolVLM2 is built upon the shape-optimized SigLIP as image encoder and SmolLM2 for text decoder part.

We release the SmolVLM2 checkpoints under the Apache 2.0 license.

Citation information#

You can cite us in the following way:

@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}
}

Training Data#

SmolVLM2 used 3.3M samples for training originally from ten different datasets: LlaVa Onevision, M4-Instruct, Mammoth, LlaVa Video 178K, FineVideo, VideoStar, VRipt, Vista-400K, MovieChat and ShareGPT4Video. In the following plots we give a general overview of the samples across modalities and the source of those samples.

Data Split per modality#

Data TypePercentage
Image34.4%
Text20.2%
Video33.0%
Multi-image12.3%

Granular dataset slices per modality#

Text Datasets#
DatasetPercentage
llava-onevision/magpie_pro_ft3_80b_mt6.8%
llava-onevision/magpie_pro_ft3_80b_tt6.8%
llava-onevision/magpie_pro_qwen2_72b_tt5.8%
llava-onevision/mathqa0.9%
Multi-image Datasets#
DatasetPercentage
m4-instruct-data/m4_instruct_multiimage10.4%
mammoth/multiimage-cap61.9%
Image Datasets#
DatasetPercentage
llava-onevision/other17.4%
llava-onevision/vision_flan3.9%
llava-onevision/mavis_math_metagen2.6%
llava-onevision/mavis_math_rule_geo2.5%
llava-onevision/sharegpt4o1.7%
llava-onevision/sharegpt4v_coco1.5%
llava-onevision/image_textualization1.3%
llava-onevision/sharegpt4v_llava0.9%
llava-onevision/mapqa0.9%
llava-onevision/qa0.8%
llava-onevision/textocr0.8%
Video Datasets#
DatasetPercentage
llava-video-178k/1-2m7.3%
llava-video-178k/2-3m7.0%
other-video/combined5.7%
llava-video-178k/hound4.4%
llava-video-178k/0-30s2.4%
video-star/starb2.2%
vista-400k/combined2.2%
vript/long1.0%
ShareGPT4Video/all0.8%

Files

16 files · 8.99 GBWeights 8.99 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 16 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md11.4 KB8e46e92a3a40643b85a6df905b1a2014bcb7a01daaf6566588c89a95c5c6e700
added_tokens.json4.74 KB74135b8664b56088c0006f1c8e848d79a8eba003411f72ebf1dc2ee96227be3a
chat_template.json517 B9bc4f36b8d064f824368648472a4a09268c4bbf9bf930f04fae47f1f596dae92
config.json3.64 KBec1f7e45deeafba7601f8dd0b6ca9ba75985dffc2f053e82341d12d06e2d9d46
generation_config.json136 B34835060c9f0f74d1acb456cc72ca32746d3843d9eb5f578f9cbffac1d2eb840
merges.txt466 KB0b54e8aa4e53d5383e2e4bc635a56b43f9647f7b13832d5d9ecd8f82dac4f510
model-00001-of-00002.safetensors4.96 GB7c88a90e78f567460b2369a0369cc4dafbfda5607c9cb090b30fa4437b0282f2
model-00002-of-00002.safetensors4.03 GBcf3d0958a8240f71054a6812038f2a6bfbe2e5124573a3b363f6b120c9a52657
model.safetensors.index.json63.9 KBd7c4b7a36f51bc15755cb11938c76f66be56e7c0d2bf3606335a8f77f90a551d
preprocessor_config.json599 B70d935393e28a5b77b8f46cbd3e3cb74a336e4814bd43983858215bd0be388e7
processor_config.json67 B55fb18f99dcce2694a011d46addf50a8114e6458d1847f6da9a0af22c6695a95
special_tokens_map.json868 B2dfea2a426162316ff1567c82bc6d36d9690cd9f90455f075c77daca78b45c60
tokenizer.json3.55 MB5ece781dc8d2b2f3e2f289ca0ae50b17cfc27dd27bfe7971bb8241e0b964331a
tokenizer_config.json28.7 KBa1c7ec9bed1508f87a202f39b1f4e909145513ae81645bec7fbee8a5671d9edf
vocab.json801 KB82b84012e3add4d01d12ba14442026e49b8cbbaead1f79ecf3d919784f82dc79
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
be92141c8d pinned now manifest updated, same commit2026-11-14 21:11 UTC16 files · 8.99 GB
be92141c8d2026-11-14 21:11 UTC16 files · 8.99 GB

Use it

$ fw get HuggingFaceTB/SmolVLM2-2.2B-Instruct
# manifest sha256 f6ef84e3b3b5… · 8.99 GB · 16 files
$ fw verify ./SmolVLM2-2.2B-Instruct HuggingFaceTB/SmolVLM2-2.2B-Instruct
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolVLM2-2.2B-Instruct.json --dir ./SmolVLM2-2.2B-Instruct $ python3 fw.py verify ./SmolVLM2-2.2B-Instruct ./HuggingFaceTB__SmolVLM2-2.2B-Instruct.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolVLM2-2.2B-Instruct --revision be92141c8d0ceb98596a923c308ac2bbb4a7c466 --local-dir ./SmolVLM2-2.2B-Instruct
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("HuggingFaceTB/SmolVLM2-2.2B-Instruct", revision="be92141c8d0ceb98596a923c308ac2bbb4a7c466") model = AutoModelForImageTextToText.from_pretrained("HuggingFaceTB/SmolVLM2-2.2B-Instruct", revision="be92141c8d0ceb98596a923c308ac2bbb4a7c466", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve HuggingFaceTB/SmolVLM2-2.2B-Instruct --revision be92141c8d0ceb98596a923c308ac2bbb4a7c466

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
8e46e92a3a40643b85a6df905b1a2014bcb7a01daaf6566588c89a95c5c6e700
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject: SmolVLM2-2.2B-InstructDate: 2026-11-14Commit: be92141Signed: 2DC28CC7B26A283B ✓
Upstream
HuggingFaceTB/SmolVLM2-2.2B-Instruct
Pinned commit
be92141c8d0ceb98596a923c308ac2bbb4a7c466
Manifest
SmolVLM2-2.2B-Instruct.json · .minisig
Manifest sha256
f6ef84e3b3b579f694ed34165e3bc40cc09b872cd48ebe1c3581bcb735673298
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:11 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolVLM2-2.2B-Instruct.json $ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolVLM2-2.2B-Instruct.json.minisig $ minisign -Vm SmolVLM2-2.2B-Instruct.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

HuggingFaceTB/SmolVLM-Instruct · this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolVLM2-2.2B-Instruct
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. SmolVLM2-2.2B-Instruct.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of SmolVLM2-2.2B-Instruct. Each has its own license check and page.

From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Subject: 135M-lc-100k-rope-12B
From: nisten <huggingface.co/nisten>Subject: Biggie-SmoLlm-0.4B
From: onnx-community <huggingface.co/onnx-community>Subject: Biggie-SmoLlm-0.4B-ONNX
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-1.7B-bnb-4bit
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-1.7B-Instruct
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-135M-bnb-4bit