AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Midtraining – 사전학습과 후학습 사이에서 LLM을 전문화하는 훈련 단계

Midtraining은 일반 사전학습(pretraining)과 후학습(post-training) 사이에서 모델의 데이터 분포를 점진적으로 바꿔 특정 능력을 강화하는 중간 훈련 단계다. 최근 LLM 학습 파이프라인은 pretraining과 post-training의 2단계 구도에서 벗어나, continued pretraining(CPT), midtraining, long-context training 같은 중간 단계를 별도로 둔다.

CPT와 Midtraining의 차이

둘 다 보통 next-token prediction 계열 목표로 대규모 텍스트를 계속 학습한다는 점에서는 비슷하다. 차이는 운영 맥락에 있다.

구분Continued Pretraining(CPT)Midtraining
시작점이미 공개되거나 내부에 존재하는 pretrained checkpoint원래 학습 일정 안의 pretrained checkpoint
목적특정 도메인·제품 데이터로 모델을 전문화후학습 전에 고품질·도메인·추론 데이터로 분포를 점진 조정
위치외부 모델을 가져온 뒤 추가 훈련하는 경우가 많다원래 모델 개발 파이프라인 안에 계획되는 경우가 많다
대표 활용사내 코드, 의료 문서, 금융 데이터 적응reasoning, instruction-like data, long-context 기반 능력 강화

Midtraining은 보통 처음부터 모델 학습 일정 안에 포함된다. 일반 웹·코드·문서 분포로 학습하다가 후반부에 더 높은 품질, 도메인 특화, reasoning, instruction-like 데이터로 데이터 믹스를 annealing한다. CPT는 기존 checkpoint를 특정 조직이나 제품 목적에 맞게 이어서 훈련하는 의미로 더 자주 쓰인다.

왜 필요한가

사전학습은 넓은 지식과 언어 능력을 만든다. 후학습은 지시 따르기, 안전성, 도구 사용, 추론 행동을 다듬는다. 하지만 둘 사이에는 다음 문제가 남는다.

  • 특정 도메인 데이터가 일반 사전학습 분포에서 충분히 대표되지 않는다.
  • 긴 컨텍스트, 코딩 세션, 수학 풀이처럼 후학습만으로는 부족한 기반 능력이 필요하다.
  • RL이나 SFT가 효과를 보려면 그 전에 base model이 해당 도메인의 언어와 구조를 이미 어느 정도 이해해야 한다.
  • speculative decoding용 MTP layer 같은 구조 변경을 후학습 전에 함께 적응시켜야 할 수 있다.

예를 들어 코딩 모델을 만들 때 실제 IDE 세션, repo-level 변경, 테스트 로그, tool trace를 CPT나 midtraining에 포함하면 이후 SFT·RL의 출발점이 좋아진다. llm-post-training이 “행동을 입히는 단계”라면, midtraining은 그 행동이 얹힐 도메인 기반을 넓히는 단계에 가깝다.

실무 레시피

최근 사례들을 종합하면 midtraining과 CPT는 감으로 데이터만 더 넣는 작업이 아니다.

  1. 짧은 proxy CPT run으로 후보 데이터셋별 효과를 먼저 본다.
  2. downstream eval에서 일관되게 도움이 되는 데이터만 남긴다.
  3. 데이터셋별 learning rate와 training duration을 따로 sweep한다.
  4. 오래 학습할수록 좋아지는 데이터와 빨리 과적합되는 데이터를 구분한다.
  5. 최종 믹스는 각 데이터셋이 최적 성능을 낸 훈련량에 비례해 가중하는 식으로 조정한다.
  6. in-domain 성능 향상과 general capability forgetting을 함께 측정한다.

핵심은 “어떤 데이터를 얼마나 오래 먹일지”다. 예를 들어 어떤 데이터는 1B~10B 토큰 proxy run에서 빠르게 성능 향상을 보이지만 긴 훈련에서는 일반 능력을 깎을 수 있다. 반대로 수학·코드처럼 장기 훈련에서 서서히 좋아지는 데이터도 있다.

Long-context training과의 관계

Long-context training은 midtraining과 함께 쓰이는 경우가 많지만 목표가 조금 다르다. 모델을 처음부터 아주 긴 sequence로 학습하면 비용이 크므로, 짧은 sequence로 기본 능력을 만든 뒤 별도 단계에서 128K, 256K 같은 긴 컨텍스트로 확장한다.

이 단계는 context-engineering과도 연결된다. 긴 컨텍스트 모델이 실제로 유용하려면 단순히 window 크기만 늘리는 것이 아니라, 긴 문서·코드베이스·대화 이력에서 필요한 정보를 유지하고 검색하는 훈련 분포가 필요하다.

도입 시 판단 기준

Midtraining 또는 CPT가 필요한지는 다음 질문으로 판단한다.

  • RAG나 도구 호출만으로 해결되지 않는 도메인 언어·패턴 학습이 필요한가
  • SFT 데이터만으로는 모델이 기본 개념을 충분히 이해하지 못하는가
  • downstream RL 전에 base model의 해당 작업 성공률을 올려야 하는가
  • 긴 컨텍스트, 코드 세션, 멀티모달 trace처럼 pretraining 분포와 다른 입력 구조가 필요한가
  • 추가 훈련으로 일반 능력 저하를 감수할 만큼 제품 도메인이 뚜렷한가

대부분의 제품팀에는 직접 midtraining을 수행할 compute가 없다. 그래도 이 개념은 모델 선택에 중요하다. 코딩, 의료, 금융, 법률, 장문 에이전트용 모델을 비교할 때는 단순 파라미터 수보다 어떤 CPT·midtraining 데이터와 평가를 거쳤는지를 봐야 한다.

관련 문서

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)