SmolLM3 - 小型で、多言語対応の長コンテキスト推論LLM
(huggingface.co)- SmolLM3モデルは、3Bパラメータ規模で効率性と性能の両立を目指すオープンソースLLM
- 英語、フランス語、スペイン語、ドイツ語、イタリア語、ポルトガル語の6言語をサポートし、最大128kコンテキスト長まで拡張対応
- dual mode(reasoning/non-reasoning) で
/think、/no_thinkフラグを使って推論モードを切り替え可能 - Pretraining、mid-training、post-trainingの多様な学習段階と、公開されたデータセットおよびエンジニアリング・ブループリントをすべて提供
- 性能面では Llama-3.2-3B と Qwen2.5-3B を上回り、4Bモデルに匹敵する競争力を持つ
概要
SmolLM3は、3Bパラメータ規模で効率性と性能を同時に追求するオープンソースの大規模言語モデル。小型かつ高速でありながら、long-context、多言語、推論まで幅広く対応している点が大きな差別化要素。
- 3Bパラメータで 11兆(11T)トークン を学習
- 最新性能(SoTA)を達成し、4Bモデルと競合可能
- デュアルモードのインストラクトモデル:
/thinkと/no_thinkにより reasoning / non-reasoning の切り替えをサポート - 英語、フランス語、スペイン語、ドイツ語、イタリア語、ポルトガル語をサポート
- NoPE、YaRN適用 により最大128kコンテキスト
学習プロセス全体のアーキテクチャ、データ構成、各段階のレシピを完全公開している。
Pretraining
アーキテクチャと学習設定
SmolLM3は transformer decoder ベースで、Llama構造を効率性と長文脈性能が高まるように改良している。
- Grouped Query Attention(GQA) : multi-head attentionよりメモリ効率が高く、同等の性能を維持
- NoPE: rotary position embeddingを4番目のレイヤーごとに除去し、長コンテキスト性能を改善
- 文書内マスキング: 異なる文書同士が互いにattendingしないようにマスキングし、安定したlong-context学習を支援
- embeddingからweight decayを除去: 安定した学習動作を確保
学習構成は以下の通り:
- 2.36Mトークンのグローバルバッチ、4096シーケンス長、learning rate 2e-4、AdamW(β1:0.9, β2:0.95)、weight decay 0.1、gradient clipping 1
- WSDスケジューラ: 2000ウォームアップ、最後の10%で線形減衰
- nanotron フレームワークで分散学習、datatrove データ、lighteval 評価ツールを活用
- H100 GPU 384台、24日間学習
データ混合と段階的学習
3段階の事前学習:
- 第1段階 (0T→8T) : Web(85%, 12%多言語)、コード(12%)、数学(3%)
- 第2段階 (8T→10T) : Web(75%, 12%多言語)、コード(15%)、数学(10%) - より高品質なコードと数学データを追加
- 第3段階 (10T→11.1T) : Web(63%, 12%多言語)、コード(24%)、数学(13%) - 高品質コード、数学のアップサンプリング、instruction/推論データを導入
各段階のデータ混合比は、多数のablation実験を通じて最適化されている。
事前学習後には、long-contextとreasoning性能を強化するための 中間(mid-)トレーニング を追加で適用。
Mid-training
Long-contextトレーニング
事前学習後、追加100Bトークン を投入してコンテキスト長を2段階(4k→32k→64k)で拡張。
- RoPE theta 調整による長さ拡張
- 数学、コード、推論データのアップサンプリング
- NoPEおよびdecay mixtureにより長シーケンス性能を最適化
- 学習時は64kまで、推論時にYaRN適用 で128kまで処理可能
Reasoning中間トレーニング
推論能力を高めるため、35Bトークン (OpenThoughts3-1.2M、Llama-Nemotron-Post-Training-Datasetなど) でモデルを再学習。
- 特定ドメインに偏らず、汎用的なreasoning能力を学習
- ChatMLテンプレート、wrapped packingを活用
- 4エポック(~140Bトークン)実施後にチェックポイントを保存
Post-training
多くのreasoningモデルはクローズド、あるいは複雑なRLプロセスを必要としてきたが、SmolLM3は 公開データと明確なレシピ により dual instruction(推論/non推論) 構造を実現している。
Chatテンプレート
/think、/no_thinkフラグをシステムプロンプトに入れてreasoningモードを切り替え- XML Tools、Python Toolsの個別セクションを提供し、コード/ツール呼び出しをサポート
- systemメッセージ、metadata(date, knowledge cut-off, reasoning mode)を活用し、柔軟にオーバーライド可能
Supervised Finetuning(SFT)
140Bのreasoningデータによる中間学習後、1.8Bトークン(SFTデータ: 論理推論/非推論)で教師ありファインチューニングを実施。
- reasoningの希少ドメイン補完のため Qwen3-32B を用いたreasoning syntheticデータを生成
- Best-fit decreasing packingなどでメモリ効率と効率性を最大化
- 全データと学習スクリプトを公開予定
Anchored Preference Optimization(APO)
- SFT後、Tulu3 preference (non-reasoning)、Qwen3-32B/0.6B synthetic preference pairs (reasoning) を基に、DPOの変種であるAPOでモデルをアラインメント
- triplet prompt + responseでlossを構成し、安定した最適化と性能を確保
- reasoning中間トレーニングの影響でlong-context性能低下が観測され、モデルマージによって克服
モデルマージ
- MergeKit ライブラリを活用し、APOチェックポイントのモデルスープ(0.9)+mid-trainingチェックポイント(0.1)の比率で線形マージ
- 128kのlong-context性能を回復しつつ、全体性能を維持
- 最適チェックポイントで最終モデルをリリース
評価
ベースモデル
12の主要ベンチマークで 他の3Bモデルを圧倒し、4Bモデルに迫る性能 を示す。
- 文書理解、推論、数学、コーディングまでバランスよく強い
- RULER 64kなどで長さ拡張能力を明確に確認
- Global MMLU、MLMM HellaSwag、Flores-200、Belebeleなどで 多言語性能を実証
- 英語以外の5つの欧州言語でも一貫した性能
Dual Instruct / Reasoningモデル
non-reasoning評価
SmolLM3はLlama3.2-3B Instruct、Qwen2.5 3B Instructを上回り、4B reasoningモデル級の効率と性能のバランスを持つ。
reasoning評価
/think を有効にすると、ほとんどのベンチマークで性能が大幅に向上
- AIME 2025(36.7% vs 9.3%)、LiveCodeBench(30.0% vs 15.2%)、GPQA Diamond(41.7% vs 35.7%) など難問にも対応
- Qwen3 4Bに匹敵する3B推論、数学的reasoning、複雑な問題解決能力
デュアルモード により、速度と深い分析を選択可能。
実利用ガイド
SmolLM3は transformers v4.53.0 以上で公式サポート
- シンプルなコードでモデル読み込み、プロンプト作成、推論実行が可能
- reasoning/non-reasoningはシステムプロンプトの
/think、/no_thinkフラグで切り替え
ツール呼び出し(Agentic)向けに xml_tools、python_tools パラメータをサポート。
結論
SmolLM3は、3B規模でlong-context、多言語、reasoningをすべてサポートするfully openモデル。
- 各段階の学習レシピ、データセット、学習ログなどエンジニアリング・ブループリントを全面公開
- コミュニティによる改善と検証参加を最大化できる
資料
- モデル、スクリプト、データセットなど: HuggingFaceTB/SmolLM3-3B
- 論文、評価、軽量化、マージツールなどは各GitHub、Hugging Face、論文リンクを参照
1件のコメント
Hacker Newsの意見
llama.cppを活用)。今のところ、Microsoft以外でローカルAIを継続して本気で見ている会社はほとんどない。普段はこういう話は控えているが、HFが本当に素晴らしい存在である一方で、スーパースターに触れず他モデルの優秀さだけを強調するのは、この分野で長く続いてきたローカルSoTAを見過ごすことにつながると思う。だから今回はあえて声を上げることに意味があるllama.cppやその他の推論エンジン向けのチャットテンプレート問題の修正を自分で行った。実行するには次のコマンドを入力:./llama.cpp/llama-cli -hf unsloth/SmolLM3-3B-GGUF:Q4_K_XL --jinja -ngl 99