说明文档
SmolLM3

目录
模型概述
SmolLM3 是一个拥有 30 亿参数的语言模型,旨在突破小型模型的边界。它支持 6 种语言、高级推理和长上下文。SmolLM3 是一个完全开放的模型,在 30-40 亿参数规模上提供了强大的性能。

SmolLM3-3B-Base 是预训练后的基础模型,你可以在 SmolLM3-3B 找到指令微调模型。
该模型是一个仅解码器的 Transformer,使用了 GQA 和 NoPE,在 11.2 万亿个 token 上进行预训练,采用分阶段课程学习,涵盖网页、代码、数学和推理数据。后训练包括在 1400 亿推理 token 上进行中间训练,然后进行监督微调,并通过锚定偏好优化(APO)进行对齐。
主要特点
- 指令微调模型,针对混合推理进行了优化
- 完全开放的模型:开放权重 + 完整训练细节,包括公开的数据混合和训练配置
- 长上下文:在 64k 上下文上训练,支持使用 YARN 外推最高达 128k tokens
- 多语言:原生支持 6 种语言(英语、法语、西班牙语、德语、意大利语和葡萄牙语)
更多详细信息请参考我们的博客文章:https://hf.co/blog/smollm3
如何使用
SmolLM3 的建模代码已在 transformers v4.53.0 中提供,因此请确保升级你的 transformers 版本。你也可以使用最新的 vllm 来加载模型,它使用 transformers 作为后端。
pip install -U transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "HuggingFaceTB/SmolLM3-3B"
device = "cuda" # 用于 GPU 使用,或 "cpu" 用于 CPU 使用
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
# 如需多 GPU,请安装 accelerate 并使用 `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")`
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("Gravity is", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
对于本地推理,你可以使用 llama.cpp、ONNX、MLX 和 MLC。你可以在此合集中找到量化后的检查点(https://huggingface.co/collections/HuggingFaceTB/smollm3-686d33c1fdffe8e635317e23)。
长上下文处理
当前的 config.json 设置为支持最多 65,536 个 token 的上下文长度。为了处理更长的输入(128k 或 256k),我们使用 YaRN,你可以更改 max_position_embeddings 和 rope_scaling:
{
...,
"rope_scaling": {
"factor": 2.0, #2x65536=131072
"original_max_position_embeddings": 65536,
"type": "yarn"
}
}
评估
本节我们报告 SmolLM3 模型的评估结果。除非另有说明,所有评估都是零样本评估,我们使用 lighteval 运行它们。
我们将最佳分数加粗显示,第二名加下划线。
基础预训练模型
英语基准测试
注意:除非另有说明,所有评估都是零样本评估。对于 Ruler 64k 评估,我们对 Qwen 模型使用 32k 上下文应用 YaRN 来外推上下文长度。
| 类别 | 指标 | SmolLM3-3B | Qwen2.5-3B | Llama3.2B | Qwen3-1.7B-Base | Qwen3-4B-Base |
|---|---|---|---|---|---|---|
| 推理与常识 | HellaSwag | 76.15 | 74.19 | <u>75.52</u> | 60.52 | 74.37 |
| ARC-CF (平均) | 65.61 | 59.81 | 58.58 | 55.88 | <u>62.11</u> | |
| Winogrande | 58.88 | 61.41 | 58.72 | 57.06 | <u>59.59</u> | |
| CommonsenseQA | <u>55.28</u> | 49.14 | 60.60 | 48.98 | 52.99 | |
| 知识与理解 | MMLU-CF (平均) | <u>44.13</u> | 42.93 | 41.32 | 39.11 | 47.65 |
| MMLU Pro CF | <u>19.61</u> | 16.66 | 16.42 | 18.04 | 24.92 | |
| MMLU Pro MCF | <u>32.70</u> | 31.32 | 25.07 | 30.39 | 41.07 | |
| PIQA | 78.89 | 78.35 | <u>78.51</u> | 75.35 | 77.58 | |
| OpenBookQA | 40.60 | 40.20 | <u>42.00</u> | 36.40 | 42.40 | |
| BoolQ | 78.99 | 73.61 | <u>75.33</u> | 74.46 | 74.28 | |
| 数学与代码 | ||||||
| 编程与数学 | HumanEval+ | 30.48 | 34.14 | 25.00 | <u>43.29</u> | 54.87 |
| MBPP+ | 52.91 | 52.11 | 38.88 | <u>59.25</u> | 63.75 | |
| MATH (4-shot) | <u>46.10</u> | 40.10 | 7.44 | 41.64 | 51.20 | |
| GSM8k (5-shot) | 67.63 | <u>70.13</u> | 25.92 | 65.88 | 74.14 | |
| 长上下文 | ||||||
| Ruler 32k | 76.35 | 75.93 | <u>77.58</u> | 70.63 | 83.98 | |
| Ruler 64k | <u>67.85</u> | 64.90 | 72.93 | 57.18 | 60.29 | |
| Ruler 128k | 61.03 | <u>62.23</u> | 71.30 | 43.03 | 47.23 |
多语言基准测试
| 类别 | 指标 | SmolLM3 3B Base | Qwen2.5-3B | Llama3.2 3B | Qwen3 1.7B Base | Qwen3 4B Base |
|---|---|---|---|---|---|---|
| 主要支持语言 | ||||||
| 法语 | MLMM Hellaswag | 63.94 | 57.47 | 57.66 | 51.26 | <u>61.00</u> |
| Belebele | 51.00 | <u>51.55</u> | 49.22 | 49.44 | 55.00 | |
| Global MMLU (CF) | <u>38.37</u> | 34.22 | 33.71 | 34.94 | 41.80 | |
| Flores-200 (5-shot) | 62.85 | 61.38 | <u>62.89<u/u> | 58.68 | 65.76 | |
| 西班牙语 | MLMM Hellaswag | 65.85 | 58.25 | 59.39 | 52.40 | <u>61.85</u> |
| Belebele | 47.00 | <u>48.88</u> | 47.00 | 47.56 | 50.33 | |
| Global MMLU (CF) | <u>38.51</u> | 35.84 | 35.60 | 34.79 | 41.22 | |
| Flores-200 (5-shot) | <u>48.25</u> | 50.00 | 44.45 | 46.93 | 50.16 | |
| 德语 | MLMM Hellaswag | 59.56 | 49.99 | 53.19 | 46.10 | <u>56.43</u> |
| Belebele | <u>48.44</u> | 47.88 | 46.22 | 48.00 | 53.44 | |
| Global MMLU (CF) | <u>35.10</u> | 33.19 | 32.60 | 32.73 | 38.70 | |
| Flores-200 (5-shot) | 56.60 | 50.63 | <u>54.95</u> | 52.58 | 50.48 | |
| 意大利语 | MLMM Hellaswag | 62.49 | 53.21 | 54.96 | 48.72 | <u>58.76</u> |
| Belebele | <u>46.44</u> | 44.77 | 43.88 | 44.00 | 48.78 | |
| Global MMLU (CF) | <u>36.99</u> | 33.91 | 32.79 | 35.37 | 39.26 | |
| Flores-200 (5-shot) | <u>52.65<u/> | 54.87 | 48.83 | 48.37 | 49.11 | |
| 葡萄牙语 | MLMM Hellaswag | 63.22 | 57.38 | 56.84 | 50.73 | <u>59.89</u> |
| Belebele | 47.67 | 49.22 | 45.00 | 44.00 | 50.00 | |
| Global MMLU (CF) | <u>36.88</u> | 34.72 | 33.05 | 35.26 | 40.66 | |
| Flores-200 (5-shot) | <u>60.93</u> | 57.68 | 54.28 | 56.58 | 63.43 |
该模型还接受了阿拉伯语(标准)、中文和俄语数据的训练,但与上述 6 种语言相比,这些语言看到的 token 较少。我们报告这些语言的性能仅供参考。
| 类别 | 指标 | SmolLM3 3B Base | Qwen2.5-3B | Llama3.2 3B | Qwen3 1.7B Base | Qwen3 4B Base |
|---|---|---|---|---|---|---|
| 其他支持语言 | ||||||
| 阿拉伯语 | Belebele | 40.22 | 44.22 | <u>45.33</u> | 42.33 | 51.78 |
| Global MMLU (CF) | 28.57 | 28.81 | 27.67 | <u>29.37</u> | 31.85 | |
| Flores-200 (5-shot) | <u>40.22</u> | 39.44 | 44.43 | 35.82 | 39.76 | |
| 中文 | Belebele | 43.78 | 44.56 | <u>49.56</u> | 48.78 | 53.22 |
| Global MMLU (CF) | 36.16 | 33.79 | <u>39.57</u> | 38.56 | 44.55 | |
| Flores-200 (5-shot) | 29.17 | 33.21 | 31.89 | 25.70 | <u>32.50</u> | |
| 俄语 | Belebele | <u>47.44</u> | 45.89 | <u>47.44</u> | 45.22 | 51.44 |
| Global MMLU (CF) | <u>36.51</u> | 32.47 | 34.52 | 34.83 | 38.80 | |
| Flores-200 (5-shot) | 47.13 | 48.74 | 50.74 | <u>54.70</u> | 60.53 |
指令模型
无扩展思考
非推理模型和推理模型在无思考模式下的评估结果。我们将最佳和第二名分数加粗显示。
| 类别 | 指标 | SmoLLM3-3B | Qwen2.5-3B | Llama3.1-3B | Qwen3-1.7B | Qwen3-4B |
|---|---|---|---|---|---|---|
| 高中数学竞赛 | AIME 2025 | <u>9.3</u> | 2.9 | 0.3 | 8.0 | 17.1 |
| 数学问题求解 | GSM-Plus | 72.8 | <u>74.1</u> | 59.2 | 68.3 | 82.1 |
| 竞技编程 | LiveCodeBench v4 | <u>15.2</u> | 10.5 | 3.4 | 15.0 | 24.9 |
| 研究生级推理 | GPQA Diamond | <u>35.7</u> | 32.2 | 29.4 | 31.8 | 44.4 |
| 指令遵循 | IFEval | 76.7 | 65.6 | 71.6 | <u>74.0</u> | 68.9 |
| 对齐 | MixEval Hard | 26.9 | <u>27.6</u> | 24.9 | 24.3 | 31.6 |
| 工具调用 | BFCL | <u>92.3</u> | - | <u>92.3</u> * | 89.5 | 95.0 |
| 多语言问答 | Global MMLU | <u>53.5</u> | 50.54 | 46.8 | 49.5 | 65.1 |
(*): 这是一个工具调用微调
扩展思考
SmolLM3 和 Qwen3 模型在推理模式下的评估结果:
| 类别 | 指标 | SmoLLM3-3B | Qwen3-1.7B | Qwen3-4B |
|---|---|---|---|---|
| 高中数学竞赛 | AIME 2025 | <u>36.7</u> | 30.7 | 58.8 |
| 数学问题求解 | GSM-Plus | <u>83.4</u> | 79.4 | 88.2 |
| 竞技编程 | LiveCodeBench v4 | 30.0 | <u>34.4</u> | 52.9 |
| 研究生级推理 | GPQA Diamond | <u>41.7</u> | 39.9 | 55.3 |
| 指令遵循 | IFEval | 71.2 | <u>74.2</u> | 85.4 |
| 对齐 | MixEval Hard | 30.8 | <u>33.9</u> | 38.0 |
| 工具调用 | BFCL | <u>88.8</u> | <u>88.8</u> | 95.5 |
| 多语言问答 | Global MMLU | <u>64.1</u> | 62.3 | 73.3 |
训练
模型
- 架构: Transformer 解码器
- 预训练 token 数量: 11T
- 精度: bfloat16
软件与硬件
开放资源
以下是一张包含所有训练细节的信息图。
- 用于预训练的数据集可以在此合集中找到,中间训练和后训练使用的数据集将在未来几周内发布
- 训练和评估配置及代码可以在 huggingface/smollm 仓库中找到。
- 训练中间检查点可在 HuggingFaceTB/SmolLM3-3B-checkpoints 获取

局限性
SmolLM3 可以就各种主题生成文本,但生成的内容可能并不总是事实准确、逻辑一致或完全不含训练数据中存在的偏见。这些模型应作为辅助工具使用,而不是权威信息来源。用户应始终验证重要信息并批判性地评估任何生成的内容。
许可证
引用
@misc{bakouch2025smollm3,
title={{SmolLM3: smol, multilingual, long-context reasoner}},
author={Bakouch, Elie and Ben Allal, Loubna and Lozhkov, Anton and Tazi, Nouamane and Tunstall, Lewis and Patiño, Carlos Miguel and Beeching, Edward and Roucher, Aymeric and Reedi, Aksel Joonas and Gallouédec, Quentin and Rasul, Kashif and Habib, Nathan and Fourrier, Clémentine and Kydlicek, Hynek and Penedo, Guilherme and Larcher, Hugo and Morlon, Mathieu and Srivastav, Vaibhav and Lochner, Joshua and Nguyen, Xuan-Son and Raffel, Colin and von Werra, Leandro and Wolf, Thomas},
year={2025},
howpublished={\url{https://huggingface.co/blog/smollm3}}
}
HuggingFaceTB/SmolLM3-3B-Base
作者 HuggingFaceTB
创建时间: 2025-06-19 11:33:11+00:00
更新时间: 2025-08-14 16:41:36+00:00
在 Hugging Face 上查看