SmolLM3 发布:多语言、长上下文 3B 推理模型

Hugging Face 推出了 SmolLM3,这是一款 3B 参数的开源语言模型,旨在实现高效和高性能。SmolLM3 的表现优于 Llama-3.2-3B 和 Qwen2.5-3B,并且在与更大的 4B 模型竞争时仍具竞争力,提供双模式推理能力,允许用户在显式思考和直接回答之间切换。

架构与预训练

SmolLM3 使用了带有共享嵌入的 Transformer 解码器架构,结合了多项改进以优化效率和长上下文性能:

  • Grouped Query Attention (GQA): 用 4 组替代多头注意力,以在推理期间减少 KV 缓存大小,同时不牺牲性能。
  • NoPE: 在每第 4 层选择性移除旋转位置嵌入,以提升长上下文性能,同时保持短上下文能力。
  • Intra-Document Masking: 防止单个训练序列中不同文档的标记相互注意,确保更稳定的长上下文训练。
  • Training Stability: 从嵌入层中移除权重衰减,以稳定训练动态。

三阶段预训练

该模型在 11.2T 标记上进行训练,采用三阶段策略逐步提升领域性能:

  1. Stable Phase (0T 到 8T 标记): 侧重于通用能力,数据混合为 85% 网络(其中包括 12% 多语言),12% 代码,3% 数学。
  2. Stable Phase (8T 到 10T 标记): 增加高质量的数学和代码数据,比例调整为 75% 网络,15% 代码,10% 数学。
  3. Decay Phase (10T 到 11.1T 标记): 进一步上采样数学和代码,最终比例为 63% 网络,24% 代码,13% 数学,同时引入指令和推理数据集,如 OpenMathReasoning。

中期训练:上下文与推理

在主要预训练之后,SmolLM3 进行了“中期训练”,以在最终监督微调之前增强特定能力。

长上下文扩展

为了扩展上下文窗口,模型在额外的 100B 标记上进行两阶段训练:从 4k 过渡到 32k(RoPE theta 1.5M),随后从 32k 过渡到 64k(RoPE theta 5M)。通过在推理时使用 YARN 进行外推,SmolLM3 能够处理高达 128k 的上下文。

推理适配

SmolLM3 在 35B 标记的通用推理数据上进行训练,数据来源于 OpenThoughts3-1.2M 和 NVIDIA 的 Llama-Nemotron-Post-Training-Dataset-v1.1 的子集。此阶段侧重于让模型在各领域进行通用推理,而非针对特定学科如数学或代码。

后期训练与双模式推理

SmolLM3 是一个双指令模型,支持推理(/think)和非推理(/no_think)两种模式。

监督微调 (SFT)

SFT 数据集包含 1.8B 标记(10 亿非推理,0.8B 推理)。为填补特定领域推理轨迹的空白,Hugging Face 通过在推理模式下使用非推理提示来提示 Qwen3-32B 生成合成数据。这提升了多轮对话和多语言能力的表现。

使用锚定偏好优化 (APO) 对齐

对齐使用了 Anchored Preference Optimization (APO),它是 Direct Preference Optimization (DPO) 的更稳定变体。该过程在非推理模式下使用 Tulu3 偏好数据集,在推理模式下使用合成对(从 Qwen3-32B 中选取,Qwen3-0.6B 中拒绝)。

模型合并以恢复性能

由于推理中期训练和 APO 阶段导致长上下文基准(RULER)性能下降,Hugging Face 使用 MergeKit 进行线性合并。他们将 APO 模型的“汤”与中期训练检查点(权重分别为 0.9 和 0.1)结合,恢复了基础模型在 128k 标记下的 RULER 分数。

性能评估

基础模型

SmolLM3 在覆盖知识、推理、数学和编码的 12 项基准(包括 HellaSwag、ARC 和 GSM8K)中始终优于其他 3B 模型。它在与 Qwen3-4B、Gemma3-4B 等 4B 模型竞争时表现出色,并在五种主要欧洲语言上展现出强大的多语言性能。

指令与推理模型

  • 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 函数片段)参数进行工具调用。

Sources