From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject:

SmolLM3-3B

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

Text generation model with 3.1B parameters. Safetensors weights, 6.17 GB in all. Published by HuggingFaceTB under Apache-2.0.

3.1B params6.17GBSmolLM3-3Bsafetensorspermissive
FactsParams3.1BSize6.17 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get HuggingFaceTB/SmolLM3-3B
# manifest sha256 95fceb1c9bfe… · 6.17 GB · 12 files
$ fw verify ./SmolLM3-3B HuggingFaceTB/SmolLM3-3B
From sourceHosted (signed)HuggingFaceTB/SmolLM3-3BLast 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 SmolLM3-3B-Base.

Works with

Overview

Size
6.17 GB
Weights
6.15 GB (safetensors)
Parameters
3.1B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
12, each with a sha256
Publisher
HuggingFaceTB
Added
2026-11-14
Section
alt.freeweights.smollm
Lineage

Original release from the publisher.

Base model: HuggingFaceTB/SmolLM3-3B-Base

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 a07cc9a. Shown as plain text with links; images open at the publisher.

SmolLM3#

Image: image/png

Table of Contents#

  1. Model Summary
  2. How to use
  3. Evaluation
  4. Training
  5. Limitations
  6. License

Model Summary#

SmolLM3 is a 3B parameter language model designed to push the boundaries of small models. It supports dual mode reasoning, 6 languages and long context. SmolLM3 is a fully open model that offers strong performance at the 3B–4B scale.

Image: image/png

The model is a decoder-only transformer using GQA and NoPE (with 3:1 ratio), it was pretrained on 11.2T tokens with a staged curriculum of web, code, math and reasoning data. Post-training included midtraining on 140B reasoning tokens followed by supervised fine-tuning and alignment via Anchored Preference Optimization (APO).

Key features#
  • Instruct model optimized for hybrid reasoning
  • Fully open model: open weights + full training details including public data mixture and training configs
  • Long context: Trained on 64k context and supports up to 128k tokens using YARN extrapolation
  • Multilingual: 6 natively supported (English, French, Spanish, German, Italian, and Portuguese)

For more details refer to our blog post: https://hf.co/blog/smollm3

How to use#

The modeling code for SmolLM3 is available in transformers v4.53.0, so make sure to upgrade your transformers version. You can also load the model with the latest vllm which uses transformers as a backend.

pip install -U transformers
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "HuggingFaceTB/SmolLM3-3B"
device = "cuda"  # for GPU usage or "cpu" for CPU usage

# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
).to(device)

