Articlehuggingface.co·2025년 7월 8일·3

SmolLM3: smol, multilingual, long-context reasoner

Quick Summary

SmolLM3는 공개 데이터와 학습 도구로 구축한 30억 매개변수 모델로, 11조 개가 넘는 토큰의 단계별 사전학습과 장문·추론 중간학습을 결합해 다국어, 최대 128K 문맥, 추론·비추론 이중 모드를 지원한다.

SmolLM3: smol, multilingual, long-context reasoner 관련 대표 이미지

🖼️ 인포그래픽

SmolLM3: smol, multilingual, long-context reasoner 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

SmolLM3: smol, multilingual, long-context reasoner의 핵심 내용을 4단계로 요약한 인포그래픽
SmolLM3: smol, multilingual, long-context reasoner 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

SmolLM3는 공개 데이터와 학습 도구로 구축한 30억 매개변수 모델로, 11조 개가 넘는 토큰의 단계별 사전학습과 장문·추론 중간학습을 결합해 다국어, 최대 128K 문맥, 추론·비추론 이중 모드를 지원한다.

📌 핵심 요약

  • SmolLM3는 30억 매개변수 규모에서 Llama-3.2-3B와 Qwen2.5-3B보다 높은 성능을 보이고, Qwen3 및 Gemma3 같은 40억 매개변수 모델과도 경쟁하도록 설계됐다.
  • 모델은 그룹 질의 어텐션, 일부 계층의 위치 회전 임베딩 제거, 문서 간 어텐션 차단, 임베딩 계층의 가중치 감쇠 제거를 적용해 추론 효율과 장문 처리 및 학습 안정성을 개선했다.
  • 사전학습은 총 11조 2천억 개 토큰을 대상으로 웹 중심의 초기 단계에서 시작해 후반으로 갈수록 수학·코드·추론 데이터를 늘리는 세 단계 방식으로 진행됐다.
  • 사전학습 후 1천억 개 토큰의 장문 학습으로 문맥 길이를 4K에서 32K, 다시 64K로 확장했으며, 추론 시에는 YARN을 이용해 최대 128K 문맥을 처리한다.
  • 추론 중간학습과 지도 미세조정, 합성 데이터 생성, 선호도 정렬을 결합하고 채팅 템플릿에 /think와 /no_think 제어 기능을 넣어 하나의 모델에서 명시적 추론과 직접 응답을 모두 지원한다.

🧩 주요 포인트

  1. SmolLM3는 30억 매개변수 규모에서 Llama-3.2-3B와 Qwen2.5-3B보다 높은 성능을 보이고, Qwen3 및 Gemma3 같은 40억 매개변수 모델과도 경쟁하도록 설계됐다.
  2. 모델은 그룹 질의 어텐션, 일부 계층의 위치 회전 임베딩 제거, 문서 간 어텐션 차단, 임베딩 계층의 가중치 감쇠 제거를 적용해 추론 효율과 장문 처리 및 학습 안정성을 개선했다.
  3. 사전학습은 총 11조 2천억 개 토큰을 대상으로 웹 중심의 초기 단계에서 시작해 후반으로 갈수록 수학·코드·추론 데이터를 늘리는 세 단계 방식으로 진행됐다.
  4. 사전학습 후 1천억 개 토큰의 장문 학습으로 문맥 길이를 4K에서 32K, 다시 64K로 확장했으며, 추론 시에는 YARN을 이용해 최대 128K 문맥을 처리한다.
  5. 추론 중간학습과 지도 미세조정, 합성 데이터 생성, 선호도 정렬을 결합하고 채팅 템플릿에 /think와 /no_think 제어 기능을 넣어 하나의 모델에서 명시적 추론과 직접 응답을 모두 지원한다.

🧠 상세 정리

1. 30억 매개변수 모델의 목표와 공개 범위

