- SmolLM3 모델은 3B 파라미터 크기에서 효율성과 성능을 동시에 추구하는 오픈 소스 LLM임
- 영어, 프랑스어, 스페인어, 독일어, 이탈리아어, 포르투갈어 등 6개 언어를 지원하며, 최대 128k 컨텍스트 길이까지 확장 지원함
- dual mode(reasoning/non-reasoning) 로 /think, /no_think 플래그를 활용해 추론 모드 전환 가능함
- Pretraining, mid-training, post-training의 다양한 학습 단계와 공개된 데이터셋 및 엔지니어링 블루프린트를 전부 제공함
- 성능적으로 Llama-3.2-3B와 Qwen2.5-3B를 능가하며, 4B 모델에 준하는 경쟁력을 보유함
개요
SmolLM3는 3B 파라미터 규모에서 효율성과 성능을 동시에 추구하는 오픈 소스 대형 언어 모델임. 작고 빠르면서도, long-context와 다국어, 추론까지 모두 지원하는 것이 큰 차별점임.
- 3B 파라미터로 11조(11T) 토큰 학습
- 최신 성능(SoTA) 달성, 4B 모델과 경쟁 가능
- 듀얼 모드 인스트럭트 모델: /think와 /no_think를 통해 reasoning, non-reasoning 전환 지원
- 영어, 프랑스어, 스페인어, 독일어, 이탈리아어, 포르투갈어 지원
- NoPE, YaRN 적용으로 최대 128k 컨텍스트
전체 학습 과정의 아키텍처, 데이터 조합, 각 단계별 레시피를 완전히 공개함.
Pretraining
아키텍처와 학습 설정
SmolLM3는 transformer decoder 기반이며, Llama 구조를 효율과 긴 문맥에서 성능을 높이도록 수정함.
- Grouped Query Attention(GQA) : multi-head attention보다 메모리 효율적, 성능 동등 유지
- NoPE: rotary position embedding을 4번째 레이어마다 제거하여 긴 컨텍스트 성능 개선
- 문서 내 마스킹: 서로 다른 문서가 서로에게 attending하지 않도록 마스킹하여 안정적인 long-context 학습 지원
- embedding에 weight decay 제거: 안정적인 학습 동작 확보
학습 구성은:
- 2.36M 토큰의 글로벌 배치, 4096 시퀀스 길이, learning rate 2e-4, AdamW(β1:0.9, β2:0.95), weight decay 0.1, gradient clipping 1
- WSD 스케줄러: 2000 워밍업, 마지막 10%에서 선형 감소
- nanotron 프레임워크로 분산 학습, datatrove 데이터, lighteval 평가 도구 활용
- H100 GPU 384대, 24일 학습
데이터 혼합 및 단계적 학습
3단계 프리트레이닝:
- 1단계 (0T→8T) : 웹(85%, 12% 다국어), 코드(12%), 수학(3%)
- 2단계 (8T→10T) : 웹(75%, 12% 다국어), 코드(15%), 수학(10%) - 더 고품질 코드, 수학 데이터 추가
- 3단계 (10T→11.1T) : 웹(63%, 12% 다국어), 코드(24%), 수학(13%) - 고품질 코드, 수학 업샘플링, instruction/추론 데이터 도입
각 단계 데이터 혼합비는 많은 ablation 실험을 통해 최적화됨.
프리트레이닝 이후 중간(mid-) 트레이닝 과정을 추가 적용해 long-context와 reasoning 성능을 강화함.
Mid-training
Long-context 트레이닝
프리트레이닝 이후, 추가 100B 토큰을 투입하여 컨텍스트 길이를 2단계(4k→32k→64k)로 늘림.
- RoPE theta 조절로 길이 확장
- 수학, 코드, 추론 데이터 업샘플링
- NoPE 및 decay mixture로 긴 시퀀스 성능 최적화
- 학습 시에는 64k까지, 추론 시 YaRN 적용으로 128k까지 처리 가능
Reasoning 중간 트레이닝
추론성을 높이기 위해 35B 토큰(OpenThoughts3-1.2M, Llama-Nemotron-Post-Training-Dataset 등)으로 모델을 재학습함.
- 구체적 도메인 지향 없이, 일반적인 reasoning 능력 학습
- ChatML 템플릿, wrapped packing 활용
- 4 에폭(~140B 토큰) 진행 후 체크포인트 저장
Post-training
대부분의 reasoning 모델들은 폐쇄적 혹은 복잡한 RL 과정을 필요로 했으나, SmolLM3는 공개 데이터와 명확한 레시피로 dual instruction(추론/non추론) 구조를 구현함.
Chat 템플릿
- /think, /no_think 플래그를 시스템 프롬프트에 넣어 reasoning 모드 전환
- XML Tools, Python Tools 별도 섹션 제공하여 코드/툴 호출 지원
- system 메시지, metadata(date, knowledge cut-off, reasoning mode) 활용 및 유연하게 오버라이드 가능
Supervised Finetuning(SFT)
140B reasoning 데이터 미드트레이닝 이후, 1.8B 토큰(SFT 데이터: 논리적 추론/비추론)으로 수퍼바이즈드 파인트레이닝 진행
- reasoning rare domain 보완 위해 Qwen3-32B를 이용한 reasoning synthetic 데이터 생성
- Best-fit decreasing packing 등 메모리/효율 극대화
- 전체 데이터, 학습 스크립트 공개 예정
Anchored Preference Optimization(APO)
- SFT 후, Tulu3 프리퍼런스(non-reasoning), Qwen3-32B/0.6B synthetic preference pairs(reasoning) 기반으로 DPO의 변형인 APO로 모델 얼라인먼트
- triplet prompt + response로 loss 구성, 안정적인 최적화 및 성능 확보
- reasoning 미드트레이닝 영향으로 long-context 성능 저하가 관찰되어, 모델 머징을 통해 극복
모델 머징
- MergeKit 라이브러리 활용, APO 체크포인트 모델스프(0.9)+mid-training 체크포인트(0.1) 비율로 선형 머징
- 128k 롱컨텍스트 성능 회복 및 전체 성능 유지
- 최적체크포인트로 최종 모델 릴리즈
평가
베이스 모델
12개 주요 벤치마크에서 다른 3B 모델 압도 및 4B 모델과 근접한 성능
- 문서 이해, 추론, 수학, 코딩까지 고른 강점
- RULER 64k 등에서 길이 확장 능력 확실
- Global MMLU, MLMM HellaSwag, Flores-200, Belebele 등 다국어 능력 입증
- 영어 외 5개 유럽어에서도 일관적 성능
Dual Instruct / Reasoning 모델
non-reasoning 평가
SmolLM3는 Llama3.2-3B Instruct, Qwen2.5 3B Instruct보다 뛰어나며, 4B reasoning 모델급 효율·성능 모두 균형 있음
reasoning 평가
/think 활성화시 대부분 벤치마크에서 성능 급등
- AIME 2025(36.7% vs 9.3%), LiveCodeBench(30.0% vs 15.2%), GPQA Diamond(41.7% vs 35.7%) 등 어려운 문제도 해결
- Qwen3 4B와 견줄만 한 3B 추론, 수학적 reasoning, 복잡 문제 해결 능력
듀얼 모드로 속도와 심층 분석 선택 가능
실사용 안내
SmolLM3는 transformers v4.53.0 이상에서 공식 지원
- 간단한 코드로 모델 로딩, 프롬프트 작성, 추론 수행
- reasoning/non-reasoning은 시스템 프롬프트에
/think,/no_think플래그로 전환
툴 호출(Agentic)용으로 xml_tools, python_tools 파라미터 지원
결론
SmolLM3는 3B 규모에서 long-context, 다국어, reasoning을 모두 지원하는 fully open 모델임.
- 모든 단계별 학습 레시피, 데이터셋, 학습 로그 등 엔지니어링 블루프린트 전면 공개
- 커뮤니티의 개선과 검증 참여를 극대화할 수 있음
자료
- 모델, 스크립트, 데이터셋 등: HuggingFaceTB/SmolLM3-3B
- 논문, 평가, 경량화, 머징 도구 등은 각 GitHub, Hugging Face, 논문 링크 참고