# prepare the model input
prompt = "Give me a brief explanation of gravity in simple terms."
messages_think = [
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages_think,
    tokenize=False,
    add_generation_prompt=True,
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

# Generate the output
generated_ids = model.generate(**model_inputs, max_new_tokens=32768)

# Get and decode the output
output_ids = generated_ids[0][len(model_inputs.input_ids[0]) :]
print(tokenizer.decode(output_ids, skip_special_tokens=True))

Tip. We recommend setting temperature=0.6 and top_p=0.95 in the sampling parameters.

Long context processing#

The current config.json is set for context length up to 65,536 tokens. To handle longer inputs (128k or 256k), we utilize YaRN you can change the max_position_embeddings and rope_scaling` to:

{
  ...,
  "rope_scaling": {
    "factor": 2.0, #2x65536=131 072 
    "original_max_position_embeddings": 65536,
    "type": "yarn"
  }
}
Enabling and Disabling Extended Thinking Mode#

We enable extended thinking by default, so the example above generates the output with a reasoning trace. For choosing between enabling, you can provide the /think and /no_think flags through the system prompt as shown in the snippet below for extended thinking disabled. The code for generating the response with extended thinking would be the same except that the system prompt should have /think instead of /no_think.

prompt = "Give me a brief explanation of gravity in simple terms."
messages = [
    {"role": "system", "content": "/no_think"},
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)

We also provide the option of specifying the whether to use extended thinking through the enable_thinking kwarg as in the example below. You do not need to set the /no_think or /think flags through the system prompt if using the kwarg, but keep in mind that the flag in the system prompt overwrites the setting in the kwarg.

prompt = "Give me a brief explanation of gravity in simple terms."
messages = [
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=False
)
Agentic Usage#

SmolLM3 supports tool calling! Just pass your list of tools:

  • Under the argument xml_tools for standard tool-calling: these tools will be called as JSON blobs within XML tags, like <tool_call>{"name": "get_weather", "arguments": {"city": "Copenhagen"}}</tool_call>
  • Or under python_tools: then the model will call tools like python functions in a <code> snippet, like <code>get_weather(city="Copenhagen")</code>
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "HuggingFaceTB/SmolLM3-3B"

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint)

tools = [
    {
        "name": "get_weather",
        "description": "Get the weather in a city",
        "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "The city to get the weather for"}}}}
]

messages = [
    {
        "role": "user",
        "content": "Hello! How is the weather today in Copenhagen?"
    }
]

inputs = tokenizer.apply_chat_template(
    messages,
    enable_thinking=False, # True works as well, your choice!
    xml_tools=tools,
    add_generation_prompt=True,
    tokenize=True,
    return_tensors="pt"
)

outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
Using Custom System Instructions.#

You can specify custom instruction through the system prompt while controlling whether to use extended thinking. For example, the snippet below shows how to make the model speak like a pirate while enabling extended thinking.

prompt = "Give me a brief explanation of gravity in simple terms."
messages = [
    {"role": "system", "content": "Speak like a pirate./think"},
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)

For local inference, you can use llama.cpp, ONNX, MLX, MLC and ExecuTorch. You can find quantized checkpoints in this collection (https://huggingface.co/collections/HuggingFaceTB/smollm3-686d33c1fdffe8e635317e23)

vLLM and SGLang#

You can use vLLM and SGLang to deploy the model in an API compatible with OpenAI format.

SGLang#
python -m sglang.launch_server --model-path HuggingFaceTB/SmolLM3-3B
vLLM#
vllm serve HuggingFaceTB/SmolLM3-3B --enable-auto-tool-choice --tool-call-parser=hermes
Setting chat_template_kwargs#

You can specify chat_template_kwargs such as enable_thinking to a deployed model by passing the chat_template_kwargs parameter in the API request.

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "HuggingFaceTB/SmolLM3-3B",
  "messages": [
    {"role": "user", "content": "Give me a brief explanation of gravity in simple terms."}
  ],
  "temperature": 0.6,
  "top_p": 0.95,
  "max_tokens": 16384,
  "chat_template_kwargs": {"enable_thinking": false}
}'

Evaluation#

In this section, we report the evaluation results of SmolLM3 model. All evaluations are zero-shot unless stated otherwise, and we use lighteval to run them.

We highlight the best score in bold and underline the second-best score.

Instruction Model#
No Extended Thinking#

Evaluation results of non reasoning models and reasoning models in no thinking mode. We highlight the best and second-best scores in bold.

CategoryMetricSmoLLM3-3BQwen2.5-3BLlama3.1-3BQwen3-1.7BQwen3-4B
High school math competitionAIME 20259.32.90.38.017.1
Math problem-solvingGSM-Plus72.874.159.268.382.1
Competitive programmingLiveCodeBench v415.210.53.415.024.9
Graduate-level reasoningGPQA Diamond35.732.229.431.844.4
Instruction followingIFEval76.765.671.674.068.9
AlignmentMixEval Hard26.927.624.924.331.6
Tool CallingBFCL92.3-92.3 *89.595.0
Multilingual Q&AGlobal MMLU53.550.5446.849.565.1

(*): this is a tool calling finetune

Extended Thinking#

Evaluation results in reasoning mode for SmolLM3 and Qwen3 models:

CategoryMetricSmoLLM3-3BQwen3-1.7BQwen3-4B
High school math competitionAIME 202536.730.758.8
Math problem-solvingGSM-Plus83.479.488.2
Competitive programmingLiveCodeBench v430.034.452.9
Graduate-level reasoningGPQA Diamond41.739.955.3
Instruction followingIFEval71.274.285.4
AlignmentMixEval Hard30.833.938.0
Tool CallingBFCL88.888.895.5
Multilingual Q&AGlobal MMLU64.162.373.3
Base Pre-Trained Model#
English benchmarks#

Note: All evaluations are zero-shot unless stated otherwise. For Ruler 64k evaluation, we apply YaRN to the Qwen models with 32k context to extrapolate the context length.

CategoryMetricSmolLM3-3BQwen2.5-3BLlama3-3.2BQwen3-1.7B-BaseQwen3-4B-Base
Reasoning & CommonsenseHellaSwag76.1574.1975.5260.5274.37
ARC-CF (Average)65.6159.8158.5855.8862.11
Winogrande58.8861.4158.7257.0659.59
CommonsenseQA55.2849.1460.6048.9852.99
Knowledge & UnderstandingMMLU-CF (Average)44.1342.9341.3239.1147.65
MMLU Pro CF19.6116.6616.4218.0424.92
MMLU Pro MCF32.7031.3225.0730.3941.07
PIQA78.8978.3578.5175.3577.58
OpenBookQA40.6040.2042.0036.4042.40
BoolQ78.9973.6175.3374.4674.28
Math & Code
Coding & mathHumanEval+30.4834.1425.0043.2954.87
MBPP+52.9152.1138.8859.2563.75
MATH (4-shot)46.1040.107.4441.6451.20
GSM8k (5-shot)67.6370.1325.9265.8874.14
Long context
Ruler 32k76.3575.9377.5870.6383.98
Ruler 64k67.8564.9072.9357.1860.29
Ruler 128k61.0362.2371.3043.0347.23
Multilingual benchmarks#
CategoryMetricSmolLM3 3B BaseQwen2.5-3BLlama3.2 3BQwen3 1.7B BaseQwen3 4B Base
Main supported languages
FrenchMLMM Hellaswag63.9457.4757.6651.2661.00
Belebele51.0051.5549.2249.4455.00
Global MMLU (CF)38.3734.2233.7134.9441.80
Flores-200 (5-shot)62.8561.3862.8958.6865.76
SpanishMLMM Hellaswag65.8558.2559.3952.4061.85
Belebele47.0048.8847.0047.5650.33
Global MMLU (CF)38.5135.8435.6034.7941.22
Flores-200 (5-shot)48.2550.0044.4546.9350.16
GermanMLMM Hellaswag59.5649.9953.1946.1056.43
Belebele48.4447.8846.2248.0053.44
Global MMLU (CF)35.1033.1932.6032.7338.70
Flores-200 (5-shot)56.6050.6354.9552.5850.48
ItalianMLMM Hellaswag62.4953.2154.9648.7258.76
Belebele46.4444.7743.8844.0048.7844.88
Global MMLU (CF)36.9933.9132.7935.3739.26
Flores-200 (5-shot)52.6554.8748.8348.3749.11
PortugueseMLMM Hellaswag63.2257.3856.8450.7359.89
Belebele47.6749.2245.0044.0050.0049.00
Global MMLU (CF)36.8834.7233.0535.2640.66
Flores-200 (5-shot)60.9357.6854.2856.5863.43

The model has also been trained on Arabic (standard), Chinese and Russian data, but has seen fewer tokens in these languages compared to the 6 above. We report the performance on these langages for information.

CategoryMetricSmolLM3 3B BaseQwen2.5-3BLlama3.2 3BQwen3 1.7B BaseQwen3 4B Base
Other supported languages
ArabicBelebele40.2244.2245.3342.3351.78
Global MMLU (CF)28.5728.8127.6729.3731.85
Flores-200 (5-shot)40.2239.4444.4335.8239.76
ChineseBelebele43.7844.5649.5648.7853.22
Global MMLU (CF)36.1633.7939.5738.5644.55
Flores-200 (5-shot)29.1733.2131.8925.7032.50
RussianBelebele47.4445.8947.4445.2251.44
Global MMLU (CF)36.5132.4734.5234.8338.80
Flores-200 (5-shot)47.1348.7450.7454.7060.53

Training#

Model#
  • Architecture: Transformer decoder
  • Pretraining tokens: 11T
  • Precision: bfloat16
Software & hardware#
Open resources#

Here is an infographic with all the training details

  • The datasets used for pretraining can be found in this collection and those used in mid-training and post-training will be uploaded later
  • The training and evaluation configs and code can be found in the huggingface/smollm repository.
  • The training intermediate checkpoints (including the mid-training and SFT checkpoints) are available at HuggingFaceTB/SmolLM3-3B-checkpoints

Image: image/png

EU Summary of Public Content#

The EU AI Act requires all GPAI models to provide a Public Summary of Training Content according to a given template. You can find the summary for this model below, as well as in its development Space.

Limitations#

SmolLM3 can produce text on a variety of topics, but the generated content may not always be factually accurate, logically consistent, or free from biases present in the training data. These models should be used as assistive tools rather than definitive sources of information. Users should always verify important information and critically evaluate any generated content.

License#

Apache 2.0

Citation#

@misc{bakouch2025smollm3,
  title={{SmolLM3: smol, multilingual, long-context reasoner}},
  author={Bakouch, Elie and Ben Allal, Loubna and Lozhkov, Anton and Tazi, Nouamane and Tunstall, Lewis and Patiño, Carlos Miguel and Beeching, Edward and Roucher, Aymeric and Reedi, Aksel Joonas and Gallouédec, Quentin and Rasul, Kashif and Habib, Nathan and Fourrier, Clémentine and Kydlicek, Hynek and Penedo, Guilherme and Larcher, Hugo and Morlon, Mathieu and Srivastav, Vaibhav and Lochner, Joshua and Nguyen, Xuan-Son and Raffel, Colin and von Werra, Leandro and Wolf, Thomas},
  year={2025},
  howpublished={\url{https://huggingface.co/blog/smollm3}}
}

Files

12 files · 6.17 GBWeights 6.15 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 12 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md17.5 KB24f16f90b883af3618425a589783a944356a7fc2e3cfa69b579c9ff06963e178
chat_template.jinja5.60 KB3e0e275a527f249670056e0078e474eadbdd007c134b4fdfae5a7b3089702814
config.json1.92 KBc72b1031274ff4626e434d0019e88e95a767460135db9ee492eb80652b786af1
generation_config.json182 B3458d62b3f9654f4bbe285223b0f4e5a1e67cae61c92bb6aeaadf04468bf9e01
model-00001-of-00002.safetensors4.97 GBe5eed4113a925264c33e3cdf76cd9f547c06a207ef2270914a7274a2bf685ffd
model-00002-of-00002.safetensors1.18 GB6c3ad90646457295723e4da5ee8afac47006e20407b122df5174693dd8d68a43
model.safetensors.index.json26.9 KBe3a7254c086c4a78f95ad5864f435d165ffed1ed8998326ce5107b4423c15b76
notebook.ipynb317 KB2ecd8333659d597e1a75da6de90c33a62a445742796bf2a24c513696be87cdcd
special_tokens_map.json289 B12403efb970f069ba62ddf3b66166a27254be4a198166b61ad1ee604bd3a4515
tokenizer.json17.2 MB7b6a500b662a34eb3f0374db856ba4ad7de4c81040571d78dc0d357238930005
tokenizer_config.json50.4 KB59a64b39f05ee0acf7479bbccf99a44d9e481c1a4a494eb03838ae3c35eb29be
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
a07cc9a04f pinned now manifest updated, same commit2026-11-14 21:11 UTC12 files · 6.17 GB
a07cc9a04f2026-11-14 21:11 UTC12 files · 6.17 GB

Use it

$ fw get HuggingFaceTB/SmolLM3-3B
# manifest sha256 95fceb1c9bfe… · 6.17 GB · 12 files
$ fw verify ./SmolLM3-3B HuggingFaceTB/SmolLM3-3B
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolLM3-3B.json --dir ./SmolLM3-3B $ python3 fw.py verify ./SmolLM3-3B ./HuggingFaceTB__SmolLM3-3B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolLM3-3B --revision a07cc9a04f16550a088caea529712d1d335b0ac1 --local-dir ./SmolLM3-3B
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM3-3B", revision="a07cc9a04f16550a088caea529712d1d335b0ac1") model = AutoModelForCausalLM.from_pretrained("HuggingFaceTB/SmolLM3-3B", revision="a07cc9a04f16550a088caea529712d1d335b0ac1", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve HuggingFaceTB/SmolLM3-3B --revision a07cc9a04f16550a088caea529712d1d335b0ac1

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
24f16f90b883af3618425a589783a944356a7fc2e3cfa69b579c9ff06963e178
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: SmolLM3-3BDate: 2026-11-14Commit: a07cc9aSigned: 2DC28CC7B26A283B ✓
Upstream
HuggingFaceTB/SmolLM3-3B
Pinned commit
a07cc9a04f16550a088caea529712d1d335b0ac1
Manifest
SmolLM3-3B.json · .minisig
Manifest sha256
95fceb1c9bfe42fc6832228d8e114b7404191378ed07feb13d1cc5dab176f5ba
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/SmolLM3-3B.json $ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/SmolLM3-3B.json.minisig $ minisign -Vm SmolLM3-3B.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/SmolLM3-3B-Base · this model is a finetune of it

10 models in the catalog name this one as their parent.

Quantizations
10
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/SmolLM3-3B
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. SmolLM3-3B.json. Provenance. Takedown history: none.

Variants

10 quantized or adapter builds of SmolLM3-3B. 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