LLM 핸드북 2: 학습·정렬

프리트레이닝과 정렬 파이프라인을 중심으로 LLM 학습 과정을 실무 관점에서 정리합니다.

개요

LLM 파이프라인은 대규모 사전학습지도학습(SFT)정렬(RLHF/DPO)추론 최적화로 이어집니다. 제품의 성격에 따라 일부 단계는 생략되거나 경량화됩니다.

프리트레이닝 SFT 정렬 추론

LLM 제작 흐름의 핵심 단계

LLM 제작 로드맵

  1. 문제 정의 및 타겟 도메인 결정
  2. 데이터 수집/정제/라이선스 검토
  3. 모델 규모·아키텍처 결정
  4. 프리트레이닝(또는 기존 모델 선택)
  5. SFT/정렬 데이터 준비
  6. 정렬 학습(RLHF/DPO)
  7. 추론 최적화 및 배포
  8. 평가/모니터링/개선 반복

컴퓨트/예산 계획

  • GPU 전략: A100/H100 등급, 클러스터 규모
  • 학습 시간: 배치 크기, 시퀀스 길이, 스텝 수에 비례
  • 예산 산정: 데이터 준비 + 학습 + 검증 + 추론 비용 합산
주의: 전체 비용의 상당 부분은 데이터 정제와 반복 학습에서 발생합니다.

아키텍처 선택

  • 모델 크기: 파라미터 수와 목표 성능의 균형
  • 시퀀스 길이: 컨텍스트 요구사항에 맞는 길이
  • 모델 형태: Decoder-only가 일반적, 특수 목적은 Encoder/Encoder-Decoder 고려
실무 포인트: 도메인 특화 모델은 “작게 시작해 크게 확장”하는 접근이 안전합니다.

프리트레이닝

웹 문서, 코드, 대화 로그 등 대규모 데이터로 다음 토큰 예측을 반복합니다. 이 단계가 모델의 일반 지식을 형성합니다.

  • 데이터 품질: 필터링·중복 제거·노이즈 제거가 성능에 직접 영향
  • 스케일: 파라미터 수와 데이터량의 균형이 중요
  • 컴퓨트 예산: 학습 비용은 대부분 이 단계에서 발생

데이터 큐레이션

LLM 성능의 절반은 데이터 품질에서 결정됩니다. 운영 환경에서 사용할 데이터라면 법적·보안 요구까지 함께 고려해야 합니다.

  • 정제: 중복 제거, 스팸 필터, 포맷 통일
  • 도메인 균형: 코드/문서/대화 비율을 목표에 맞게 설계
  • 민감정보 제거: 개인정보/저작권 위험 데이터 제거

데이터 파이프라인 상세

  1. 수집: 웹/코드/대화 데이터 확보
  2. 정제: 중복 제거, 노이즈/스팸 필터링
  3. 정렬: 언어/도메인 기준으로 분류
  4. 샘플링: 목표 분포에 맞게 비율 조정
  5. 검증: 품질 샘플링 및 통계 확인

데이터 체크리스트

  • 출처 명확성: 데이터 라이선스 확인
  • 정합성: 중복/오류/빈 텍스트 제거
  • 민감정보: PII/PHI 자동 마스킹 여부
  • 버전 관리: 데이터셋 버전 고정

정렬: SFT, RLHF, DPO

사용자 의도에 맞는 답변 스타일을 학습시키는 단계입니다. 생산 환경에서는 빠르고 안정적인 정렬이 중요합니다.

  • SFT: 원하는 답변을 직접 지도 데이터로 학습
  • RLHF: 인간 선호도를 보상 모델로 반영
  • DPO: 선호도 쌍 데이터를 직접 최적화하여 안정적 정렬
팁: 정렬 데이터는 정책/규제/도메인 요구사항을 가장 빠르게 반영하는 수단입니다.

정렬 기법 선택 가이드

  • SFT: 빠르게 도메인 지식을 주입하고 싶을 때
  • RLHF: 미묘한 선호도 조정이 필요할 때
  • DPO: 안정성과 재현성이 중요할 때
실무 포인트: SFT로 먼저 빠르게 검증하고, 필요할 때 RLHF/DPO로 정밀 조정하는 흐름이 일반적입니다.

정렬 데이터 템플릿

# 선호도 쌍 템플릿
prompt: {사용자 질문}
better: {더 좋은 응답}
worse: {덜 좋은 응답}
note: {판단 근거}

학습 스택 구성

  • 분산 학습: 데이터 병렬/모델 병렬
  • 체크포인트: 중간 저장으로 재학습 비용 절감
  • 실험 관리: 실험 파라미터와 결과 기록

학습 설정 예시

