gpumode · 강의 아카이브
《GPU Mode》 L092 2025 · 후반 High priority transcript · failed · SmolLM3 blog 로 보강

Smol Training Playbook

3B 모델로 11.2T 토큰 — SmolLM3 가 4B 급 모델과 경쟁하는 자리에 도달한 레시피. “작은 모델은 cheap 한 게 아니라 disciplined”. 데이터 큐레이션, 3-stage pretraining, ablation 워크플로, post-training 의 디테일을 Loubna Ben Allal 이 GPU Mode 청중에게 옮긴 강의. transcript 가 실패해서 본 노트는 SmolLM3 공식 blog 와 HuggingFaceTB 의 공개 ablation 자료를 기반으로 재구성.

SmolLM3 3-stage pretraining ablation WSD scheduler Nanotron FineWeb-Edu APO model merging
L
Speaker
Loubna Ben Allal
HuggingFace · SmolLM 팀 리더 · The Stack · StarCoder 의 데이터 작업
강의 번호
L092
스피커
Loubna Ben Allal
학습 우선순위
High · 정독
자막 상태
failed · blog 로 보강
§ 01왜 “smol” 인가· why this lecture exists

3B 모델 한 개의 학습 결정이 70B 모델의 결정보다 더 깊이 가르친다

강의의 출발점은 작은 모델의 교육적 가치다. 큰 모델은 한 번 돌리면 끝이지만, 작은 모델은 같은 GPU 시간으로 50개의 ablation 을 돌릴 수 있다. 그 50개가 큰 학습의 hyperparameter 결정을 위한 학습 자료가 된다.

강의의 정신 한 문장

“작은 모델 학습은 cheap 한 게 아니라 disciplined 하다. 작아서 ablation 이 가능하고, 그래서 모든 결정에 근거가 있다 — 큰 모델은 그 근거 위에서 도는 것뿐.”

SmolLM3 의 결과 — 3B 모델이 Llama-3.2-3B / Qwen2.5-3B 를 모두 outperform 하고 4B 급 모델과 competitive. 이게 “smol” 의 정의다. 같은 파라미터 수 안에서 가능한 frontier 를 그어낸다.

PARAMS
3.0 B
Qwen2.5-3B / Llama-3.2-3B 와 동급
TOKENS
11.2 T
3-stage curriculum + mid + post
CONTEXT
128 k
YARN extension · NoPE every 4th layer
INFRA
384 × H100 · 24 d
Nanotron framework
BATCH
2.36 M tok
global batch size · seq len 4096
SCHED
WSD
warmup-stable-decay · 마지막 10% decay
“작은 모델로 옳은 결정을 내리는 사람이, 큰 모델로 옳은 결정을 내리는 사람이다.”학습 노트
§ 02작은 모델 학습 자체의 가치· pedagogy of small

training playbook 은 큰 모델 팀에도 그대로 통한다

강의가 가장 자주 짚는 점 — SmolLM 의 모든 결정이 큰 모델 팀에도 의미 있다. 단지 ablation 의 cycle time 이 다를 뿐. 같은 framework, 같은 데이터 mixture, 같은 평가 패턴.

팀 운영 차원

HF 의 SmolLM 팀이 BLOOM 이후 누적한 학습 운영 패턴을 직접 적용한 사례. 큰 학습이 비싸진 시대에, 작은 학습이 인력 onboarding 의 표준 진입점이 된다 — 신입이 3B 학습 한 cycle 을 처음부터 끝까지 굴려 본 뒤에야 큰 학습에 합류.

§ 03데이터 큐레이션 — 3-stage 의 핵심· data mixture

같은 모델, 같은 토큰 수 — 데이터 mixture 가 final loss 를 가른다

SmolLM3 의 가장 큰 결정은 3-stage curriculum. 처음에는 web 위주의 다양성, 중간에 quality boost, 마지막에 decay phase 에서 code/math 를 upsample. 같은 11.2T 토큰을 “어떻게” 보여주느냐가 결과를 갈랐다.

FIG · SmolLM3 의 3-stage data mixturetoken 진행에 따른 비율 변화
Stage 1 · 0–8T
web 85% (multi 12%)
code 12%
math 3%
8.0 T
Stage 2 · 8–10T
web 75%
code 15%
math 10%
2.0 T
Stage 3 · 10–11.1T
web 63%
code 24%
math 13%
1.1 T
Mid-training
long-context (32k → 64k → 128k YARN) + reasoning (140B)
240 B
decay phase 에서 비율을 급격히 옮긴다 — code/math 의 가장 진한 신호가 학습 끝에 들어가게. WSD 의 decay 와 정확히 같은 구간 — learning rate 가 줄면서 모델이 “정착” 하는 자리에 가장 좋은 데이터를.