SmolLM3는 효율적으로 배포할 수 있으면서도 높은 성능을 내는 소형 언어 모델을 목표로 개발된 완전 공개형 30억 매개변수 모델이다. 글에서는 이 모델이 Llama-3.2-3B와 Qwen2.5-3B를 능가하고, 더 큰 Qwen3 및 Gemma3 40억 매개변수 모델과도 경쟁할 수 있다고 설명한다. 핵심 특징은 11조 개가 넘는 토큰을 사용한 학습, 추론과 비추론을 전환할 수 있는 이중 모드, 영어·프랑스어·스페인어·독일어·이탈리아어·포르투갈어 등 6개 언어 지원이다. 단순히 모델 가중치만 공개하는 데 그치지 않고, 공개 데이터와 학습 프레임워크를 사용한 아키텍처, 데이터 혼합 비율, 단계별 학습 방법, 혼합형 추론 모델 구축 절차까지 함께 제시한다. 이를 통해 비슷한 규모의 모델을 구축하려는 연구자가 성능 결과뿐 아니라 그 결과에 도달한 구체적인 공학 과정을 재현하고 분석할 수 있도록 하는 것이 글의 주요 목적이다.

2. 효율성과 장문 처리를 위한 아키텍처 변경

SmolLM3는 Llama 계열의 트랜스포머 디코더와 입력·출력 임베딩을 공유하는 SmolLM2 계열 구조를 기반으로 하되, 효율성과 장문 성능을 위한 여러 변경을 적용했다. 먼저 다중 헤드 어텐션을 4개 그룹의 그룹 질의 어텐션으로 교체했으며, 1천억 개의 FineWeb-Edu 토큰으로 수행한 비교 실험에서 기존 방식과 비슷한 성능을 유지하면서 추론 시 키·값 캐시 크기를 크게 줄였다. 또한 네 번째 계층마다 위치 회전 임베딩을 선택적으로 제거하는 NoPE 방식을 도입해 짧은 문맥 성능을 해치지 않으면서 긴 문맥 처리 능력을 높였다. 같은 학습 시퀀스에 포함된 서로 다른 문서의 토큰이 상호 참조하지 못하도록 문서 내부 마스킹도 사용해 장문 학습을 더 빠르고 안정적으로 만들었다. 마지막으로 OLMo 2의 방식을 따라 임베딩 계층에는 가중치 감쇠를 적용하지 않았고, 이 변경이 전체 성능을 떨어뜨리지 않으면서 임베딩 노름을 더 건강한 값으로 안정화한다는 점을 비교 실험으로 확인했다.

3. 학습 설정과 변경 사항의 검증 방식

아키텍처 변경은 서로 다른 조건을 뒤섞어 평가하지 않고, 동일한 30억 매개변수 구조를 FineWeb-Edu의 1천억 개 토큰으로 학습하는 비교 실험을 통해 각각 검증했다. 각 변경은 직접적인 성능을 높이거나, 성능을 유지하면서 키·값 캐시 절감이나 학습 안정성 같은 다른 이점을 제공할 때 채택됐다. 본 학습에서는 시퀀스 길이 4,096과 전역 배치 크기 236만 토큰을 사용했고, 학습률은 0.0002로 설정했다. 옵티마이저는 AdamW를 사용해 베타 값을 각각 0.9와 0.95, 가중치 감쇠를 0.1, 그래디언트 클리핑을 1로 두었으며, 2,000단계의 준비 구간과 마지막 10% 구간의 선형 감쇠를 포함하는 WSD 스케줄러를 적용했다. 학습에는 nanotron, 데이터 처리에는 datatrove, 평가에는 lighteval을 사용했으며, 전체 모델은 H100 그래픽처리장치 384개에서 24일 동안 학습됐다.

4. 11조 2천억 토큰의 세 단계 사전학습

