SmolLM3 - LLM nhỏ gọn, hỗ trợ đa ngôn ngữ và suy luận ngữ cảnh dài
(huggingface.co)- Mô hình SmolLM3 là một LLM mã nguồn mở theo đuổi đồng thời hiệu quả và hiệu năng ở quy mô 3B tham số
- Hỗ trợ 6 ngôn ngữ gồm tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha, tiếng Đức, tiếng Ý, tiếng Bồ Đào Nha, và hỗ trợ mở rộng tới độ dài ngữ cảnh tối đa 128k
- Với dual mode (reasoning/non-reasoning), có thể chuyển đổi chế độ suy luận bằng cờ /think, /no_think
- Cung cấp đầy đủ các giai đoạn huấn luyện đa dạng gồm pretraining, mid-training, post-training cùng toàn bộ bộ dữ liệu đã công khai và blueprint kỹ thuật
- Về hiệu năng, mô hình vượt Llama-3.2-3B và Qwen2.5-3B, đồng thời có sức cạnh tranh tương đương các mô hình 4B
Tổng quan
SmolLM3 là một mô hình ngôn ngữ lớn mã nguồn mở theo đuổi đồng thời hiệu quả và hiệu năng ở quy mô 3B tham số. Điểm khác biệt lớn là mô hình nhỏ gọn, nhanh, nhưng vẫn hỗ trợ đầy đủ long-context, đa ngôn ngữ và suy luận.
- Huấn luyện 11 nghìn tỷ (11T) token với 3B tham số
- Đạt hiệu năng hàng đầu (SoTA), có thể cạnh tranh với các mô hình 4B
- Mô hình instruction chế độ kép: hỗ trợ chuyển giữa reasoning và non-reasoning qua /think và /no_think
- Hỗ trợ tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha, tiếng Đức, tiếng Ý, tiếng Bồ Đào Nha
- Áp dụng NoPE, YaRN để đạt tối đa 128k context
Toàn bộ kiến trúc, cách phối trộn dữ liệu và recipe theo từng giai đoạn trong quá trình huấn luyện đều được công khai hoàn toàn.
Pretraining
Kiến trúc và thiết lập huấn luyện
SmolLM3 dựa trên transformer decoder, đồng thời điều chỉnh cấu trúc Llama để nâng cao hiệu quả và hiệu năng trên ngữ cảnh dài.
- Grouped Query Attention (GQA): hiệu quả bộ nhớ hơn multi-head attention nhưng vẫn giữ hiệu năng tương đương
- NoPE: loại bỏ rotary position embedding ở mỗi lớp thứ 4 để cải thiện hiệu năng ngữ cảnh dài
- Masking trong tài liệu: dùng masking để các tài liệu khác nhau không attention lẫn nhau, giúp hỗ trợ huấn luyện long-context ổn định
- Loại bỏ weight decay ở embedding: đảm bảo hành vi huấn luyện ổn định
Cấu hình huấn luyện:
- Global batch 2.36M token, độ dài chuỗi 4096, learning rate 2e-4, AdamW(β1:0.9, β2:0.95), weight decay 0.1, gradient clipping 1
- WSD scheduler: warmup 2000, giảm tuyến tính ở 10% cuối
- Dùng framework phân tán nanotron, dữ liệu từ datatrove, công cụ đánh giá lighteval
- 384 GPU H100, huấn luyện trong 24 ngày
Phối trộn dữ liệu và huấn luyện theo giai đoạn
Pretraining gồm 3 giai đoạn:
- Giai đoạn 1 (0T→8T): web (85%, 12% đa ngôn ngữ), code (12%), toán (3%)
- Giai đoạn 2 (8T→10T): web (75%, 12% đa ngôn ngữ), code (15%), toán (10%) - bổ sung dữ liệu code và toán chất lượng cao hơn
- Giai đoạn 3 (10T→11.1T): web (63%, 12% đa ngôn ngữ), code (24%), toán (13%) - upsample code và toán chất lượng cao, đưa thêm dữ liệu instruction/suy luận
Tỷ lệ phối trộn dữ liệu ở mỗi giai đoạn được tối ưu hóa thông qua nhiều thí nghiệm ablation.
Sau pretraining, mô hình tiếp tục được áp dụng quy trình mid-training để tăng cường hiệu năng long-context và reasoning.
Mid-training
Huấn luyện long-context
Sau pretraining, mô hình được huấn luyện thêm với 100B token để tăng độ dài ngữ cảnh qua 2 bước (4k→32k→64k).
- Mở rộng độ dài bằng cách điều chỉnh RoPE theta
- Upsample dữ liệu toán, code, suy luận
- Tối ưu hiệu năng chuỗi dài bằng NoPE và decay mixture
- Khi huấn luyện hỗ trợ tới 64k, và áp dụng YaRN khi suy luận để xử lý tới 128k
Mid-training cho reasoning
Để tăng khả năng suy luận, mô hình được huấn luyện lại bằng 35B token (OpenThoughts3-1.2M, Llama-Nemotron-Post-Training-Dataset, v.v.).
- Học năng lực reasoning tổng quát, không thiên về miền cụ thể
- Sử dụng template ChatML, wrapped packing
- Chạy 4 epoch (~140B token) rồi lưu checkpoint
Post-training
Phần lớn các mô hình reasoning yêu cầu quy trình RL đóng hoặc phức tạp, nhưng SmolLM3 triển khai cấu trúc dual instruction (suy luận/không suy luận) bằng dữ liệu công khai và recipe rõ ràng.
Chat template
- Đưa cờ /think, /no_think vào system prompt để chuyển đổi chế độ reasoning
- Cung cấp các phần riêng cho XML Tools, Python Tools để hỗ trợ code/tool calling
- Sử dụng system message, metadata (date, knowledge cut-off, reasoning mode) và có thể override linh hoạt
Supervised Finetuning (SFT)
Sau mid-training với 140B dữ liệu reasoning, mô hình được supervised finetuning bằng 1.8B token (dữ liệu SFT: suy luận logic/không suy luận).
- Để bổ sung các miền reasoning hiếm, tạo dữ liệu reasoning synthetic bằng Qwen3-32B
- Tối đa hóa bộ nhớ/hiệu quả bằng best-fit decreasing packing, v.v.
- Dự kiến công khai toàn bộ dữ liệu và script huấn luyện
Anchored Preference Optimization (APO)
- Sau SFT, dùng Tulu3 preference (non-reasoning) và các cặp preference synthetic từ Qwen3-32B/0.6B (reasoning) để căn chỉnh mô hình bằng APO, một biến thể của DPO
- Loss được xây dựng từ triplet prompt + response, đảm bảo tối ưu ổn định và hiệu năng tốt
- Do ảnh hưởng của reasoning mid-training, hiệu năng long-context bị suy giảm, nên được khắc phục bằng model merging
Model merging
- Dùng thư viện MergeKit, thực hiện linear merge theo tỷ lệ checkpoint APO modelsoup (0.9) + checkpoint mid-training (0.1)
- Khôi phục hiệu năng long-context 128k và duy trì hiệu năng tổng thể
- Phát hành mô hình cuối cùng từ checkpoint tối ưu
Đánh giá
Mô hình base
Trên 12 benchmark chính, mô hình vượt trội các mô hình 3B khác và đạt hiệu năng tiệm cận mô hình 4B
- Mạnh đồng đều ở hiểu tài liệu, suy luận, toán học và coding
- Thể hiện rõ năng lực mở rộng độ dài trên RULER 64k và các bài kiểm tra tương tự
- Chứng minh năng lực đa ngôn ngữ qua Global MMLU, MLMM HellaSwag, Flores-200, Belebele, v.v.
- Hiệu năng nhất quán trên 5 ngôn ngữ châu Âu ngoài tiếng Anh
Mô hình Dual Instruct / Reasoning
Đánh giá non-reasoning
SmolLM3 vượt Llama3.2-3B Instruct và Qwen2.5 3B Instruct, đồng thời cân bằng tốt giữa hiệu quả và hiệu năng ở cấp độ các mô hình reasoning 4B
Đánh giá reasoning
Khi bật /think, hiệu năng tăng mạnh trên phần lớn benchmark
- AIME 2025 (36.7% so với 9.3%), LiveCodeBench (30.0% so với 15.2%), GPQA Diamond (41.7% so với 35.7%) và nhiều bài toán khó khác
- Khả năng suy luận 3B có thể so sánh với Qwen3 4B, gồm reasoning toán học và giải quyết vấn đề phức tạp
Chế độ kép cho phép chọn giữa tốc độ và phân tích chuyên sâu
Hướng dẫn sử dụng thực tế
SmolLM3 được hỗ trợ chính thức từ transformers v4.53.0 trở lên
- Có thể tải mô hình, viết prompt và chạy suy luận bằng mã đơn giản
- Có thể chuyển reasoning/non-reasoning bằng cờ
/think,/no_thinktrong system prompt
Hỗ trợ tham số xml_tools, python_tools cho tool calling (Agentic)
Kết luận
SmolLM3 là một mô hình fully open ở quy mô 3B, hỗ trợ đồng thời long-context, đa ngôn ngữ và reasoning.
- Công khai toàn diện blueprint kỹ thuật như recipe huấn luyện theo từng giai đoạn, dataset, log huấn luyện, v.v.
- Có thể tối đa hóa sự tham gia của cộng đồng trong việc cải tiến và kiểm chứng
Tài liệu
- Mô hình, script, dataset, v.v.: HuggingFaceTB/SmolLM3-3B
- Bài báo, đánh giá, công cụ nén nhẹ, công cụ merging, v.v. tham khảo tại các liên kết GitHub, Hugging Face và bài báo tương ứng
1 bình luận
Ý kiến trên Hacker News
llama.cpp). Hiện giờ ngoài Microsoft ra thì gần như không có công ty nào tiếp tục nghiêm túc với AI local. Bình thường tôi hay bỏ qua những chuyện này, nhưng dù HF thực sự là một công dân rất tốt, việc chỉ nhấn mạnh sự xuất sắc của các mô hình khác mà không nhắc tới siêu sao thì theo tôi là đang dẫn tới việc làm ngơ local SoTA lâu năm trong lĩnh vực này, nên lần này tôi thấy việc lên tiếng là có ý nghĩallama.cppvà các inference engine khác; để chạy hãy nhập lệnh sau./llama.cpp/llama-cli -hf unsloth/SmolLM3-3B-GGUF:Q4_K_XL --jinja -ngl 99