각 stage 가 파는 의도.

Stage 1 foundation 단계. FineWeb-Edu / DCLM / FineWeb2 로 web 위주. 다양성과 representation 의 폭이 우선. 12% multilingual 로 다국어 능력의 기초. 8.0 T
Stage 2 quality boost. Stack-Edu, FineMath4+, InfiWebMath4+, MegaMath 의 신호 진하기를 점진적으로 올림. 중반에 이미 code/math 의 spike. 2.0 T
Stage 3 decay phase. learning rate 가 줄면서 high-quality code/math/reasoning 데이터 upsampling. instruction-style 데이터까지 포함. 마지막 10% 가 결정적. 1.1 T
Mid 1 long-context 확장. 4k → 32k (RoPE θ=1.5M, 50B), 32k → 64k (θ=5M, 50B). NoPE + YARN 으로 inference time 128k 까지. 100 B
Mid 2 reasoning mid-training. OpenThoughts3-1.2M (35B) + NVIDIA Nemotron reasoning traces. ChatML wrapped packing, 4 epoch. 140 B
데이터 큐레이션의 학습 — 항상 가설을 들고

“data mixing 비율을 어떻게 정하는가” 의 답은 ablation. 100B token 의 작은 학습을 4–6개 mixture 로 돌려, 동일한 평가 셋 위에서 다운스트림 metric 비교. 작은 모델 100B 의 cost 가 큰 모델 ablation 의 보험.

§ 04hyperparameter 결정· WSD · GQA · NoPE

모든 architecture 결정에 ablation 근거 — “직관” 으로 정한 hyperparameter 는 없다

SmolLM3 의 architecture 는 3B × 100B token ablation 위에서 결정됐다. 모든 결정 — GQA · NoPE · weight decay 제거 · WSD scheduler — 의 효과가 작은 학습에서 검증된 다음 본 학습으로 진입.

A scheduler 결정 — cosine vs WSD vs linear warm-decay
A1 cosine 의 단점: 학습 도중 멈추기 어려움 — final eval 까지 LR 이 계속 변함. checkpoint 의 비교 불가.
A2 WSD 의 장점: stable phase 동안 LR 일정 → checkpoint 끼리 직접 비교 가능. decay 만 바꿔서 추가 학습도 가능.
결정: WSD · warmup 2000 step · 마지막 10% decay
B attention 결정 — MHA vs GQA vs MQA
B1 3B 에서 GQA 4 그룹과 MHA 의 final loss 가 거의 동일. 그러나 KV cache 크기 4× 차이.
B2 MQA 는 quality 손해. GQA 가 sweet spot.
결정: GQA · 4 그룹
C position embedding — RoPE vs NoPE vs ALiBi
C1 전체 NoPE 는 short context 에서 손해. 전체 RoPE 는 long context 외삽 손해.
C2 매 4번째 layer 만 NoPE → short context 유지하면서 long context 외삽 향상.
결정: 매 4 번째 layer 가 NoPE (이후 YARN 으로 128k 까지 외삽)
D regularization — embedding 의 weight decay
D1 embedding 에 weight decay 를 주면 학습 후반 embedding 이 0 으로 수렴 — 학습 instability.
결정: embedding layer 의 weight decay 제거. 다른 layer 는 0.1 유지.
E data masking — intra-document attention
E1 document packing 시 cross-document attention 을 차단 — 문서 경계를 모델이 안 무시.
결정: intra-document masking 채택
결정의 일반화

이 다섯 결정은 SmolLM3 만의 특수성이 아니다. Llama 3 / Qwen 2.5 / DeepSeek 3 의 architecture 가 거의 같은 자리에 수렴한다. “작은 모델로 검증한 결정이 큰 모델에서도 통한다” 의 가장 깨끗한 증거.

§ 05ablation 워크플로· 작게 검증, 크게 학습

한 번에 한 변수만, 항상 같은 평가 셋 위에서