사전학습은 SmolLM2의 다단계 방식을 확장해 총 11조 2천억 개 토큰을 웹·수학·코드 데이터의 비중이 변화하는 세 단계로 구성했다. 0에서 8조 토큰까지의 첫 단계는 일반 능력 형성을 위한 안정 구간으로, 웹 데이터가 85%이고 그중 12%는 다국어 데이터이며, 코드 데이터는 12%로 구성됐다. 웹에는 FineWeb-Edu, DCLM, FineWeb2와 FineWeb2-HQ를 사용했고, 코드에는 The Stack v2의 16개 프로그래밍 언어와 StarCoder2 풀 리퀘스트, 주피터·캐글 노트북, 깃허브 이슈, StackExchange를 포함했다. 8조에서 10조 토큰까지의 두 번째 단계에서는 웹 비중을 75%로 조정하면서 FineMath4+, InfiWebMath4+, MegaMath 등 고품질 수학 데이터를 10% 도입하고 코드 데이터의 품질도 강화했다. 10조에서 11조 1천억 토큰까지의 감쇠 단계에서는 웹을 63%, 수학을 13%로 조정하고 OpenMathReasoning 같은 지시·추론 데이터를 추가하면서 수학과 코드의 비중을 더 높였으며, 정확한 데이터 가중치와 학습 설정도 공개 대상으로 제시했다.

5. 64K 학습과 128K 추론을 위한 장문 확장

주요 사전학습이 끝난 뒤 SmolLM3는 문맥 길이를 늘리기 위해 추가로 1천억 개 토큰을 학습했다. 이 과정은 각각 500억 개 토큰으로 구성된 두 단계로 진행됐으며, 먼저 문맥을 4K에서 32K로 확장하면서 위치 회전 임베딩의 세타 값을 150만으로 높이고, 이어 32K에서 64K로 확장하면서 세타 값을 500만으로 높였다. 두 단계 모두 수학·코드·추론 데이터를 더 많이 포함했지만, 코드 저장소나 책, 긴 웹 문서처럼 장문 전용 자료를 별도로 추가 확대하는 방식은 RULER와 HELMET 평가에서 추가적인 향상을 만들지 못했다. 비교 실험에서는 NoPE를 적용한 상태에서 사전학습 후반의 데이터 혼합을 유지하고, 더 긴 시퀀스와 증가한 세타 값을 사용하는 것만으로도 64K까지 경쟁력 있는 장문 성능을 얻을 수 있었다. 실제 추론에서는 Qwen2.5와 마찬가지로 YARN을 사용해 학습 문맥 길이의 두 배인 최대 128K까지 외삽하도록 구성했다.

6. 도메인에 한정되지 않은 추론 중간학습

장문 확장 뒤에는 모델이 특정 수학 또는 코드 영역에 한정되지 않고 일반적으로 추론하도록 만드는 별도의 중간학습을 진행했다. 이 단계는 대규모 사전학습보다는 짧지만, 특정 과제에 맞추는 후속학습과 달리 여전히 범용 능력을 목표로 한다는 점에서 사전학습과 후속학습 사이의 단계로 구분된다. 데이터셋은 Open Thought의 OpenThoughts3-1.2M과 NVIDIA의 Llama-Nemotron-Post-Training-Dataset-v1.1 일부에 포함된 R1 추론 흔적을 바탕으로 총 350억 개 토큰으로 구성됐다. 모델에는 지나치게 강한 형식적 구조를 주지 않기 위해 ChatML 채팅 템플릿과 래핑 패킹 방식을 사용했다. 이 데이터를 약 4회 반복해 총 1천400억 토큰가량 학습했으며, 그 결과로 얻은 체크포인트를 이후의 지도 미세조정 단계에 사용했다.

7. 추론·비추론 모드를 제어하는 채팅 템플릿

