alt.freeweights.smollm / SmolVLM-Base
From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject:

SmolVLM-Base

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

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

2.2B params4.50GBSmolVLM-Basesafetensorspermissive
FactsParams2.2BSize4.50 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get HuggingFaceTB/SmolVLM-Base
# manifest sha256 cd6f38b8cade… · 4.50 GB · 14 files
$ fw verify ./SmolVLM-Base HuggingFaceTB/SmolVLM-Base
From sourceHosted (signed)HuggingFaceTB/SmolVLM-BaseLast 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 SmolLM2-1.7B-Instruct.

Works with

Overview

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

Original release from the publisher.

Base model: HuggingFaceTB/SmolLM2-1.7B-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 a576ab7. Shown as plain text with links; images open at the publisher.

Image: Image description

SmolVLM#

SmolVLM is a compact open multimodal model that accepts arbitrary sequences of image and text inputs to produce text outputs. Designed for efficiency, SmolVLM can answer questions about images, describe visual content, create stories grounded on multiple images, or function as a pure language model without visual inputs. Its lightweight architecture makes it suitable for on-device applications while maintaining strong performance on multimodal tasks.

Model Summary#

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

Resources#

Uses#

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

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

Technical Summary#

SmolVLM leverages the lightweight SmolLM2 language model to provide a compact yet powerful multimodal experience. It introduces several changes compared to previous Idefics models:

  • Image compression: We introduce a more radical image compression compared to Idefics3 to enable the model to infer faster and use less RAM.
  • Visual Token Encoding: SmolVLM uses 81 visual tokens to encode image patches of size 384×384. Larger images are divided into patches, each encoded separately, enhancing efficiency without compromising performance.

More details about the training and architecture are available in our technical report.

How to get started#

You can use transformers to load, infer and fine-tune SmolVLM.

import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForVision2Seq
from transformers.image_utils import load_image
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
# Load images
image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg")
image2 = load_image("https://huggingface.co/spaces/merve/chameleon-7b/resolve/main/bee.jpg")
# Initialize processor and model
processor = AutoProcessor.from_pretrained("HuggingFaceTB/SmolVLM-Base")
model = AutoModelForVision2Seq.from_pretrained(
    "HuggingFaceTB/SmolVLM-Base",
    torch_dtype=torch.bfloat16,
    _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager",
).to(DEVICE)
# Create input messages
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image"},
            {"type": "image"},
            {"type": "text", "text": "Can you describe the two images?"}
        ]
    },
]
# Prepare inputs
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, images=[image1, image2], return_tensors="pt")
inputs = inputs.to(DEVICE)
# Generate outputs
generated_ids = model.generate(**inputs, max_new_tokens=500)
generated_texts = processor.batch_decode(
    generated_ids,
    skip_special_tokens=True,
)
print(generated_texts[0])
"""
User:<image>Can you describe the two images?
Assistant: I can describe the first one, but I can't describe the second one.
"""
Model optimizations#

Precision: For better performance, load and run the model in half-precision (torch.float16 or torch.bfloat16) if your hardware supports it.

from transformers import AutoModelForVision2Seq
import torch
model = AutoModelForVision2Seq.from_pretrained(
    "HuggingFaceTB/SmolVLM-Base",
    torch_dtype=torch.bfloat16
).to("cuda")

You can also load SmolVLM with 4/8-bit quantization using bitsandbytes, torchao or Quanto. Refer to this page for other options.

from transformers import AutoModelForVision2Seq, BitsAndBytesConfig
import torch
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForVision2Seq.from_pretrained(
    "HuggingFaceTB/SmolVLM-Base",
    quantization_config=quantization_config,
)

Vision Encoder Efficiency: Adjust the image resolution by setting size={"longest_edge": N*384} when initializing the processor, where N is your desired value. The default N=4 works well, which results in input images of size 1536×1536. For documents, N=5 might be beneficial. Decreasing N can save GPU memory and is appropriate for lower-resolution images. This is also useful if you want to fine-tune on videos.

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#

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

We release the SmolVLM checkpoints under the Apache 2.0 license.

Training Details#

Training Data#

The training data comes from The Cauldron and Docmatix datasets, with emphasis on document understanding (25%) and image captioning (18%), while maintaining balanced coverage across other crucial capabilities like visual reasoning, chart comprehension, and general instruction following. Image: Example Image

Evaluation#

