- Das SmolLM3-Modell ist ein Open-Source-LLM, das bei einer Größe von 3B Parametern zugleich auf Effizienz und Leistung abzielt
- Es unterstützt 6 Sprachen, darunter Englisch, Französisch, Spanisch, Deutsch, Italienisch und Portugiesisch, und lässt sich bis auf eine Kontextlänge von 128k erweitern
- Mit dem Dual-Mode (Reasoning/Non-Reasoning) kann über die Flags
/thinkund/no_thinkzwischen den Modi umgeschaltet werden - Es stellt verschiedene Trainingsphasen wie Pretraining, Mid-Training und Post-Training sowie die offengelegten Datensätze und Engineering-Blueprints vollständig bereit
- Bei der Leistung übertrifft es Llama-3.2-3B und Qwen2.5-3B und ist auf dem Niveau von 4B-Modellen konkurrenzfähig
Überblick
SmolLM3 ist ein Open-Source-LLM, das im Maßstab von 3B Parametern zugleich auf Effizienz und Leistung ausgerichtet ist. Ein zentrales Unterscheidungsmerkmal ist, dass es klein und schnell ist und zugleich Long-Context, Mehrsprachigkeit und Reasoning unterstützt.
- Mit 3B Parametern auf 11 Billionen (11T) Tokens trainiert
- Erreicht State-of-the-Art-Leistung (SoTA) und kann mit 4B-Modellen konkurrieren
- Dual-Mode-Instruct-Modell: Umschaltung zwischen Reasoning und Non-Reasoning über
/thinkund/no_think - Unterstützung für Englisch, Französisch, Spanisch, Deutsch, Italienisch und Portugiesisch
- Bis zu 128k Kontext durch NoPE und YaRN
Die Architektur des gesamten Trainingsprozesses, die Datenmischung und die Rezepte für jede Phase werden vollständig offengelegt.
Pretraining
Architektur und Trainingseinstellungen
SmolLM3 basiert auf einem Transformer-Decoder und modifiziert die Llama-Architektur, um Effizienz und Leistung bei langen Kontexten zu verbessern.
- Grouped Query Attention (GQA): speichereffizienter als Multi-Head Attention bei gleichwertiger Leistung
- NoPE: Rotary Position Embedding wird in jeder 4. Schicht entfernt, um die Long-Context-Leistung zu verbessern
- Maskierung innerhalb von Dokumenten: Durch Maskierung wird verhindert, dass unterschiedliche Dokumente gegenseitig attendieren, was stabiles Long-Context-Training unterstützt
- Kein Weight Decay auf Embeddings: sorgt für stabiles Trainingsverhalten
Die Trainingskonfiguration:
- Global Batch von 2.36M Tokens, Sequenzlänge 4096, Learning Rate 2e-4, AdamW(β1:0.9, β2:0.95), Weight Decay 0.1, Gradient Clipping 1
- WSD-Scheduler: 2000 Warmup-Schritte, lineare Absenkung in den letzten 10 %
- Verteiltes Training mit dem nanotron-Framework, Nutzung von datatrove-Daten und dem Evaluierungstool lighteval
- 384 H100-GPUs, 24 Tage Training
Datenmischung und stufenweises Training
Pretraining in 3 Phasen:
- Phase 1 (0T→8T): Web (85 %, davon 12 % mehrsprachig), Code (12 %), Mathematik (3 %)
- Phase 2 (8T→10T): Web (75 %, davon 12 % mehrsprachig), Code (15 %), Mathematik (10 %) - zusätzliche höherwertige Code- und Mathematikdaten
- Phase 3 (10T→11.1T): Web (63 %, davon 12 % mehrsprachig), Code (24 %), Mathematik (13 %) - Upsampling hochwertiger Code- und Mathematikdaten sowie Einführung von Instruction-/Reasoning-Daten
Die Mischungsverhältnisse der Daten in jeder Phase wurden durch zahlreiche Ablationsexperimente optimiert.
Nach dem Pretraining wurde zusätzlich ein Mid-Training angewendet, um Long-Context- und Reasoning-Leistung zu stärken.
Mid-Training
Long-Context-Training
Nach dem Pretraining wurde die Kontextlänge mit zusätzlichen 100B Tokens in zwei Stufen (4k→32k→64k) erweitert.
- Erweiterung der Länge durch Anpassung von RoPE theta
- Upsampling von Mathematik-, Code- und Reasoning-Daten
- Optimierung der Leistung auf langen Sequenzen mit NoPE und Decay Mixture
- Im Training bis 64k, bei der Inferenz mit YaRN bis 128k nutzbar
Mid-Training für Reasoning
Um die Reasoning-Fähigkeit zu erhöhen, wurde das Modell mit 35B Tokens (OpenThoughts3-1.2M, Llama-Nemotron-Post-Training-Dataset usw.) erneut trainiert.
- Training allgemeiner Reasoning-Fähigkeiten ohne Spezialisierung auf ein bestimmtes Fachgebiet
- Nutzung von ChatML-Template und Wrapped Packing
- Speicherung von Checkpoints nach 4 Epochen (~140B Tokens)
Post-Training
Während die meisten Reasoning-Modelle geschlossene oder komplexe RL-Prozesse benötigen, implementiert SmolLM3 mit offenen Daten und klaren Rezepten eine Dual-Instruction-Struktur für Reasoning und Non-Reasoning.
Chat-Template
- Umschaltung des Reasoning-Modus durch Einfügen der Flags
/thinkund/no_thinkin den System-Prompt - Separate Abschnitte für XML Tools und Python Tools zur Unterstützung von Code- und Tool-Aufrufen
- Nutzung von Systemnachricht und Metadaten (Datum, Knowledge Cut-off, Reasoning-Modus), mit flexibler Möglichkeit zum Override
Supervised Finetuning (SFT)
Nach dem Mid-Training mit 140B Reasoning-Daten wurde ein überwachtes Finetuning mit 1.8B Tokens (SFT-Daten: logisches Reasoning/Nicht-Reasoning) durchgeführt.
- Zur Ergänzung seltener Reasoning-Domänen wurden synthetische Reasoning-Daten mit Qwen3-32B erzeugt
- Maximierung von Speicher- und Effizienzvorteilen mit Verfahren wie Best-Fit Decreasing Packing
- Vollständige Daten und Trainingsskripte sollen veröffentlicht werden
Anchored Preference Optimization (APO)
- Nach dem SFT wurde das Modell über APO, eine Variante von DPO, auf Basis von Tulu3 Preferences (Non-Reasoning) und synthetischen Preference-Paaren von Qwen3-32B/0.6B (Reasoning) aligned
- Die Loss wird aus Triplet-Prompt + Antwort aufgebaut, was stabile Optimierung und gute Leistung ermöglicht
- Da durch das Reasoning-Mid-Training eine Verschlechterung der Long-Context-Leistung beobachtet wurde, wurde dies durch Model Merging überwunden
Model Merging
- Nutzung der Bibliothek MergeKit, lineares Merging im Verhältnis APO-Checkpoint-Modelsoup (0.9) + Mid-Training-Checkpoint (0.1)
- Wiederherstellung der 128k-Long-Context-Leistung bei gleichzeitigem Erhalt der Gesamtleistung
- Veröffentlichung des finalen Modells mit dem optimalen Checkpoint
Evaluierung
Basismodell
In 12 wichtigen Benchmarks deutlich stärker als andere 3B-Modelle und nahe an der Leistung von 4B-Modellen
- Ausgewogene Stärken bei Dokumentenverständnis, Reasoning, Mathematik und Coding
- Klare Fähigkeiten zur Längenskalierung, etwa bei RULER 64k
- Mehrsprachige Fähigkeiten belegt durch Global MMLU, MLMM HellaSwag, Flores-200, Belebele usw.
- Konsistente Leistung auch in fünf europäischen Sprachen neben Englisch
Dual-Instruct-/Reasoning-Modell
Non-Reasoning-Evaluierung
SmolLM3 ist Llama3.2-3B Instruct und Qwen2.5 3B Instruct überlegen und bietet ein ausgewogenes Verhältnis aus Effizienz und Leistung auf dem Niveau von 4B-Reasoning-Modellen.
Reasoning-Evaluierung
Bei aktiviertem /think steigt die Leistung in den meisten Benchmarks deutlich an
- AIME 2025 (36.7 % vs. 9.3 %), LiveCodeBench (30.0 % vs. 15.2 %), GPQA Diamond (41.7 % vs. 35.7 %) usw.; auch schwierige Aufgaben werden gelöst
- 3B-Reasoning auf Augenhöhe mit Qwen3 4B, starke mathematische Reasoning-Fähigkeiten und gutes Lösen komplexer Probleme
Der Dual-Mode ermöglicht die Wahl zwischen Geschwindigkeit und tiefer Analyse.
Hinweise zur praktischen Nutzung
SmolLM3 wird offiziell ab transformers v4.53.0 unterstützt
- Laden des Modells, Schreiben von Prompts und Ausführen von Inferenz mit einfachem Code
- Umschaltung zwischen Reasoning und Non-Reasoning über die Flags
/thinkund/no_thinkim System-Prompt
Für Tool-Calling (Agentic) werden die Parameter xml_tools und python_tools unterstützt.
Fazit
SmolLM3 ist ein vollständig offenes Modell, das im 3B-Maßstab Long-Context, Mehrsprachigkeit und Reasoning zugleich unterstützt.
- Vollständige Offenlegung der Engineering-Blueprints wie Trainingsrezepte für alle Phasen, Datensätze und Trainingslogs
- Maximiert die Möglichkeit für die Community, sich an Verbesserungen und Validierung zu beteiligen
Materialien
- Modell, Skripte, Datensätze usw.: HuggingFaceTB/SmolLM3-3B
- Für Paper, Evaluierung, Leichtgewichtsversionen und Merging-Tools siehe die jeweiligen Links zu GitHub, Hugging Face und Papers
1 Kommentare
Hacker-News-Kommentare
llama.cpp). Außer Microsoft gibt es derzeit kaum Firmen, die Local AI dauerhaft ernst nehmen. Normalerweise halte ich mich mit solchen Aussagen zurück, aber auch wenn HF wirklich ein vorbildlicher Akteur ist, finde ich es problematisch, nur die Stärke anderer Modelle zu betonen, ohne den Superstar zu erwähnen – das führt dazu, dass die langjährige lokale SoTA in diesem Bereich übergangen wird. Deshalb wollte ich mich diesmal bewusst dazu äußern.llama.cppund andere Inference-Engines gemacht. Zum Ausführen folgenden Befehl eingeben:./llama.cpp/llama-cli -hf unsloth/SmolLM3-3B-GGUF:Q4_K_XL --jinja -ngl 99wasmsinnvoller; es gibt bereits Beispiele, bei denen dieser Ansatz erfolgreich ist.