강의가 가장 실무적으로 깔리는 자리. ablation 을 어떻게 굴리는가 — 그리고 결과를 어떻게 해석해야 의사결정이 가능한가.

  1. baseline 고정 — 항상 같은 architecture, 같은 100B token, 같은 평가 셋. 새 ablation 은 baseline 대비 한 변수만 바뀜.
  2. 같은 LR/batch 스케일 — ablation 사이에 LR/batch 가 바뀌면 결과 비교 불가. 작은 모델 ablation 도 큰 모델과 같은 effective batch 로.
  3. multiple seed — 작은 모델은 seed 노이즈가 큼. 같은 ablation 을 3 seed 평균. 차이가 seed 노이즈 안에 들어오면 “효과 없음” 으로 결론.
  4. downstream metric — final loss 가 아니라 다운스트림 평가 (HellaSwag, MMLU, ARC, GSM8K 의 작은 셋). loss 는 misleading 할 수 있음.
  5. WSD 활용 — ablation 마다 cosine 을 새로 굴리지 않는다. WSD 의 stable phase 끝에서 같은 길이의 decay 를 붙여 비교. cycle time 이 절반 이하로.
  6. 결과의 wiki 화 — 모든 ablation 의 표를 wiki 에 누적. “어제 한 ablation” 이 “1년 후 누가 다시 안 한다” 는 보장.
FIG · ablation 의 의사결정 트리한 결정을 본 학습으로 옮기기까지
Q변경하고 싶은 것이 있다 — 새 architecture, 새 데이터 mixture, 새 hyperparameter
1먼저 — 같은 변경이 다른 사람의 ablation 에 이미 있는가? (paper / wiki 검색)
2없으면 — 100B token, 3 seed, baseline + 1 변수 변경 ablation
2adownstream metric 차이 < seed noise → 효과 없음 → 폐기
2b차이가 noise 보다 크고 일관 → 다음 step
3크기 외삽 — 작은 ablation 의 효과가 모델/토큰 크기 따라 어떻게 변하는가? scaling curve.
4비용 회계 — 추가되는 학습 시간/메모리 가 ablation 의 효과에 비례하는가?
결정 — 본 학습 architecture 에 채택
대부분의 ablation 은 2a 에서 멈춘다 — 효과가 noise 안. 그게 정상이다. 진짜 의미 있는 architecture 결정은 1년에 몇 개 안 된다.
“제대로 된 ablation 한 번이 잘못된 본 학습 한 번보다 100배 싸다.”학습 노트
§ 06평가 metric — saturate 안 되는 척도· eval design

HellaSwag 만 보면 함정에 빠진다 — 다양성과 난이도를 함께

SmolLM3 의 평가는 일부러 여러 차원 을 다룬다. 같은 모델이 한 평가 셋에서 좋고 다른 평가 셋에서 나쁜 패턴이 자주 발견되기 때문.

saturate 된 metric 의 함정

HellaSwag · MMLU 일부 subset 은 3B 모델도 거의 천장. 두 모델 모두 90% 라면 metric 이 정보를 안 준다. 항상 hard subset 또는 새 task (LiveCodeBench, AIME 2025) 를 함께. 평가는 “고정된 셋” 이 아니라 “계속 갱신되는 척도” 다.

SmolLM3 의 reasoning 결과가 특히 인상적 — AIME 2025 36.7% (vs 9.3% 비교 모델), LiveCodeBench 30.0% (vs 15.2%). reasoning mid-training 의 효과가 이 자리에서 가장 크게 회수된다. 같은 3B 사이즈에서 단순 더 많은 데이터로는 안 나오는 차이.

§ 07chinchilla 와의 차이· overtraining 의 의미

3B × 11.2T = chinchilla 의 60×

Chinchilla 는 “파라미터 1 개당 token ~20” 을 compute-optimal 로 본다. 3B 모델의 chinchilla optimal 은 60B token. SmolLM3 는 11.2T 토큰 — chinchilla 의 약 60배 overtraining.

“chinchilla 는 학습자의 비용 함수다 — 사용자의 비용 함수는 다른 곳에 있다.”학습 노트
over-training 의 새 trade-off

“얼마나 더 학습할 것인가” 의 답은 곧 — 이 모델이 추론으로 몇 token 을 처리할 것인가 의 추정. 검색/챗 서비스라면 학습 비용의 1000배가 추론. 그러면 학습에 더 투자하는 게 모든 차원에서 합리적. SmolLM3 는 그 가정 위에서 11.2T 를 정당화.

§ 08비용 회계· 384 H100 × 24일

“작은 모델” 도 GPU-month 단위 — 비용 표를 그대로 공개

SmolLM3 가 다른 “open source” 모델과 다른 점 — 비용을 숨기지 않는다. 384 × H100 × 24일 = 약 220k GPU-hour. cloud 가격으로 환산하면 6–8억 원 규모. “smol” 조차 적은 비용은 아니다.

