🚀 SmolLM3
SmolLM3是一款擁有30億參數的語言模型,旨在突破小模型的性能邊界。它支持6種語言,具備強大的推理能力和長上下文處理能力,是一款完全開源的模型,在30 - 40億參數規模下表現出色。
🚀 快速開始
安裝依賴
SmolLM3的建模代碼在transformers v4.53.0
版本中可用,請確保升級你的transformers版本。你也可以使用最新的 vllm
加載模型,它以transformers為後端。
pip install -U transformers
代碼示例
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "HuggingFaceTB/SmolLM3-3B"
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
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個標記。要處理更長的輸入(128k或256k),我們使用YaRN,你可以將 max_position_embeddings
和 rope_scaling
修改為:
{
...,
"rope_scaling": {
"factor": 2.0, # 2x65536 = 131,072
"original_max_position_embeddings": 65536,
"type": "yarn"
}
}
✨ 主要特性
- 混合推理優化:針對混合推理進行了優化的指令模型。
- 完全開源:開放模型權重和完整的訓練細節,包括公開的數據混合和訓練配置。
- 長上下文支持:在64k上下文上進行訓練,並使用YARN外推法支持最多128k個標記。
- 多語言支持:原生支持6種語言(英語、法語、西班牙語、德語、意大利語和葡萄牙語)。
更多詳細信息請參考我們的博客文章:https://hf.co/blog/smollm3
📚 詳細文檔
模型概述
SmolLM3是一個僅解碼器的Transformer模型,使用了GQA和NoPE技術。它在11.2T標記上進行了預訓練,採用了包括網絡、代碼、數學和推理數據的分階段課程。訓練後包括在140B推理標記上進行中間訓練,然後通過錨定偏好優化(APO)進行有監督的微調與對齊。
評估
在本節中,我們報告了SmolLM3模型的評估結果。除非另有說明,所有評估均為零樣本評估,我們使用 lighteval 進行評估。我們用粗體突出顯示最佳分數,用下劃線標記第二佳分數。
基礎預訓練模型
英文基準測試
類別 |
指標 |
SmolLM3-3B |
Qwen2.5-3B |
Llama3-3.2B |
Qwen3-1.7B-Base |
Qwen3-4B-Base |
推理與常識 |
HellaSwag |
76.15 |
74.19 |
75.52 |
60.52 |
74.37 |
|
ARC-CF(平均) |
65.61 |
59.81 |
58.58 |
55.88 |
62.11 |
|
Winogrande |
58.88 |
61.41 |
58.72 |
57.06 |
59.59 |
|
CommonsenseQA |
55.28 |
49.14 |
60.60 |
48.98 |
52.99 |
知識與理解 |
MMLU-CF(平均) |
44.13 |
42.93 |
41.32 |
39.11 |
47.65 |
|
MMLU Pro CF |
19.61 |
16.66 |
16.42 |
18.04 |
24.92 |
|
MMLU Pro MCF |
32.70 |
31.32 |
25.07 |
30.39 |
41.07 |
|
PIQA |
78.89 |
78.35 |
78.51 |
75.35 |
77.58 |
|
OpenBookQA |
40.60 |
40.20 |
42.00 |
36.40 |
42.40 |
|
BoolQ |
78.99 |
73.61 |
75.33 |
74.46 |
74.28 |
數學與代碼 |
|
|
|
|
|
|
編碼與數學 |
HumanEval+ |
30.48 |
34.14 |
25.00 |
43.29 |
54.87 |
|
MBPP+ |
52.91 |
52.11 |
38.88 |
59.25 |
63.75 |
|
MATH(4-shot) |
46.10 |
40.10 |
7.44 |
41.64 |
51.20 |
|
GSM8k(5-shot) |
67.63 |
70.13 |
25.92 |
65.88 |
74.14 |
長上下文 |
|
|
|
|
|
|
|
Ruler 32k |
76.35 |
75.93 |
77.58 |
70.63 |
83.98 |
|
Ruler 64k |
67.85 |
64.90 |
72.93 |
57.18 |
60.29 |
|
Ruler 128k |
61.03 |
62.23 |
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 |
61.00 |
|
Belebele |
51.00 |
51.55 |
49.22 |
49.44 |
55.00 |
|
Global MMLU(CF) |
38.37 |
34.22 |
33.71 |
34.94 |
41.80 |
|
Flores-200(5-shot) |
62.85 |
61.38 |
62.89 |
58.68 |
65.76 |
西班牙語 |
MLMM Hellaswag |
65.85 |
58.25 |
59.39 |
52.40 |
61.85 |
|
Belebele |
47.00 |
48.88 |
47.00 |
47.56 |
50.33 |
|
Global MMLU(CF) |
38.51 |
35.84 |
35.60 |
34.79 |
41.22 |
|
Flores-200(5-shot) |
48.25 |
50.00 |
44.45 |
46.93 |
50.16 |
德語 |
MLMM Hellaswag |
59.56 |
49.99 |
53.19 |
46.10 |
56.43 |
|
Belebele |
48.44 |
47.88 |
46.22 |
48.00 |
53.44 |
|
Global MMLU(CF) |
35.10 |
33.19 |
32.60 |
32.73 |
38.70 |
|
Flores-200(5-shot) |
56.60 |
50.63 |
54.95 |
52.58 |
50.48 |
意大利語 |
MLMM Hellaswag |
62.49 |
53.21 |
54.96 |
48.72 |
58.76 |
|
Belebele |
46.44 |
44.77 |
43.88 |
44.00 |
48.78 |
|
Global MMLU(CF) |
36.99 |
33.91 |
32.79 |
35.37 |
39.26 |
|
Flores-200(5-shot) |
52.65 |
54.87 |
48.83 |
48.37 |
49.11 |
葡萄牙語 |
MLMM Hellaswag |
63.22 |
57.38 |
56.84 |
50.73 |
59.89 |
|
Belebele |
47.67 |
49.22 |
45.00 |
44.00 |
50.00 |
|
Global MMLU(CF) |
36.88 |
34.72 |
33.05 |
35.26 |
40.66 |
|
Flores-200(5-shot) |
60.93 |
57.68 |
54.28 |
56.58 |
63.43 |
該模型還在阿拉伯語(標準語)、中文和俄語數據上進行了訓練,但與上述6種語言相比,這些語言的標記數量較少。我們報告這些語言的性能僅供參考。
類別 |
指標 |
SmolLM3 3B Base |
Qwen2.5-3B |
Llama3.2 3B |
Qwen3 1.7B Base |
Qwen3 4B Base |
其他支持語言 |
|
|
|
|
|
|
阿拉伯語 |
Belebele |
40.22 |
44.22 |
45.33 |
42.33 |
51.78 |
|
Global MMLU(CF) |
28.57 |
28.81 |
27.67 |
29.37 |
31.85 |
|
Flores-200(5-shot) |
40.22 |
39.44 |
44.43 |
35.82 |
39.76 |
中文 |
Belebele |
43.78 |
44.56 |
49.56 |
48.78 |
53.22 |
|
Global MMLU(CF) |
36.16 |
33.79 |
39.57 |
38.56 |
44.55 |
|
Flores-200(5-shot) |
29.17 |
33.21 |
31.89 |
25.70 |
32.50 |
俄語 |
Belebele |
47.44 |
45.89 |
47.44 |
45.22 |
51.44 |
|
Global MMLU(CF) |
36.51 |
32.47 |
34.52 |
34.83 |
38.80 |
|
Flores-200(5-shot) |
47.13 |
48.74 |
50.74 |
54.70 |
60.53 |
指令模型
無擴展思考
非推理模型和推理模型在無思考模式下的評估結果。我們用粗體突出顯示最佳和第二佳分數。
類別 |
指標 |
SmoLLM3-3B |
Qwen2.5-3B |
Llama3.1-3B |
Qwen3-1.7B |
Qwen3-4B |
高中數學競賽 |
AIME 2025 |
9.3 |
2.9 |
0.3 |
8.0 |
17.1 |
數學問題解決 |
GSM-Plus |
72.8 |
74.1 |
59.2 |
68.3 |
82.1 |
競賽編程 |
LiveCodeBench v4 |
15.2 |
10.5 |
3.4 |
15.0 |
24.9 |
研究生水平推理 |
GPQA Diamond |
35.7 |
32.2 |
29.4 |
31.8 |
44.4 |
指令遵循 |
IFEval |
76.7 |
65.6 |
71.6 |
74.0 |
68.9 |
對齊 |
MixEval Hard |
26.9 |
27.6 |
24.9 |
24.3 |
31.6 |
工具調用 |
BFCL |
92.3 |
- |
92.3 * |
89.5 |
95.0 |
多語言問答 |
Global MMLU |
53.5 |
50.54 |
46.8 |
49.5 |
65.1 |
(*):這是一個工具調用微調模型。
擴展思考
SmolLM3和Qwen3模型在推理模式下的評估結果:
類別 |
指標 |
SmoLLM3-3B |
Qwen3-1.7B |
Qwen3-4B |
高中數學競賽 |
AIME 2025 |
36.7 |
30.7 |
58.8 |
數學問題解決 |
GSM-Plus |
83.4 |
79.4 |
88.2 |
競賽編程 |
LiveCodeBench v4 |
30.0 |
34.4 |
52.9 |
研究生水平推理 |
GPQA Diamond |
41.7 |
39.9 |
55.3 |
指令遵循 |
IFEval |
71.2 |
74.2 |
85.4 |
對齊 |
MixEval Hard |
30.8 |
33.9 |
38.0 |
工具調用 |
BFCL |
88.8 |
88.8 |
95.5 |
多語言問答 |
Global MMLU |
64.1 |
62.3 |
73.3 |
訓練
模型
- 架構:Transformer解碼器
- 預訓練標記:11T
- 精度:bfloat16
軟件與硬件
開放資源
這裡有一個包含所有訓練細節的信息圖。
🔧 技術細節
模型架構
SmolLM3採用了僅解碼器的Transformer架構,並使用了GQA和NoPE技術,以提升模型的性能和效率。
訓練過程
模型在11.2T標記上進行預訓練,採用了分階段的課程,包括網絡、代碼、數學和推理數據。訓練後包括在140B推理標記上進行中間訓練,然後通過錨定偏好優化(APO)進行有監督的微調與對齊。
📄 許可證
本項目採用 Apache 2.0 許可證。
⚠️ 重要提示
SmolLM3可以生成關於各種主題的文本,但生成的內容可能並不總是事實準確、邏輯一致,或者不受訓練數據中存在的偏差影響。這些模型應作為輔助工具使用,而不是信息的最終來源。用戶應始終驗證重要信息,並批判性地評估任何生成的內容。