2

Day 4 자주 빠지는 함정: 평가와 배포

평가 & 배포

학습 목표

모델 평가/배포 시 흔한 실수를 방지한다

Day 4 자주 빠지는 함정

Pitfall 1: "학습 데이터로 평가하면 점수가 높다"

문제: 학습에 사용한 데이터로 평가 -> 당연히 높은 점수
      (시험 문제를 미리 알고 시험 보는 것과 같음!)

해결: 평가 데이터는 반드시 학습 미사용 별도 세트 준비
  학습: 450건 / 평가: 50건 (겹침 없음!)

Pitfall 2: "병합 시 메모리 부족"

문제: merge_and_unload() 시 OOM
  - 기본 모델(FP16) + LoRA 가중치를 동시에 메모리 필요

해결:
  1. device_map="cpu"로 CPU RAM에서 병합 (느리지만 확실하다)
  2. 필요한 RAM은 대략 파라미터 수 x 2바이트. 이 주의 3.8B는 약 7.6GB,
     7B는 약 14GB이므로 그보다 여유 있게 잡는다
  3. Colab 무료 티어의 시스템 RAM은 약 13GB다. 3.8B 병합은 되지만 7B는 빠듯하다

Pitfall 3: "GGUF 변환 후 성능 차이"

양자화 레벨은 비트를 줄일수록 파일이 작아지고 품질이 내려간다.
  Q8_0   > Q5_K_M > Q4_K_M > Q2_K   (품질 순, 크기도 이 순서)

몇 퍼센트 떨어지는지는 모델·과제·평가 지표에 따라 크게 달라진다.
공개 측정에서도 7B급 Q4_K_M의 퍼플렉서티 상승은 대체로 1% 안팎으로 보고되어,
"Q4는 5% 손실" 같은 고정 수치는 근거가 약하다.

그래서 재는 방법을 정해 둔다:
  1. Day 4 평가 코드를 fp16 병합 모델에 한 번 돌린다 (기준선)
  2. 같은 코드를 Q4_K_M GGUF에 돌린다
  3. 두 점수 차이를 보고서에 적는다. 특히 안전 키워드 포함률이 떨어졌는지 본다

제조 도메인 권장: Q4_K_M 이상. 안전 절차가 빠지는지가 판단 기준이지 점수 몇 %가 아니다.
  (Q2_K는 크기를 위해 품질을 크게 내놓는 선택이라 현장 배포에는 권하지 않는다)

Pitfall 4: "Ollama에서 한글 깨짐"

원인: 터미널 인코딩 문제

해결:
  export LANG=ko_KR.UTF-8
  export LC_ALL=ko_KR.UTF-8

  또는 REST API로 사용 (JSON이므로 인코딩 문제 없음)

Pitfall 5: "배포 후 답변이 학습 때와 다름"

원인 TOP 3:
1. 프롬프트 템플릿 불일치 (가장 흔함!)
2. temperature 설정 차이 (학습: 0 / 배포: 0.7)
3. max_tokens 부족 (답변이 잘림)

해결:
  학습과 동일한 프롬프트 템플릿 + 파라미터 사용
  Modelfile에 정확히 명시
AI로 학습하기 — 꿀팁
모델 평가·배포 실수 점검AI 학습 팁

제조 sLLM 평가 및 배포 시 테스트셋 오염, 버전 관리 누락, 양자화 후 성능 저하 간과 등 실수가 없는지 점검해 보세요.

sLLM 평가/배포 관련 아래 주장이 맞는지 각각 검증해줘. (1) '학습에 사용한 Q&A 일부를 테스트셋에 포함시켜도, 비율이 10% 미만이면 평가 신뢰도에 문제없다.' (2) 'GGUF 양자화(4비트)로 변환하면 원본 모델 대비 성능 손실이 거의 없다.' (3) 'LoRA 어댑터를 베이스 모델에 merge한 뒤에도 어댑터 원본 파일은 삭제해도 된다.' (4) 'Ollama로 로컬 배포 시 VRAM이 부족하면 자동으로 CPU 추론으로 폴백된다.' 제조 sLLM 운영 맥락으로 교정해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • 평가 데이터는 반드시 학습에 미사용한 별도 세트
  • 병합: RAM 16GB+ 필요, device_map="auto" 활용
  • GGUF: Q4_K_M 이상 권장. 손실률은 외우지 말고 병합본과 양자화본을 같은 평가 코드로 재서 비교한다
  • 배포: 학습과 동일한 프롬프트 + 파라미터 필수
용어