Skip to main content
이 문서는 GenAI 개념 섹션의 일부입니다.
< LLM 기초 목차로 돌아가기
LLM이 “똑똑한 챗봇”이 되기까지는 세 단계의 학습 과정을 거칩니다. 각 단계는 목적, 데이터, 비용이 완전히 다릅니다.

Stage 1: Pre-training (사전학습)

인터넷, 도서, 코드 저장소 등 수조 토큰 규모의 텍스트 데이터 를 사용하여 “다음 토큰 예측(Next-Token Prediction)” 과제를 학습합니다.
  • 데이터: 인터넷 크롤링 (Common Crawl), 위키피디아, 책, GitHub 코드 등
  • 규모: 수천 대의 GPU를 수 주~수 개월간 사용
  • 비용: 수백만~수천만 달러 (Llama 3 405B 학습에 GPU 약 16,000대 사용 추정)
  • 결과: 언어 패턴, 문법, 세계 지식을 학습하지만, 아직 “도움이 되는 어시스턴트”가 아님
이 단계의 모델은 프롬프트를 주면 단순히 텍스트를 이어서 생성할 뿐, 질문에 답하거나 지시를 따르지 못합니다.

Stage 2: Supervised Fine-Tuning (SFT, 지도 미세조정)

사람이 직접 작성한 (지시, 이상적인 응답) 쌍 데이터로 학습합니다.
  • 데이터: 인간 전문가(Demonstrator)가 작성한 고품질 (instruction, ideal_response) 쌍 — 수천~수만 개
  • 목적: 모델이 지시를 이해하고, 도움이 되는 방식으로 응답 하도록 행동을 정렬
  • 예시: “서울의 인구는?” → “서울의 인구는 약 950만 명입니다. (2024년 기준)”
  • 비용: Pre-training 대비 매우 적음 (GPU 수십 대, 수 일)

Stage 3: RLHF / DPO (인간 피드백 강화학습)

사람이 모델의 두 가지 출력을 비교하여 더 나은 응답을 선택 하는 선호 데이터를 수집하고, 이를 바탕으로 모델을 최적화합니다.
  • RLHF (Reinforcement Learning from Human Feedback): 선호 데이터로 보상 모델(Reward Model) 을 학습 → PPO(Proximal Policy Optimization) 알고리즘으로 LLM 최적화
  • DPO (Direct Preference Optimization): 보상 모델 없이 선호 데이터로 직접 LLM을 최적화하는 간소화된 방법
  • 효과: 안전성, 유용성, 무해성을 강화 — GPT-3를 ChatGPT로 변환한 핵심 단계
  • 비용: SFT와 유사하거나 약간 높음

3단계 비교 요약

참고 실무 포인트: 대부분의 기업은 Stage 1을 직접 하지 않습니다. Foundation Model API를 통해 이미 학습된 모델을 사용하고, 필요시 Stage 2(Fine-tuning)만 수행합니다. Databricks의 Mosaic AI Training은 Stage 2를 위한 관리형 환경을 제공합니다.

Stage 1.5: Continued Pre-Training (CPT, 도메인 특화 사전학습)

Stage 1(사전학습)과 Stage 2(SFT) 사이에 위치하는 선택적 단계 입니다. 범용 모델이 특정 도메인의 언어, 용어, 패턴을 충분히 학습하지 못한 경우, 도메인 특화 데이터로 추가 사전학습 을 수행합니다.

왜 CPT가 필요한가?

범용 LLM은 인터넷 텍스트로 학습되었기 때문에, 특정 도메인의 전문 용어나 패턴에 약할 수 있습니다.

CPT 수행 방법

주의 CPT의 리스크: 학습률이 너무 높거나 데이터가 편향되면 Catastrophic Forgetting(파괴적 망각) 이 발생합니다. 모델이 도메인 지식을 얻는 대신 범용 능력을 잃는 현상입니다. 학습률을 낮게 설정하고(5e-6 이하), 도메인 데이터와 범용 데이터를 혼합하는 것이 좋습니다.

SFT 심화: 파라미터 효율적 파인튜닝 (PEFT)

Full Fine-Tuning의 문제

70B 모델을 Full Fine-Tuning하려면 수백 GB의 GPU 메모리 가 필요합니다. 대부분의 기업에게 현실적이지 않습니다.