main pretrain
220k GPU-h
384 H100 × 24일 · 11.2T token
mid-training
~40k GPU-h
long-context + reasoning · 240B token (확인 필요)
post-training
~15k GPU-h
SFT 4 epoch + APO + merging (확인 필요)
ablation
~50k GPU-h
100B 단위 50+개 ablation (추정)
디버깅 / 실패
~30k GPU-h
학습 재시작 · ECC · NCCL (추정)
총합
~360k GPU-h
main pretrain 의 1.6×

이 표가 보여주는 사실 — main pretrain 만 GPU 시간을 잡지 않는다. ablation + 실패 + 디버깅이 1/3. L090 의 비용 회계와 같은 패턴이 작은 모델에서도 그대로 통한다.

왜 비용을 공개하는가

SmolLM 팀의 명시적 입장 — “open source LLM 의 reproducibility 는 가격까지 포함한다”. 누군가가 같은 모델을 처음부터 다시 만들고 싶을 때, GPU-hour 견적 없이는 못 한다. 그래서 ablation 비용까지 표로.

§ 09reproducibility — 공개되는 모든 것· openness

weight · data · code · config · ablation log — 다 공개

SmolLM3 가 “open weights” 를 넘어 “open everything” 인 자리. 같은 결과를 다른 팀이 재현 가능한 형태까지.

이 정도의 공개는 frontier 모델에서는 거의 보기 힘들다. 그게 SmolLM3 가 학습 자료 로 가치 있는 이유 — 공개된 정보로 다음 팀이 결정 근거를 그대로 따라갈 수 있다.

post-training 의 디테일까지

SFT (4 epoch, BFD packing, user turn loss masking), APO (DPO 의 더 안정한 변형), model merging 으로 long-context 회복 (APO 가중 0.9 + mid-training 가중 0.1). 한 단계도 빠지지 않은 레시피.

§ 10기억할 메모와 실습· key takeaways

다시 열었을 때 5분 안에 잡혀야 할 것

3-stage curriculum
Stage1 foundation · Stage2 quality boost · Stage3 decay (code/math upsample). decay phase 가 결정적.
WSD scheduler
cosine 대신 warmup-stable-decay. stable 단계의 checkpoint 가 직접 비교 가능 — ablation friendly.
GQA 4 그룹
MHA 와 동등 quality, KV cache 4× 작음. 추론 비용의 결정적 절약.
매 4번째 NoPE
long-context 외삽 향상 + short-context 손해 없음. YARN 으로 inference 시 128k.
embedding weight decay 제거
학습 안정성 — embedding 0 수렴 방지.
overtraining 60×
3B × 11.2T = chinchilla optimal 의 60×. 추론 비용을 학습에 옮긴 trade-off.
ablation 의 cycle time
100B token 단위, 3 seed, downstream metric. seed noise 안에 들어오면 폐기.
model merging
APO 의 long-context 손실을 mid-training checkpoint 와 0.9/0.1 merge 로 회복.

실습 시퀀스

  1. SmolLM3 base + instruct 직접 추론 — HF Hub 에서 다운로드, 같은 prompt 에 두 모델 비교. /think · /no_think 토글 효과 확인.
  2. Nanotron 으로 작은 ablation — Nanotron 의 SmolLM3 config 를 베이스로 100B → 1B 로 줄여, GQA 그룹 수 (1, 4, 8) 변화 ablation.
  3. WSD vs cosine 비교 — 같은 모델 같은 데이터, scheduler 만 바꿔서 학습. final downstream metric 비교 + 중간 checkpoint 평가 가능성 비교.
  4. data mixture ablation — FineWeb-Edu 단독 vs FineWeb-Edu + Stack-Edu 의 두 mixture 로 100B 학습. 같은 LR, 같은 step. code metric 의 차이.
  5. model merging 직접 해보기 — MergeKit 으로 두 SmolLM3 checkpoint 를 0.9/0.1 merge. RULER 점수 변화 측정.
§ 11다른 강의로 이어지는 길· connections

학습 레시피 시리즈 안에서

§ 12열린 질문· open questions

다음에 다시 들었을 때 직접 검증해야 할 것들

검증 메모

본 노트는 SmolLM3 공식 blog 의 정보 + 일반 LLM 학습 도메인 지식의 결합으로 작성. 강의 영상이 복원되면 ablation 의 구체 사례 / 비용 break-down / negative result 를 추가 보강해야 한다.

← Lecture 091RL, Agents & OpenEnv Lecture 093 →Cornserve — Multimodal AI Serving