아래는 대략적인 형태의 설정 예시입니다. 실제 값은 모델 규모/데이터/예산에 따라 달라집니다.

# 학습 설정 예시 (의사 코드)
model_size: "8B"
sequence_length: 8192
batch_size: 256
learning_rate: 2e-4
warmup_steps: 2000
optimizer: "AdamW"
gradient_checkpointing: true
mixed_precision: "bf16"

학습 최적화 핵심 메커니즘

LLM 학습의 본질은 단순합니다. 손실 함수의 기울기를 계산하고, 그 반대 방향으로 파라미터를 이동시키는 과정을 반복합니다. 실무에서는 이 과정을 안정화하기 위해 워밍업, 클리핑, 누적 배치를 함께 사용합니다.

# 경사 하강법 관점
θ_(t+1) = θ_t - η_t * ∇L(θ_t)

# 대규모 LLM 학습의 실전형 형태
g_t = ∇L_batch(θ_t)
g_t = clip(g_t, max_norm=1.0)   # 기울기 폭발 방지
θ_(t+1) = AdamW(θ_t, g_t, lr_t, beta1, beta2, weight_decay)

# lr_t는 보통 warmup 이후 cosine/linear decay 적용
LLM 학습 루프의 최적화 포인트 순전파 loss 계산 역전파 grad 계산 안정화 clipping + scaling AdamW 업데이트 lr schedule 적용 학습률 스케줄 직관 warmup 최대 lr decay

경사 하강법은 같지만, 안정화 장치를 함께 써야 대규모 학습이 안정적으로 수렴합니다.

요약: 대규모 학습에서는 AdamW + Warmup/Decay + Gradient Clipping + Mixed Precision 조합이 사실상 기본값입니다.

평가·레드팀·안전 정렬 절차

  1. 오프라인 평가셋으로 품질/일관성 확인
  2. 레드팀 시나리오로 정책 위반/오용 가능성 점검
  3. 안전 정렬 데이터 보강 및 재학습
  4. 온라인 A/B 테스트로 실제 성능 검증
주의: 레드팀 결과는 배포 전 필수 검증 항목으로 포함하는 것이 안전합니다.

배포 전 최종 체크리스트

  • 품질: 목표 태스크에서 기준 충족
  • 안전: 금지/민감 주제 차단 테스트 통과
  • 비용: 예상 비용이 예산 범위 내
  • 지연: p95 응답 시간 기준 만족
  • 모니터링: 로그/알림/대시보드 준비 완료

학습 파이프라인 의사 코드

// 실전형: 누적 배치 + 클리핑 + 스케줄러 + 체크포인트
function train(loader, model, optimizer, scheduler) {
  const gradAccum = 8;
  let step = 0;

  for (const batch of loader) {
    const loss = model.forward(batch) / gradAccum;
    loss.backward();

    if ((step + 1) % gradAccum === 0) {
      clipGradNorm(model.parameters(), 1.0);
      optimizer.step();
      scheduler.step();
      optimizer.zeroGrad();
    }

    if (step % 1000 === 0) {
      saveCheckpoint(model, { step, loss: loss.item() });
    }
    step += 1;
  }
}
포인트: GPU 메모리가 부족하면 배치 크기를 낮추는 대신 gradient accumulation으로 유효 배치를 유지할 수 있습니다.

SFT/RLHF/DPO 워크플로우 다이어그램

SFT 데이터 SFT 학습 정렬(RLHF/DPO)

SFT 이후 RLHF/DPO로 정렬하는 기본 흐름

안전 정책 예시

# 안전 정책 샘플
금지: 개인정보 요청, 불법 행위, 자해 관련 안내
제한: 의료/법률 조언은 일반 정보만 제공
허용: 공개 정보 요약, 교육 목적 설명
응답 톤: 사실 기반, 과장 금지

데이터 파이프라인 자동화 예시

// ETL/검증 의사 코드
function pipeline(sources) {
  const raw = collect(sources);
  const cleaned = clean(raw, { dedupe: true, piiMask: true });
  const sampled = sample(cleaned, { domainMix: "target" });
  validate(sampled, { minLength: 50, lang: "ko" });
  writeDataset(sampled, "train.jsonl");
}

정렬 데이터 수집/라벨링 프로세스

  1. 대표 시나리오 정의(질문 유형/도메인)
  2. 기본 응답 생성(SFT 또는 기존 모델)
  3. 라벨러가 “좋은 응답/나쁜 응답”을 선택
  4. 검수 단계에서 불일치/편향 제거
  5. 정렬 데이터셋 버전 고정

