25분
학습 트러블슈팅: 10가지 에러와 해결법
QLoRA 학습 실행
학습 트러블슈팅: 10가지 에러와 해결법
QLoRA 파인튜닝 > QLoRA 학습 실행
학습 목표
학습 중 발생하는 주요 에러를 빠르게 해결할 수 있다 에러 메시지에서 원인을 파악하는 방법을 안다
학습 트러블슈팅 TOP 10
1. CUDA Out of Memory
에러: RuntimeError: CUDA out of memory
해결 순서:
1. batch_size 줄이기 (4 -> 2 -> 1)
2. max_seq_length 줄이기 (1024 -> 512)
3. gradient_accumulation 올리기 (4 -> 8)
4. gradient_checkpointing=True 설정
5. torch.cuda.empty_cache() 호출
6. 더 작은 모델 사용
2. NaN Loss
에러: Loss = NaN
해결:
1. learning_rate 낮추기 (2e-4 -> 5e-5)
2. warmup_ratio 올리기 (0.03 -> 0.1)
3. max_grad_norm=0.3 설정
4. bf16 대신 fp16 사용 (또는 fp32)
5. 데이터에 비정상 값 있는지 확인
3. Loss가 안 줄어듦
증상: 1000 스텝 후에도 Loss가 2.5 이상
해결:
1. learning_rate 올리기 (2e-4 -> 5e-4)
2. LoRA r 올리기 (8 -> 16 -> 32)
3. target_modules에 MLP 추가
4. 데이터 형식 확인 (프롬프트 템플릿 적용됐는지)
5. pad_token 설정 확인
4. Tokenizer 관련 에러
에러: ValueError: Asking to pad but the tokenizer does not have a pad token
해결:
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"
5. 모델 로드 에러
에러: OSError: model.safetensors not found
해결:
1. 모델 이름 정확히 확인
2. HuggingFace 로그인: huggingface-cli login
3. 접근 권한 확인 (Llama는 Meta 승인 필요)
4. trust_remote_code=True 추가
6. W&B 연결 에러
에러: wandb.errors.CommError
해결:
1. wandb login 재실행
2. 오프라인 모드: WANDB_MODE=offline
3. report_to="none" 으로 비활성화
7. 학습이 너무 느림
예상: 1시간, 실제: 6시간
해결:
1. packing=True 설정 (짧은 샘플 합치기, 30-50% 빨라짐)
2. Unsloth 사용 (2x 속도)
3. bf16=True 확인
4. torch.compile() 사용 (PyTorch 2.0+)
8. 체크포인트에서 재개 실패
에러: checkpoint directory not found
해결:
trainer.train(resume_from_checkpoint="./output/checkpoint-500")
# 정확한 체크포인트 경로 지정 필요
9. 과적합 징후
징후: Train Loss 0.1, Eval Loss 1.5 (Gap > 1.0)
해결:
1. Early Stopping 사용:
from transformers import EarlyStoppingCallback
callbacks=[EarlyStoppingCallback(early_stopping_patience=3)]
2. weight_decay 올리기
3. 데이터 증강
4. LoRA dropout 올리기
10. 학습 후 답변 품질 저하
증상: 파인튜닝 전보다 일반 질문 답변이 나빠짐
원인: 파국적 망각 (Catastrophic Forgetting)
해결:
1. 에포크 수 줄이기 (3 -> 1-2)
2. learning_rate 낮추기
3. LoRA r 줄이기
4. 일반 지식 데이터 10-20% 혼합 학습
(원래 학습 데이터에 일반 Q&A 추가)AI로 학습하기 — 꿀팁
🤖QLoRA 학습 에러 10종 대응표AI 학습 팁
학습 중 CUDA OOM, NaN Loss, tokenizer 오류 등 10가지 에러에 대한 원인-해결 대응표를 미리 만들어 두면 실습 막힘 없이 진행할 수 있습니다.
QLoRA 학습 실행 중 발생하는 주요 에러 10가지를 다음 형식의 마크다운 표로 만들어줘: 에러 키워드(오류 메시지 핵심 문구) / 원인 / 즉각 해결 방법(명령어 또는 코드 변경) / 재발 방지 팁. 반드시 포함할 에러: CUDA out of memory, NaN loss at step 0, tokenizer does not have a padding token, bitsandbytes not found, RuntimeError: Expected all tensors to be on the same device, 그래디언트 폭발(gradient norm 급등). 각 해결법은 복붙 가능한 형태로 작성해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • OOM: batch_size 줄이기 -> seq_length 줄이기 -> checkpointing
- • NaN Loss: LR 낮추기 -> warmup 늘리기 -> grad_clip
- • Loss 안 줄어듦: LR/r 올리기 -> target_modules 확장
- • 과적합: early stopping -> weight_decay -> 데이터 증강
- • 파국적 망각: 에포크/LR/r 줄이기 -> 일반 데이터 혼합