LoRA (Low-Rank Adaptation)

LoRA는 원본 모델의 가중치를 동결(freeze) 하고, 각 레이어에 작은 행렬 쌍(A, B) 만 추가하여 학습합니다.

QLoRA (Quantized LoRA)

QLoRA는 LoRA에 양자화(Quantization) 를 결합합니다. 원본 모델을 4-bit로 양자화하여 메모리를 극적으로 줄이고, LoRA 어댑터만 16-bit로 학습합니다. 단일 A100 80GB GPU로 70B 모델 파인튜닝이 가능해집니다.

데이터 품질 vs 양: 무엇이 더 중요한가?

SFT에서 데이터 품질이 양보다 압도적으로 중요합니다.
참고 실무 가이드: SFT 데이터는 1,000~10,000개의 고품질 (instruction, response) 쌍 으로 시작하세요. 1만 개를 채우려고 품질을 낮추는 것보다, 1,000개를 도메인 전문가가 직접 작성하는 것이 훨씬 효과적입니다.

Catastrophic Forgetting 방지 전략

파인튜닝 시 모델이 기존에 학습한 범용 능력을 잃는 현상을 파괴적 망각(Catastrophic Forgetting) 이라고 합니다.
  • 낮은 학습률 사용: 1e-5 ~ 5e-5 범위. 너무 높으면 기존 지식을 빠르게 덮어씀
  • 학습 데이터 혼합: 도메인 데이터(70%) + 범용 데이터(30%)를 섞어 학습
  • LoRA 사용: 원본 가중치를 동결하므로 본질적으로 망각 위험이 낮음
  • 조기 종료(Early Stopping): 검증 세트의 성능이 떨어지기 시작하면 학습 중단

RLHF 이후 기법: 더 단순해지는 Alignment

RLHF는 강력하지만 복잡합니다. 보상 모델 학습 → PPO 최적화 라는 2단계 파이프라인이 불안정하고 하이퍼파라미터에 민감합니다. 이를 개선하기 위해 다양한 대안 기법이 등장했습니다.

주요 Alignment 기법 비교

트렌드: 점점 단순해지는 Alignment

  • RLHF: 보상 모델 + PPO. 4개의 모델을 동시에 관리 (기본 모델, 참조 모델, 보상 모델, 정책 모델)
  • DPO: 보상 모델 제거. 2개의 모델만 필요 (기본 모델, 참조 모델)
  • SimPO: 참조 모델도 제거. 1개의 모델만 필요
참고 실무적 선택: 2025년 기준, DPO가 가장 보편적인 선택 입니다. RLHF 대비 구현이 간단하면서 성능은 동등합니다. KTO는 선호 쌍을 구성하기 어려운 경우(예: 고객 피드백 “좋아요/싫어요”)에 유용합니다.

합성 데이터로 SFT 데이터 생성

고품질 SFT 데이터를 사람이 직접 작성하는 것은 비용이 높습니다. 강력한 모델(Teacher) 을 활용하여 SFT 데이터를 자동 생성하는 기법이 널리 사용됩니다.

Self-Instruct

  1. 소수의 시드(seed) instruction을 작성 (수십 개)
  2. LLM이 시드를 참고하여 새로운 instruction을 생성
  3. 각 instruction에 대해 LLM이 응답을 생성
  4. 품질 필터링 (중복 제거, 길이 필터, 독성 검사)

Evol-Instruct (WizardLM)

기존 instruction을 점진적으로 복잡하게 진화 시킵니다.

Databricks에서의 합성 데이터 파이프라인

주의 합성 데이터 주의사항: 합성 데이터만으로 학습하면 Model Collapse 현상이 발생할 수 있습니다. Teacher 모델의 편향이 증폭되어 다양성이 감소합니다. 반드시 인간 작성 데이터와 혼합(최소 20~30%)하는 것을 권장합니다.

Databricks에서의 학습 단계별 활용

참고 현실적 가이드: 대부분의 기업 GenAI 프로젝트는 Fine-tuning 없이 Foundation Model API + RAG + Prompt Engineering 으로 시작하는 것이 올바른 접근입니다. SFT는 RAG로 해결할 수 없는 형식/스타일/도메인 용어 문제가 있을 때만 고려하세요.

< 이전: 핵심 개념 | 다음: LLM 내부 작동 직관적 이해 >