학습 실패/불안정성 대응

  • 손실 발산: 학습률 감소, 배치 크기 축소
  • 오버피팅: 정규화, 데이터 증강, 조기 종료
  • 모드 붕괴: 데이터 다양성 확대, 샘플링 재조정
  • 정렬 실패: 선호도 데이터 재검수, 기준 강화
주의: 학습 불안정은 대부분 데이터 품질/학습률/배치 설정에서 발생합니다.

증상별 즉시 조치 플레이북

증상 진단 신호 우선 조치
손실 급등/NaN 학습 초반 수백 step 내 loss 폭증 학습률 하향, warmup 증가, clipping 적용
수렴 정체 loss가 장기간 평평, 평가 지표 정체 학습률 소폭 상향 또는 배치/데이터 분포 재점검
검증 성능 하락 train loss 하락, val loss 상승 weight decay·dropout 강화, 조기 종료
불안정 진동 step 간 loss 분산이 과도하게 큼 유효 배치 확대(누적 배치), 스케줄 완만화
# 긴급 안정화 체크 순서
# 1) lr를 30~50% 줄이고 warmup_steps 증가
# 2) clip_grad_norm(max_norm=1.0) 적용
# 3) 배치 축소 + gradient accumulation 증가
# 4) 데이터 이상치(초장문/깨진 토큰) 제거

실험 추적 템플릿

# 실험 카드
실험명: sft-v2-kr
데이터 버전: v1.3
모델 크기: 8B
학습 설정: lr=2e-4, seq=8k
평가 결과: 정확도 0.82, p95 1.4s
결론: 채택/보류/폐기

안전 정렬 데이터셋 설계 가이드

  • 금지: 불법 행위, 자해/폭력 조장, 개인정보 요청
  • 제한: 의료/법률/금융 조언은 일반 정보 수준
  • 허용: 교육 목적 설명, 공개 정보 요약
  • 엣지 케이스: 우회 요청, 모호한 질문 포함
포인트: 금지/제한/허용의 경계 샘플을 충분히 포함해야 모델이 안정적으로 학습합니다.

품질 회귀 테스트 스위트

정기적으로 실행해 품질 저하를 조기에 감지합니다.

  • 기본 세트: 요약, 번역, 분류, 질의응답
  • 도메인 세트: 코드 리뷰, 정책 문서, 고객지원
  • 안전 세트: 금칙어/유해 요청 대응

평가 자동화 파이프라인 예시

// 배치 평가 → 리포트 생성
function runEval(model, evalSet) {
  const results = [];
  for (const sample of evalSet) {
    const output = model.generate(sample.input);
    results.push({ id: sample.id, score: score(output, sample.gold) });
  }
  writeReport(results, "eval-report.json");
}

RLHF/DPO 구체 단계

  1. 기본 모델로 후보 응답 생성
  2. 사람이 선호도 쌍 라벨링
  3. 보상 모델 학습(RLHF)
  4. 정책 모델 업데이트(RLHF) 또는 DPO 최적화
  5. 평가셋으로 품질 검증
참고: DPO는 보상 모델 학습 없이 직접 선호도 쌍을 최적화합니다.

선호도 데이터 포맷 예시

{"prompt": "이 기능을 설명해줘", "chosen": "명확한 요약", "rejected": "모호한 설명"}

스케일링 법칙과 목표 설정

  • 모델 크기 vs 데이터: 균형이 깨지면 수렴이 느려짐
  • 목표 지표: 도메인별 정확도/지연/비용의 최적점
  • 반복 학습: 작은 모델에서 검증 후 확장

아키텍처별 학습 차이

  • Decoder-only: 대화/생성에 강점, 대부분의 LLM 표준
  • Encoder-Decoder: 입력-출력 변환에 강점(번역/요약)
  • Encoder: 분류/검색에서 효율적
포인트: 서비스 목적이 생성 중심이라면 Decoder-only가 기본 선택입니다.

추론 서빙 최적화 심화

  • 캐시 전략: KV 캐시 + 응답 캐시를 병행
  • 스케줄링: 요청 큐 우선순위와 배치 최적화
  • 멀티 GPU: 텐서 병렬/파이프라인 병렬 조합

레드팀 시나리오 템플릿

# 레드팀 시나리오
목표: 금칙어 우회 요청 탐지
시나리오: 단계적 질문으로 민감정보 유도
성공 기준: 정책 위반 응답 차단
실패 기준: 금지 정보 제공

학습 인프라/데브옵스 구성 예시

  • 스토리지: 대용량 객체 스토리지 + 데이터 캐시
  • 실험 추적: 실험 로그와 체크포인트 관리
  • GPU 오케스트레이션: 스케줄러로 학습 자원 관리
  • 모니터링: 학습 손실/성능 지표 대시보드
포인트: 학습 환경은 “재현성”과 “비용 통제”를 함께 목표로 설계해야 합니다.

