콘텐츠로 이동

LoRA 학습 실행 체크리스트

체크 표시는 실제 증거가 있다는 뜻이며, "튜토리얼이 여기까지 작성되었다"는 뜻이 아닙니다. 명령은 plan.md에, 로컬 검증은 verification.md에 있습니다.

A. 구현된 자료

  • 중국어 초등 과학 탐구, 세 학년 구간과 다섯 가지 주제 분류를 다룹니다.
  • 순서대로 따라가는 튜토리얼: 개념, 하드웨어, 환경, 학습, 평가, 내보내기, API, 문제 해결.
  • 팩트 카드 60장, 학습 500 + 검증 50 + 테스트 50개 대화, 모두 검토 대기 중인 합성 대화입니다.
  • 데이터 검증, 대화 전개, 템플릿/길이/지도 학습 범위 검사.
  • 단일 파일 dataset.json, 완전한 예시와 필드 설명. 노트북에서는 D1–D7로 데이터 사용 위치를 표시합니다.
  • 별도의 경량 토큰화 환경. PyTorch / TRL 테스트는 선택 읽기용 개발자 장으로 옮겼습니다.
  • QLoRA 학습과 재개, A/B/C 추론, 멀티턴 대화, 블라인드 평가와 동결.
  • BF16 병합 및 로컬 싱글턴/멀티턴 API 호출 예시.
  • 학습 코드를 그대로 보여 주는 교육용 노트북. 모든 셀에 설명이 있고 산출물 확인, 다시 불러오기, 평가를 포함합니다.
  • ModelScope 다운로드, HF 미러 대체 경로, 고정 파일의 SHA-256 검증, 샤드 누락 시 오류.

B. 로컬 메커니즘 검사

  • 데이터와 지도 학습 범위에 대한 자동화 테스트.
  • 모델 revision 고정. 토크나이저와 config만 다운로드합니다.
  • 실제 Qwen 토크나이저와 TRL collator로 학습 샘플 1150개의 mask/EOS/padding을 검사합니다.
  • 아주 작은 CPU 모델에서 LoRA만 갱신되고, 저장·재개·다시 불러오기·병합이 가능합니다.
  • 튜토리얼의 API 예시를 직접 실행하는 로컬 HTTP 및 히스토리 전달 테스트.
  • 블라인드 평가 짝짓기, 누락된 점수, 주제별 클러스터 통계에 대한 테스트.

C. 이해와 검토

  • SFT/LoRA/QLoRA, VRAM, Step/Epoch를 자신의 말로 설명합니다. 증거: 한 페이지 노트.
  • 실제 지도 학습 타깃을 최소 10개 읽습니다. 증거: audit와 노트.
  • 후보 대화 600개를 모두 검토합니다. 증거: 실제 검토자, notes, 수정 기록.
  • 사실 출처를 재확인합니다. 특히 이번에 웹 접근이 제한되었던 자료가 대상입니다. 증거: 카드 검토 기록.

D. GPU 메커니즘 학습 (먼저 2장을 이해하세요. 노트북은 단일 파일을 직접 읽습니다)

  • Linux NVIDIA 환경 구축 및 연동 확인. 증거: 버전, 드라이버, BF16, pip check.
  • 고정 버전의 완전한 베이스 모델을 다운로드·검증하고, 관찰 질문에 대한 베이스 모델의 답변을 저장합니다.
  • 1 Epoch(약 72 step)의 QLoRA. 증거: 유한한 loss, loss-curve.png, 파라미터 갱신, adapter, 최대 VRAM.
  • 학습 중 nvidia-smi로 VRAM을 기록하고 4.3절의 추정치와 비교합니다. 증거: 측정값과 노트.
  • 샘플 20개로 과적합시킵니다. 증거: loss 변화와 학습 중 출력. 일반화를 주장하지 않습니다.
  • step 5에서 step 10까지 재개합니다. 증거: optimizer/scheduler 스냅샷과 로그.

E. 정식 비교 (C, D에 의존)

  • 카드 60장, 대화 600개, 분류별 100/10/10. 주제와 사실 참조는 split을 넘나들지 않습니다.
  • 모든 참조 답변 검토와 유사 중복 검사. 증거: review와 패밀리 기록.
  • 초안 데이터로 탐색적 비교(--allow-draft --formal prepare/audit). 증거: manifest(draft: true), 토크나이저 지문, 토큰 리포트.
  • r16/alpha32와 r8/alpha16을 각각 1 Epoch. 증거: 설정, 시간, VRAM, 파일 크기.
  • 검증 세트에서 고정 히스토리/멀티턴 대화. 증거: 블라인드 평가, 사실 검토, 실패 분류.
  • 후보를 동결한 뒤 테스트 대화 50개(주제 5개)를 모두 실행합니다. 증거: 동결 파일, 출력, 불확실성.
  • 개선 있음 / 개선 없음 / 불확실 결론을 작성하고 한계를 밝힙니다.

F. 내보내기와 API (D에 의존. 정식 품질 결론은 E에 의존)

  • 실제 4B adapter를 다시 불러올 수 있습니다. 증거: 같은 SHA의 출력.
  • BF16 베이스 모델에 병합합니다. 증거: merge manifest, 완전한 가중치, 토크나이저, 라이선스.
  • 같은 정밀도에서 병합 전후를 비교하고, NF4/BF16 차이는 따로 기록합니다.
  • vLLM 기동. 증거: 별도 추론 환경의 버전, 서비스 로그, 헬스 체크.
  • KV 캐시 추정치를 기동 로그와 비교합니다. 증거: GPU KV cache size와 Maximum concurrency 두 줄과 5.3절 표의 비교.
  • API 싱글턴/멀티턴/스트리밍 호출. 증거: 실제 모델 응답.
  • adapter를 마운트해 배포하고, 같은 서버에서 qwen3-4b-base와 science-lora를 비교합니다. 증거: 두 세트의 답변.
  • vllm bench serve로 동시성 1/4/16 부하 테스트를 하고, --max-num-seqs를 조정한 뒤 다시 테스트합니다. 증거: 채워진 TTFT/TPOT/처리량 표.
  • 비용을 확인하고, 결과를 저장하고, 유휴 인스턴스를 중지합니다. 증거: 비용 기록.

추후 별도 논의

웹 페이지, 음성 읽기, 다국어, 보호자의 사전 동의하에 진행하는 실제 어린이 사용 연구, 홍보 글, 공개 인터넷 서비스, 그리고 더 많은 학습 방법.