36분
실습: 처음부터 끝까지 - QLoRA 전체 학습 코드
QLoRA 학습 실행
실습: 처음부터 끝까지 - QLoRA 전체 학습 코드
QLoRA 파인튜닝 > QLoRA 학습 실행
학습 목표
- QLoRA 학습의 전체 파이프라인을 코드로 구현한다
- SFTConfig와 SFTTrainer를 사용한 학습 실행 방법을 익힌다
- 어댑터가 실제로 붙은 모듈 수를 검증하고, 최대 VRAM을 측정한다
- 학습 완료 후 모델 저장과 테스트를 수행한다
전체 QLoRA 학습 코드
파이프라인 순서
- 모델 & 토크나이저 로드 (4비트)
- QLoRA 표준 준비 (prepare_model_for_kbit_training, use_cache=False)
- LoRA 설정 + 어댑터가 붙은 모듈 수 검증
- 데이터셋 로드 & 포맷팅 (EOS 포함, 토큰 길이 확인)
- 학습 실행 (SFTConfig + SFTTrainer)
- 모델 저장
- 테스트 추론
3번을 건너뛰지 마라. 이 주에서 가장 많이 나오는 오류는 코드가 죽는 오류가 아니라 틀린 설정으로 끝까지 도는 오류다.
어디서 돌리나
GPU 가 있는 곳에서 돌립니다. 정답 코드가 적어 둔 대로 Google Colab 무료 T4 나
RTX 4060 이상의 로컬 GPU 가 기준입니다. 사이트의
Python Console에 붙여넣지 마세요. 표준 라이브러리만 갖춘
브라우저 파이썬이라 import torch 에서 ModuleNotFoundError 로 멈춥니다.
transformers·peft·trl 도 Pyodide 배포판에 없으므로 설치로 해결되지 않습니다.
QLoRA 파인튜닝 랩에서는 rank 를 움직여 학습 파라미터 수와 VRAM
어림값이 어떻게 따라 움직이는지 감을 잡을 수 있습니다. 다만 그 랩이 고르는 모델은
Qwen 1.8B·Llama 7B·13B 셋이고 타깃 모듈 이름도 Llama 계열(q_proj·k_proj …)이라,
이 실습이 쓰는 Phi-4-mini 와 qkv_proj·gate_up_proj 는 거기에 없습니다.
3번에서 세는 128 은 랩이 알려 주는 수가 아니라 학습 코드가 직접 세는 수입니다.
에디터 로딩 중...
힌트 보기
- • T4는 bf16을 지원하지 않는다. torch.cuda.is_bf16_supported()로 갈라 fp16/bf16을 정한다
- • pad_token이 없으면 eos_token으로 채운다 (없으면 패딩에서 에러)
- • prepare_model_for_kbit_training + use_cache=False를 빼면 gradient checkpointing에서 grad 오류가 난다
- • 학습 인자는 SFTConfig로 모은다. SFTTrainer는 max_seq_length·packing·tokenizer를 받지 않는다
- • 어댑터가 붙은 모듈 수를 반드시 센다. print_trainable_parameters()만으로는 오설정이 걸러지지 않는다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
QLoRA 전체 학습 코드 스캐폴딩AI 학습 팁
AI에게 베이스 모델명과 GPU 메모리를 알려주면 4비트 양자화 설정·LoRA config·SFTTrainer 전체 파이프라인 코드를 생성해줍니다.
제조 AI 파인튜닝을 위한 QLoRA 전체 학습 코드를 작성해줘. 베이스 모델: Qwen2.5-7B-Instruct, 4비트 BitsAndBytesConfig, LoRA(r=16, alpha=32, dropout=0.05, target_modules 자동 탐지), SFTTrainer 설정(lr=2e-4, batch_size=4, grad_accum=4, epochs=3), wandb 학습 곡선 로깅까지 포함해줘.
이 팁이 도움이 됐나요?