SmolLM3의 이중 모드는 단순한 내부 능력이 아니라 사용자가 대화 중 직접 제어할 수 있도록 채팅 템플릿에 반영됐다. 시스템 프롬프트에 /think를 넣으면 추론 모드를, /no_think를 넣으면 비추론 모드를 활성화할 수 있으며, 비추론 모드에서는 빈 추론 블록을 응답 앞에 미리 채워 명시적인 사고 과정 없이 직접 답하도록 유도한다. 템플릿에는 각 모드에 맞는 기본 시스템 메시지와 함께 날짜, 지식 기준일, 현재 추론 모드를 담는 메타데이터 구역도 포함된다. 사용자는 시스템 역할의 메시지를 직접 제공해 기본 메시지를 교체할 수 있고, /system_override를 사용해 메타데이터 구역 자체를 제외할 수도 있다. 도구 호출도 지원하며, 도구 정의를 XML 도구와 파이썬 도구의 두 구역으로 분리한 구성이 각 형식의 정의를 모델이 정확하게 해석하는 데 실험상 도움이 됐다고 설명한다.

8. 이중 모드 지도 미세조정과 합성 데이터

추론 중간학습 이후에는 수학, 코드, 일반 추론, 지시 이행, 다국어, 도구 호출 능력을 추론·비추론 양쪽 모드에 모두 반영하기 위한 지도 미세조정을 진행했다. 하나의 모델이 두 모드에서 모두 강한 성능을 유지해야 하므로, 학습 과정에서는 수학·코드·일반 추론·지시 이행·다국어 영역을 지속적으로 추적하며 데이터 혼합의 균형을 조정했다. 가장 큰 문제는 일부 영역에서 명시적인 추론 흔적을 포함한 공개 데이터가 부족하다는 점이었다. 이를 보완하기 위해 기존 비추론 데이터셋의 프롬프트를 Qwen3-32B의 추론 모드에 입력해 합성 추론 데이터를 생성했고, 이를 모델이 상대적으로 어려움을 겪던 영역의 학습에 사용했다. 전체 이중 지시 모델 구축 절차는 범용 추론 중간학습, 합성 데이터를 포함한 지도 미세조정, 그리고 DPO의 변형인 고정점 선호도 최적화를 이용한 정렬로 구성되며, 원문은 이 과정을 공개 데이터 기반의 재현 가능한 방법으로 제시한다.

🧾 핵심 주장 / 시사점

  • SmolLM3의 성능은 매개변수 규모만 키운 결과가 아니라, 그룹 질의 어텐션과 NoPE 같은 구조 변경, 세 단계 데이터 혼합, 장문·추론 중간학습을 순차적으로 결합한 결과로 설명된다.
  • 장문 성능 실험에서는 장문 전용 자료를 별도로 더 넣는 것이 항상 효과적이지 않았으며, NoPE와 긴 학습 시퀀스, 조정된 위치 회전 임베딩 세타 값만으로도 64K 문맥에서 경쟁력 있는 결과를 얻었다.
  • 추론·비추론 이중 모드는 채팅 템플릿의 전환 기능만으로 완성되는 것이 아니라, 일반 추론 중간학습과 두 모드의 균형을 고려한 지도 미세조정, 부족한 추론 흔적을 보완하는 합성 데이터가 함께 필요했다.

✅ 액션 아이템

  • 기본 모델군을 Llama-3.2-3B·Qwen2.5-3B 및 Qwen3·Gemma3(40억)와 동일 조건에서 재평가해 경량 대체군 적합성을 점검한다.
  • 그룹 질의 어텐션, 일부 층 RoPE 제거, 문서 간 어텐션 차단 조합의 효과를 ablation으로 분리해 추론 효율과 학습 안정성 변화를 정량 비교한다.
  • 11조2천억 토큰 사전학습 후 1천억 토큰 장문 학습을 거쳐 추론 중간학습을 결합하고 4K·32K·64K·128K 문맥에서 /think와 /no_think 동작을 함께 점검한다.

❓ 열린 질문

  • 성능 우위는 어떤 벤치마크와 지표에서 확인됐으며 동일 실험 조건에서 재현 가능할 것인가?
  • 각 모듈 최적화인 그룹 질의 어텐션, RoPE 일부 제거, 문서 간 어텐션 차단의 기여도를 어떻게 분리해 평가할 것인가?
  • YARN 기반 128K 문맥에서 /think 모드와 /no_think 모드의 정확도 및 지연 특성은 어떤 기준으로 비교·판단할 것인가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.