ModelMMMU (val)MathVista (testmini)MMStar (val)DocVQA (test)TextVQA (val)Min GPU RAM required (GB)
SmolVLM38.844.642.181.672.75.02
Qwen-VL 2B41.147.847.590.179.713.70
InternVL2 2B34.346.349.886.973.410.52
PaliGemma 3B 448px34.928.748.332.256.06.72
moondream232.424.340.370.565.23.87
MiniCPM-V-238.239.839.171.974.17.88
MM1.5 1B35.837.20.081.072.5NaN

Files

14 files · 4.50 GBWeights 4.49 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 14 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md8.05 KBedcd366157ed217155d2f438d282c017e20c504f210cdf58d71cbd3ef8206855
added_tokens.json92 B26ea04161b0495f893c3dd0c124eb01da31de88c804dec7bae85cf539e02b3a5
chat_template.json424 B4d394b3c624d9c548e149ba1cbdf40215904629fc5a171a04211adc241a7da0c
config.json7.08 KB66998495401d2d132ff0c68c481b0412d1e9702275f1668bdf8654f475ca8777
generation_config.json132 B19ee165adc602adc9619e957637038a3b8835e2b0ed843f2a9cac5ead13e106e
merges.txt466 KB0b54e8aa4e53d5383e2e4bc635a56b43f9647f7b13832d5d9ecd8f82dac4f510
model.safetensors4.49 GBe494121111ee81aaa2ac78becae7e40c55425b78e4c22a05a38ddf98b261efa1
preprocessor_config.json486 B08fd6c57e2f65c5f9563f3d9539dd611110a783435876e128944fb7e656a381f
processor_config.json68 Bfdc9e4394763a2432bb837c33cbf4f5f9dacbbeb956744febc8395f8d6a43314
special_tokens_map.json1.07 KBaa0ff906077086dfa9734a7f97f68c825877a48f9468807be65504495cdeef09
tokenizer.json3.52 MBcbfb7909eeb6746ad50a63a6fad2ba2aea041af5e0f9590667c62679f23b226e
tokenizer_config.json4.05 KB5b81a8705870bc82771cf0363fb9fc69916f434bbe2dddd2b71197f7b271813c
vocab.json801 KB82b84012e3add4d01d12ba14442026e49b8cbbaead1f79ecf3d919784f82dc79
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
a576ab7b43 pinned now manifest updated, same commit2026-11-14 21:11 UTC14 files · 4.50 GB
a576ab7b432026-11-14 21:11 UTC14 files · 4.50 GB

Use it

$ fw get HuggingFaceTB/SmolVLM-Base
# manifest sha256 cd6f38b8cade… · 4.50 GB · 14 files
$ fw verify ./SmolVLM-Base HuggingFaceTB/SmolVLM-Base
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolVLM-Base.json --dir ./SmolVLM-Base $ python3 fw.py verify ./SmolVLM-Base ./HuggingFaceTB__SmolVLM-Base.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolVLM-Base --revision a576ab7b4354916a0cb5b58a3bd973a9a526ee7c --local-dir ./SmolVLM-Base
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/SmolVLM-Base", revision="a576ab7b4354916a0cb5b58a3bd973a9a526ee7c") model = AutoModelForImageTextToText.from_pretrained("HuggingFaceTB/SmolVLM-Base", revision="a576ab7b4354916a0cb5b58a3bd973a9a526ee7c", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve HuggingFaceTB/SmolVLM-Base --revision a576ab7b4354916a0cb5b58a3bd973a9a526ee7c

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
edcd366157ed217155d2f438d282c017e20c504f210cdf58d71cbd3ef8206855
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: SmolVLM-BaseDate: 2026-11-14Commit: a576ab7Signed: 2DC28CC7B26A283B ✓
Upstream
HuggingFaceTB/SmolVLM-Base
Pinned commit
a576ab7b4354916a0cb5b58a3bd973a9a526ee7c
Manifest
SmolVLM-Base.json · .minisig
Manifest sha256
cd6f38b8cade5d0b8df01a2de4538139f058efb8155cbfe2d5a0c6cbc7a08c03
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/SmolVLM-Base.json $ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolVLM-Base.json.minisig $ minisign -Vm SmolVLM-Base.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/SmolLM2-1.7B-Instruct · this model is a finetune of it

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

Fine-tunes
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolVLM-Base
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. SmolVLM-Base.json. Provenance. Takedown history: none.
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