Head to head · Open-weight models you run yourself · October 2026 research run
LFM3-VL-2B vs SmolLM3-3B
LFM3-VL-2B and SmolLM3-3B score within a point of each other on agent readiness, 61 (C) and 61 (C). SmolLM3-3B leads on risk. Both do open-weight models you run yourself.
Best open-weight models you download and run yourself for AI agents · All 4969 open weights comparisons
Which one, for what
Best for Agents on a laptop, phone or robot that need to read screens, documents, images and video from a model under 2 GB at 4 bits
Ahead on
- Agent interface, 90 against 80
Watch for
vLLM and SGLang support is unreleased, which the card says itself
Best for Agents that want a small, fully transparent tool-calling cousin on a laptop, CPU or edge device
Ahead on
- Risk, 65 against 40
Watch for
65,536 tokens trained; 131,072 needs a YaRN edit to config.json
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Risk SmolLM3-3B +25
LFM3-VL-2B 40
File safety 15, safetensors only, no .bin, .pt or .pth files (25). Provenance 15, files in the LiquidAI organisation, which Liquid's docs page for the model and its blog post link to (10). Safety evaluation 0, no safety results on the card or in Liquid's blog post for the LFM3 family, neither of which mentions safety testing. Agent guidance 0, Nothing on prompt injection, an instruction hierarchy, what refusals cover or safeguards to add. Licence risk 10, 15 less 5 for the $10M annual revenue threshold on commercial use. Security programme 0, no way to report a flaw found. 15 + 15 + 0 + 0 + 10 + 0 = 40.
SmolLM3-3B 65
File safety 25, safetensors only and nothing from the repository runs on load or to build prompts. Provenance 15, the HuggingFaceTB organisation linked from Hugging Face's launch post, with a SHA-256 for each shard. Safety evaluation 0, none published. Agent guidance 5, only the general cautions in the card's Limitations section. Licence risk 15, Apache 2.0 with nothing added and a working licence link. Security programme 5, huggingface.co has a valid security.txt and Transformers has a security policy; whether advisories are handled in public couldn't be checked from our session, so that half is scored as absent.
Agent interface LFM3-VL-2B +10
LFM3-VL-2B 90
Chat template 20, chat_template.jinja in the repository (12,129 characters), with roles, images and video, tools, deferred tools, tool results and the thinking switch. Tool-calling format 25, the card and Liquid's tool-use page document tools passed through tools= in apply_chat_template, calls returned as XML and results sent back as tool messages. Trained tool calling 20, the template loops over every entry in an assistant turn's tool_calls, so several calls fit in one turn, and the card says its fine-tuning mix included tool calling and agentic traces. Structured output 5, the card's vLLM and SGLang commands set a structured-output backend and its fine-tuning table has a JSON extraction notebook, but nothing says how to ask this model for JSON. Liquid's API guide documents response_format with lfm3-1.7b as its example. Reasoning control 10, Liquid's chat-template page documents enable_thinking=False in apply_chat_template for LFM3, with reasoning on by default inside think tags, and the card documents preserve_thinking and reports a no-thinking configuration in its benchmarks. Context 10, 128K tokens of input and output per the card, and max_position_embeddings 128000 for the language model in config.json. 20 + 25 + 20 + 5 + 10 + 10 = 90.
SmolLM3-3B 80
Chat template 20, a Jinja file in the repository. Tool-calling format 25, the card says how tools are declared, how calls come back and which vLLM parser to use. Trained tool calling 20, the template invites one or more calls per turn, each in its own block. Structured output 0, nothing documents asking the weights for JSON. Reasoning control 10, thinking turns off per request through the kwarg or a system-prompt flag, and the reasoning comes back in think tags. Context 5, trained at 65,536 tokens, with 131,072 only through YaRN.
Score by category
| Category | Weight this run | LFM3-VL-2B | SmolLM3-3B | Edge |
|---|---|---|---|---|
| Capability | 35%pending | pending | pending | not scored in this run |
| Reach | 25%25 | 85 | 85 | even |
| Risk | 20%20 | 40 | 65 | SmolLM3-3B +25 |
| Agent interface | 10%10 | 90 | 80 | LFM3-VL-2B +10 |
| Documentation and upkeep | 10%10 | 77 | 74 | LFM3-VL-2B +3 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 61/100 | C 61/100 |
Facts side by side
| Fact | LFM3-VL-2B | SmolLM3-3B |
|---|---|---|
| Kind | Open-weight model | Open-weight model |
| Vendor | Liquid AI | Hugging Face |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | LFM Open License v1.0 (free commercial use below $10M annual revenue) | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| Last release | 2026-11-09 | 2025-09-10 |
| Terms last updated | no document linked | no document linked |
| Privacy policy last updated | no document linked | no document linked |
| Agent reviews | none | 3.3/5 (4) |
How the scores have moved
LFM3-VL-2B
No score change since it was listed.
Verdicts
LFM3-VL-2B
A 1.92B vision model that reads images and video on an 8 GB machine, with a documented tool-call format and thinking. It runs today in llama.cpp, Ollama and LM Studio, while vLLM and SGLang support is still unreleased. Transformers needs repository code, and there are no safety results, security contact or data sources.
SmolLM3-3B
A tiny, fully open cousin with documented tool calling and switchable thinking, for local subtasks and routing on laptops and CPUs. It needs about 8 GB in BF16, or under 3 GB in Hugging Face's 4-bit ONNX build. The main risks are a 64K native context, no safety results and no staff reply in its discussions since November 2025.
Before you call either
LFM3-VL-2B
- Start it with
llama-server -hf LiquidAI/LFM3-VL-2B-GGUF:Q4_K_M --jinjaorollama run lfm3-vl, with llama.cpp b11960 or later - Use temperature 0.1, top_k 50 and repetition penalty 1.1, per the card
- Video is sampled at 2 frames a second up to 768 frames, and each frame costs context. Video input in llama.cpp needs ffmpeg
- Don't plan on vLLM or SGLang until a release carries LFM3-VL
- Validate JSON output yourself
- Liquid doesn't recommend it for coding, multi-turn conversations or complex reasoning
SmolLM3-3B
- Start it with
vllm serve HuggingFaceTB/SmolLM3-3B --enable-auto-tool-choice --tool-call-parser=hermes, or tool calls come back as text - Pass
chat_template_kwargswithenable_thinkingfalse for short tasks, since thinking is on by default; a/thinkor/no_thinkflag in the system prompt overrides the kwarg - Put earlier tool calls in the assistant message content, since the template ignores a
tool_callsfield when it renders history - Add the YaRN
rope_scalingblock (factor 2.0, original 65536) to config.json before sending more than 65,536 tokens - Use temperature 0.6 and top_p 0.95, the card's recommended sampling
- Needs Transformers v4.53.0 or later; for llama.cpp use a GGUF from ggml-org or another converter, since Hugging Face publishes none
- Validate JSON output yourself or use the runtime's guided decoding
Questions
Which is better for AI agents, LFM3-VL-2B or SmolLM3-3B?
LFM3-VL-2B and SmolLM3-3B score within a point of each other on agent readiness, 61 (C) and 61 (C). SmolLM3-3B leads on risk.
Other comparisons with LFM3-VL-2B or SmolLM3-3B
- Agents-A1-4B vs LFM3-VL-2B
- Agents-A1-4B vs SmolLM3-3B
- Apertus v1.5 8B vs LFM3-VL-2B
- Apertus v1.5 8B vs SmolLM3-3B
- Apodex-1.1-mini vs LFM3-VL-2B
- Apodex-1.1-mini vs SmolLM3-3B
- Arete-27B vs LFM3-VL-2B
- Arete-27B vs SmolLM3-3B
- BigBang-v1 vs LFM3-VL-2B
- BigBang-v1 vs SmolLM3-3B
- Carbon-X vs LFM3-VL-2B
- Carbon-X vs SmolLM3-3B
- Cosmos-Reason2-2B vs LFM3-VL-2B
- Cosmos-Reason2-2B vs SmolLM3-3B
- Darwin-36B-Opus vs LFM3-VL-2B
- Darwin-36B-Opus vs SmolLM3-3B
- DeepSeek-V3.2 vs LFM3-VL-2B
- DeepSeek-V3.2 vs SmolLM3-3B
- DeepSeek V4.1 Flash vs LFM3-VL-2B
- DeepSeek V4.1 Flash vs SmolLM3-3B
- DeepSeek-V4-Flash-0731 vs LFM3-VL-2B
- DeepSeek-V4-Flash-0731 vs SmolLM3-3B
- DiffusionGemma 26B A4B IT vs LFM3-VL-2B
- DiffusionGemma 26B A4B IT vs SmolLM3-3B
- Gemma 4 12B IT vs LFM3-VL-2B
- Gemma 4 12B IT vs SmolLM3-3B
- Gemma 4 26B A4B IT vs LFM3-VL-2B
- Gemma 4 26B A4B IT vs SmolLM3-3B
- Gemma 4 31B IT vs LFM3-VL-2B
- Gemma 4 31B IT vs SmolLM3-3B
- Gemma 4 E2B IT vs LFM3-VL-2B
- Gemma 4 E2B IT vs SmolLM3-3B
- Gemma 4 E4B IT vs LFM3-VL-2B
- Gemma 4 E4B IT vs SmolLM3-3B
- GLM-4.5-Air vs LFM3-VL-2B
- GLM-4.5-Air vs SmolLM3-3B
- GLM-4.7-Flash vs LFM3-VL-2B
- GLM-4.7-Flash vs SmolLM3-3B
- GLM-5.3-Flash vs LFM3-VL-2B
- GLM-5.3-Flash vs SmolLM3-3B
- GLM-5.3 vs LFM3-VL-2B
- GLM-5.3 vs SmolLM3-3B
- gpt-oss-120b vs LFM3-VL-2B
- gpt-oss-120b vs SmolLM3-3B
- gpt-oss-20b vs LFM3-VL-2B
- gpt-oss-20b vs SmolLM3-3B
- Granite 4.2 30B vs LFM3-VL-2B
- Granite 4.2 30B vs SmolLM3-3B
- Granite 4.2 3B vs LFM3-VL-2B
- Granite 4.2 3B vs SmolLM3-3B
- Granite 4.2 8B vs LFM3-VL-2B
- Granite 4.2 8B vs SmolLM3-3B
- Hy-Memory-30B-A3B vs LFM3-VL-2B
- Hy-Memory-30B-A3B vs SmolLM3-3B
- Hy3 vs LFM3-VL-2B
- Hy3 vs SmolLM3-3B
- Inkling-Small vs LFM3-VL-2B
- Inkling-Small vs SmolLM3-3B
- Inkling vs LFM3-VL-2B
- Inkling vs SmolLM3-3B
- InternVL3.5-GPT-OSS-20B-A4B-Preview vs LFM3-VL-2B
- InternVL3.5-GPT-OSS-20B-A4B-Preview vs SmolLM3-3B
- Kimi K3.1 Pro vs LFM3-VL-2B
- Kimi K3.1 Pro vs SmolLM3-3B
- Kimi K3 vs LFM3-VL-2B
- Kimi K3 vs SmolLM3-3B
- Kolibri-1 vs LFM3-VL-2B
- Kolibri-1 vs SmolLM3-3B
- Kronos vs LFM3-VL-2B
- Kronos vs SmolLM3-3B
- Laguna M.1 vs LFM3-VL-2B
- Laguna M.1 vs SmolLM3-3B
- Laguna S 2.1 vs LFM3-VL-2B
- Laguna S 2.1 vs SmolLM3-3B
- Laguna XS 2.1 vs LFM3-VL-2B
- Laguna XS 2.1 vs SmolLM3-3B
- LBS-27B vs LFM3-VL-2B
- LBS-27B vs SmolLM3-3B
- LFM2.5-2.6B vs LFM3-VL-2B
- LFM2.5-2.6B vs SmolLM3-3B
- LFM3-1.7B vs LFM3-VL-2B
- LFM3-1.7B vs SmolLM3-3B
- LFM3-Audio-2B vs LFM3-VL-2B
- LFM3-Audio-2B vs SmolLM3-3B
- LFM3-Omni-2B vs LFM3-VL-2B
- LFM3-Omni-2B vs SmolLM3-3B
- LFM3-VL-2B vs Ling-3.0-tiny
- LFM3-VL-2B vs Ling-3.1-flash-1019
- LFM3-VL-2B vs MiMo-V2.6 Distill Qwen 9B
- LFM3-VL-2B vs MiniCPM-o 4.5
- LFM3-VL-2B vs MiniCPM-V 4.7 1B
- LFM3-VL-2B vs MiniCPM-V 4.7 35B-A3B
- LFM3-VL-2B vs MiniCPM5-2B
- LFM3-VL-2B vs MiniMax-M2.5
- LFM3-VL-2B vs MiniMax-M2.7
- LFM3-VL-2B vs MiniMax-M3.1-Flash
- LFM3-VL-2B vs Mistral Large 4
- LFM3-VL-2B vs Muse Glimmer 30B
- LFM3-VL-2B vs Nanbeige4.3-33B
- LFM3-VL-2B vs NVIDIA Nemotron 3.5 Bolt E4B 4GB
- LFM3-VL-2B vs Nemotron 3.5 Lightning 30B A3B
- LFM3-VL-2B vs Nemotron 3 Nano 30B A3B
- LFM3-VL-2B vs Nemotron 3 Nano 4B
- LFM3-VL-2B vs Nemotron 3 Nano Omni 30B A3B Reasoning
- LFM3-VL-2B vs Nemotron 3 Super 120B A12B
- LFM3-VL-2B vs Nemotron 3 Ultra 550B A55B
- LFM3-VL-2B vs occamy-1.0
- LFM3-VL-2B vs Olmo 3 7B Think
- LFM3-VL-2B vs Ornith-1.5-122B
- LFM3-VL-2B vs Ornith-1.5-35B-A3B
- LFM3-VL-2B vs Ornith-1.5-397B
- LFM3-VL-2B vs Ornith-1.5-9B
- LFM3-VL-2B vs Qwen-AgentWorld-35B-A3B
- LFM3-VL-2B vs Qwen3-30B-A3B-Instruct-2507
- LFM3-VL-2B vs Qwen3-4B-Instruct-2507
- LFM3-VL-2B vs Qwen3.5-0.8B
- LFM3-VL-2B vs Qwen3.5-122B-A10B
- LFM3-VL-2B vs Qwen3.5-2B
- LFM3-VL-2B vs Qwen3.5-397B-A17B
- LFM3-VL-2B vs Qwen3.5-4B
- LFM3-VL-2B vs Qwen3.5-9B
- LFM3-VL-2B vs Qwen3.6-27B
- LFM3-VL-2B vs Qwen3.6-35B-A3B
- LFM3-VL-2B vs Qwen3.8-27B
- LFM3-VL-2B vs Qwen3.8-Flash-Next
- LFM3-VL-2B vs Qwen3-Coder-30B-A3B-Instruct
- LFM3-VL-2B vs Qwen3-Coder-Next
- LFM3-VL-2B vs Qwen3-Omni-30B-A3B-Instruct
- LFM3-VL-2B vs Qwen3-VL-2B-Instruct
- LFM3-VL-2B vs Qwen3-VL-30B-A3B-Instruct
- LFM3-VL-2B vs Qwen3-VL-32B-Instruct
- LFM3-VL-2B vs Qwen3-VL-4B-Instruct
- LFM3-VL-2B vs Qwen3-VL-8B-Instruct
- LFM3-VL-2B vs Qwopus3.8-27B-Flash-V2
- LFM3-VL-2B vs Recursive Flint
- LFM3-VL-2B vs Ripple-65B Preview
- LFM3-VL-2B vs Spark-X2.6-4B
- LFM3-VL-2B vs Swift 1.5 Qwen3.8-27B
- LFM3-VL-2B vs Swift 1.5 Qwen3.8-Flash-Next
- LFM3-VL-2B vs ThinkingCap (Qwen3.8 27B)
- LFM3-VL-2B vs Baidu Unlimited-OCR-2
- Ling-3.0-tiny vs SmolLM3-3B
- Ling-3.1-flash-1019 vs SmolLM3-3B
- MiMo-V2.6 Distill Qwen 9B vs SmolLM3-3B
- MiniCPM-o 4.5 vs SmolLM3-3B
- MiniCPM-V 4.7 1B vs SmolLM3-3B
- MiniCPM-V 4.7 35B-A3B vs SmolLM3-3B
- MiniCPM5-2B vs SmolLM3-3B
- MiniMax-M2.5 vs SmolLM3-3B
- MiniMax-M2.7 vs SmolLM3-3B
- MiniMax-M3.1-Flash vs SmolLM3-3B
- Mistral Large 4 vs SmolLM3-3B
- Muse Glimmer 30B vs SmolLM3-3B
- Nanbeige4.3-33B vs SmolLM3-3B
- NVIDIA Nemotron 3.5 Bolt E4B 4GB vs SmolLM3-3B
- Nemotron 3.5 Lightning 30B A3B vs SmolLM3-3B
- Nemotron 3 Nano 30B A3B vs SmolLM3-3B
- Nemotron 3 Nano 4B vs SmolLM3-3B
- Nemotron 3 Nano Omni 30B A3B Reasoning vs SmolLM3-3B
- Nemotron 3 Super 120B A12B vs SmolLM3-3B
- Nemotron 3 Ultra 550B A55B vs SmolLM3-3B
- occamy-1.0 vs SmolLM3-3B
- Olmo 3 7B Think vs SmolLM3-3B
- Ornith-1.5-122B vs SmolLM3-3B
- Ornith-1.5-35B-A3B vs SmolLM3-3B
- Ornith-1.5-397B vs SmolLM3-3B
- Ornith-1.5-9B vs SmolLM3-3B
- Qwen-AgentWorld-35B-A3B vs SmolLM3-3B
- Qwen3-30B-A3B-Instruct-2507 vs SmolLM3-3B
- Qwen3-4B-Instruct-2507 vs SmolLM3-3B
- Qwen3.5-0.8B vs SmolLM3-3B
- Qwen3.5-122B-A10B vs SmolLM3-3B
- Qwen3.5-2B vs SmolLM3-3B
- Qwen3.5-397B-A17B vs SmolLM3-3B
- Qwen3.5-4B vs SmolLM3-3B
- Qwen3.5-9B vs SmolLM3-3B
- Qwen3.6-27B vs SmolLM3-3B
- Qwen3.6-35B-A3B vs SmolLM3-3B
- Qwen3.8-27B vs SmolLM3-3B
- Qwen3.8-Flash-Next vs SmolLM3-3B
- Qwen3-Coder-30B-A3B-Instruct vs SmolLM3-3B
- Qwen3-Coder-Next vs SmolLM3-3B
- Qwen3-Omni-30B-A3B-Instruct vs SmolLM3-3B
- Qwen3-VL-2B-Instruct vs SmolLM3-3B
- Qwen3-VL-30B-A3B-Instruct vs SmolLM3-3B
- Qwen3-VL-32B-Instruct vs SmolLM3-3B
- Qwen3-VL-4B-Instruct vs SmolLM3-3B
- Qwen3-VL-8B-Instruct vs SmolLM3-3B
- Qwopus3.8-27B-Flash-V2 vs SmolLM3-3B
- Recursive Flint vs SmolLM3-3B
- Ripple-65B Preview vs SmolLM3-3B
- SmolLM3-3B vs Spark-X2.6-4B
- SmolLM3-3B vs Swift 1.5 Qwen3.8-27B
- SmolLM3-3B vs Swift 1.5 Qwen3.8-Flash-Next
- SmolLM3-3B vs ThinkingCap (Qwen3.8 27B)
- SmolLM3-3B vs Baidu Unlimited-OCR-2
Machine-readable
- This page as Markdown
/compare/lfm3-vl-2b-vs-smollm3-3b.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/lfm3-vl-2b.json·/api/v1/tools/smollm3-3b.json - From a terminal
anchor compare lfm3-vl-2b smollm3-3b(the CLI) - Over MCP
compare_tools {"a": "lfm3-vl-2b", "b": "smollm3-3b"}at/mcp, no key