SmolLM3 リリース: 多言語対応、長コンテキスト 3B 推論モデル
Hugging Face は、効率性と高性能を目的とした 3B パラメータのオープン言語モデル SmolLM3 を発表しました。SmolLM3 は Llama-3.2-3B と Qwen2.5-3B を上回り、より大きな 4B モデルと競合できる性能を持ち、ユーザーが明示的な思考と直接回答を切り替えられるデュアルモード推論機能を提供します。
アーキテクチャと事前学習
SmolLM3 は結合埋め込みを持つトランスフォーマーデコーダーアーキテクチャを採用し、効率性と長コンテキスト性能を最適化するためにいくつかの修正を加えています。
- Grouped Query Attention (GQA): マルチヘッドアテンションを 4 つのグループに置き換え、推論時の KV キャッシュサイズを削減しつつ性能を維持します。
- NoPE: 4 層ごとに回転位置埋め込みを選択的に除去し、短コンテキストの能力を保ちつつ長コンテキスト性能を向上させます。
- Intra-Document Masking: 単一の学習シーケンス内で異なる文書のトークン同士が相互に注意を向けることを防ぎ、より安定した長コンテキスト学習を実現します。
- Training Stability: 埋め込み層からウェイトデケイを除去し、学習のダイナミクスを安定させます。
3段階事前学習
モデルは 11.2T トークンで、段階的にドメイン性能を向上させる 3 段階戦略で学習されました。
- Stable Phase (0T から 8T トークン): 85% Web(うち 12% 多言語)+12% Code+3% Math の混合で、汎用的な能力に焦点を当てます。
- Stable Phase (8T から 10T トークン): 高品質な数学とコードデータを増やし、75% Web、15% Code、10% Math にシフトします。
- Decay Phase (10T から 11.1T トークン): 数学とコードをさらにアップサンプリングし、最終的に 63% Web、24% Code、13% Math となります。また、OpenMathReasoning のような指示と推論データセットを導入します。
中間トレーニング: コンテキストと推論
主な事前学習の後、SmolLM3 は「中間トレーニング」を実施し、最終的な教師ありファインチューニング前に特定の能力を強化しました。
長コンテキスト拡張
コンテキストウィンドウを拡張するため、モデルは追加で 100B トークンを 2 段階で学習しました:4k から 32k(RoPE theta 1.5M)へ、次に 32k から 64k(RoPE theta 5M)へと移行します。推論時に YARN を用いた外挿により、SmolLM3 は最大 128k のコンテキストを処理可能です。
推論適応
SmolLM3 は OpenThoughts3-1.2M の一般的な推論データ 35B トークンと、NVIDIA の Llama-Nemotron-Post-Training-Dataset-v1.1 のサブセットで学習しました。この段階は、数学やコードといった特定の分野に限定せず、領域横断的に一般的に推論できるようモデルに教えることに焦点を当てました。
ポストトレーニングとデュアルモード推論
SmolLM3 は、推論 (/think) と非推論 (/no_think) の両モードをサポートするデュアルインストラクションモデルです。
教師ありファインチューニング (SFT)
SFT データセットは 1.8B トークン(1B 非推論、0.8B 推論)で構成されています。特定領域の推論トレースのギャップを埋めるため、Hugging Face は非推論プロンプトで推論モードの Qwen3-32B を呼び出し、合成データを生成しました。これにより、マルチターン会話と多言語対応の性能が向上しました。
アンカード・プリファレンス・オプティマイゼーション (APO) によるアラインメント
アラインメントは、Direct Preference Optimization (DPO) のより安定した変種である Anchored Preference Optimization (APO) を用いて実施されました。このプロセスでは、非推論モードに Tulu3 のプリファレンスデータセットを、推論モードに合成ペア(Qwen3-32B から選択、Qwen3-0.6B から除外)を使用しました。
復元のためのモデルマージ
推論の中間トレーニングと APO ステージにより、長コンテキストベンチマーク(RULER)で性能が低下したため、Hugging Face は MergeKit を使用して線形マージを実施しました。APO モデルの「スープ」と中間トレーニングのチェックポイント(重み 0.9 と 0.1)を組み合わせ、ベースモデルの RULER スコアを 128k トークンまで回復させました。
パフォーマンス評価
ベースモデル
SmolLM3 は、知識、推論、数学、コーディング(HellaSwag、ARC、GSM8K など)をカバーする 12 のベンチマークで、他の 3B モデルを一貫して上回ります。Qwen3-4B や Gemma3-4B といった 4B モデルと競合でき、主要な欧州の 5 言語にわたる多言語性能も強力です。
インストラクションと推論モデル
- Non-Reasoning Mode: SmolLM3 は Llama-3.2-3B Instruct と Qwen2.5-3B Instruct を上回り、より大きな推論モデルに対する高効率な代替手段となります。
- Reasoning Mode: 拡張思考が有効になることで、複雑なタスクで大幅な向上が見られます。例えば、AIME 2025 のスコアは 9.3%(非推論)から 36.7%(推論)に上昇し、LiveCodeBench のスコアは 15.2% から 30.0% に向上しました。
ローカル実装と使用方法
SmolLM3 は transformers v4.53.0 以降が必要です。ユーザーはシステムプロンプトで推論モードを制御できます:
- Extended Thinking: システムプロンプトに
/thinkフラグを含めます。 - Direct Answer: システムプロンプトに
/no_thinkフラグを含めます。
モデルは、チャットテンプレートの引数として xml_tools(標準)および python_tools(Python 関数スニペット)を使用したツール呼び出しもサポートします。