29

Phase 2: QLoRA 학습 실행 & 최적 체크포인트 선택

제조 도메인 sLLM 구축

학습 목표
  • Phase 1 데이터셋으로 QLoRA 학습을 실행한다
  • Train/Val Loss 추이를 모니터링한다
  • 최적 체크포인트를 선택한다

Phase 2: QLoRA 학습

학습 설정

  • 모델: microsoft/Phi-4-mini-instruct (3.8B). Day 1~4와 같은 모델을 쓴다
  • target_modules: qkv_proj, o_proj, gate_up_proj, down_proj (이 모델의 실제 이름)
  • r=16, alpha=32
  • epochs=3, lr=2e-4
  • batch=2, accumulation=8 (유효 배치 16)
  • max_length=512 (Phase 1에서 토크나이저로 실측한 p95 기준)

시작 조건

Phase 1의 mfg_dataset/train.json이 있어야 한다. 없으면 코드가 곧바로 멈춘다. 샘플 몇 건으로 대신 돌리면 Loss는 떨어지지만 배우는 것이 없다.

학습 전에 확인할 것

  1. 어댑터가 붙은 모듈이 128개인가 (모듈 4종 x 32층)
  2. 고유 instruction이 전체의 80%를 넘는가 (Phase 1의 증강이 복제만 한 것은 아닌가)
  3. 토큰 길이 p95가 max_length 안에 들어오는가 셋 다 코드가 자동으로 확인하고 경고를 찍는다. 경고가 나오면 Phase 1로 돌아간다.
에디터 로딩 중...
힌트 보기
  • 데이터가 적으면 epochs=5까지 올려도 됨. 대신 eval_loss 반등을 더 자주 확인
  • packing=True는 SFTConfig의 인자다. SFTTrainer에 넣으면 TypeError
  • 체크포인트는 eval_loss가 가장 낮은 것 = 최적. metric_for_best_model로 지정한다
  • 학습이 도는 동안 Phase 3의 테스트 질문과 Phase 5의 보고서 뼈대를 먼저 쓴다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
QLoRA 학습 곡선 이상 진단AI 학습 팁

AI에게 Train/Val Loss 그래프 수치를 주면 과적합 시점, 학습률 이슈, 체크포인트 선택 기준을 진단해줍니다.

QLoRA 학습 결과를 분석해줘. Train Loss: 2.3→1.8→1.4→1.2→1.1 (5 epoch), Val Loss: 2.4→1.9→1.7→1.9→2.2. 과적합 여부를 판단하고 최적 체크포인트를 어느 epoch에서 선택해야 하는지, 그리고 Val Loss 반등을 막기 위한 regularization 조정(dropout·weight_decay)을 제안해줘.
이 팁이 도움이 됐나요?
용어