멀티모달 학습/추론

  • 비전-언어: 이미지 캡션, 문서 OCR, 멀티모달 QA
  • 오디오-언어: 음성 전사, 음성 요약
  • 데이터 준비: 이미지/오디오 정제와 메타데이터 정렬

모델 라이프사이클 운영

  1. 모델 버전 관리 및 배포 기록
  2. 사용량/품질 분석 후 개선 계획 수립
  3. 신규 데이터 확보 및 재학습
  4. 구버전 모델 폐기/마이그레이션

LLM 제작 비용 산정 상세

  • 데이터 비용: 수집, 정제, 라벨링, 검수
  • 학습 비용: GPU, 스토리지, 전력
  • 검증 비용: 평가셋 구축, 레드팀
  • 서빙 비용: 추론 서버, 캐시, 관찰성
  • 인건비: 연구, 엔지니어링, 운영

파인튜닝 vs LoRA/어댑터

  • 전체 파인튜닝: 최고 성능, 높은 비용
  • LoRA/어댑터: 적은 비용, 빠른 실험
  • 선택 기준: 데이터 규모, 운영 비용, 유지보수 용이성
포인트: 초기에는 LoRA로 검증 후 전체 파인튜닝으로 확장하는 방식이 일반적입니다.

운영 리포트 템플릿

# 월간 운영 리포트
요약: 품질/비용/안전 요약
품질: 정확도, 사용자 만족도
비용: 총 토큰 비용, 캐시 히트율
안전: 정책 위반 건수, 차단율
개선 계획: 다음 달 개선 항목

데이터 저작권/라이선스 리스크

  • 출처 불명 데이터: 법적 리스크가 가장 큼
  • 오픈소스 코드: 라이선스 의무(상업 사용 제한 등) 확인
  • 사용자 데이터: 이용약관/개인정보보호법 준수
주의: 데이터 출처·라이선스는 학습 시작 전에 반드시 문서화해야 합니다.

모델 검증 벤치마크 설계

  • 기본 벤치마크: 요약, 분류, 질문응답
  • 도메인 벤치마크: 실제 고객 데이터 기반 테스트
  • 안전 벤치마크: 금지 요청, 우회 시도
포인트: 서비스 목적과 무관한 벤치마크는 과도한 최적화를 유발할 수 있습니다.

모델 폐기 및 데이터 삭제 절차

  1. 폐기 대상 모델 버전 고정 및 백업
  2. 데이터 보존 정책에 따른 삭제
  3. 운영 시스템에서 모델 엔드포인트 제거
  4. 감사 로그에 폐기 기록 남김

도메인별 파인튜닝 데이터 예시

  • 코딩: 코드 리뷰 코멘트, 리팩터링 전/후 쌍
  • 문서: 정책 요약, 표준 문서 Q&A
  • 지원: 티켓 요약, FAQ 응답 템플릿

모델 성능 드리프트 감지

  • 지표 모니터링: 정확도, 안전 위반율, 재질문 비율
  • 데이터 분포: 입력 길이/도메인 분포 변화 감지
  • 경보: 임계값 초과 시 재평가 트리거

SLA/SLO 템플릿

# 서비스 수준 목표
가용성: 99.9%
지연: p95 < 2.0s
품질: 평가셋 정확도 0.8 이상
안전: 정책 위반율 < 0.1%

모델/데이터 윤리 가이드라인

  • 공정성: 편향된 데이터 분포 감시
  • 투명성: 모델 한계/오류 가능성 명시
  • 책임성: 피해 발생 시 대응 절차 마련
  • 프라이버시: 개인 정보 최소 수집

예산 계산 사례

항목 가정 비용
데이터 정제 1TB, 인력 2명 $XX,XXX
학습 GPU 32장, 2주 $XXX,XXX
평가/레드팀 전문가 3명, 2주 $XX,XXX
서빙 월간 1M 요청 $X,XXX/월

조직 내 역할 분담

  • 리서치: 모델/학습 전략 수립
  • ML 엔지니어: 학습 파이프라인 구현
  • 플랫폼: 서빙/인프라 운영
  • 보안/법무: 데이터/정책 검토

추론·RAG·도구 사용 분리 안내

학습·정렬 이후 단계인 추론 최적화, RAG 파이프라인, 도구 사용 패턴, 제공자별 API 연동 내용은 LLM 핸드북 4: 추론·RAG·도구사용으로 분리했습니다.

학습 동선: 1) 개념·구조·평가 → 2) 학습·정렬 → 3) 배포·운영·안전 → 4) 추론·RAG·도구사용 순서로 읽으면 전체 파이프라인이 자연스럽게 연결됩니다.

참고자료