[영상] LLaMA 3.1 QLoRA 파인튜닝 실습
QLoRA 학습 실행
[영상] LLaMA 3.1 QLoRA 파인튜닝 실습
QLoRA 파인튜닝 > QLoRA 학습 실행
LLaMA 3.1 모델을 QLoRA로 파인튜닝하는 핵심 하이퍼파라미터(rank, lora_alpha, learning_rate, batch_size)를 설명하고 기본값을 암기할 수 있다 bitsandbytes 라이브러리의 BitsAndBytesConfig를 설정해 4-bit 양자화를 적용하는 코드를 작성할 수 있다 학습 중 손실(Loss) 곡선을 보고 과적합·과소적합·정상 수렴을 판단할 수 있다 GPU 메모리 부족(OOM) 에러 발생 시 해결 순서를 단계별로 설명할 수 있다
영상 핵심 정리 — LLaMA 3.1 QLoRA 파인튜닝 실습
이 영상은 LLaMA 3.1 8B 모델을 QLoRA로 파인튜닝하는 실전 코드를 단계별로 실습한다. 하이퍼파라미터 설정부터 학습 모니터링까지, 제조 도메인 sLLM 구축을 위한 핵심 기술을 다룬다.
1. 핵심 하이퍼파라미터 정리
| 파라미터 | 기본값 | 역할 | 조정 힌트 |
|---|---|---|---|
| r (rank) | 16 | LoRA 행렬 크기 | 복잡한 태스크 → 32~64 |
| lora_alpha | 16 | LoRA 스케일링 | 보통 r과 동일 |
| lora_dropout | 0.05 | 과적합 방지 | 데이터 적으면 0.1 |
| learning_rate | 1e-4 | 학습 속도 | 불안정하면 5e-5 |
| per_device_train_batch_size | 2 | GPU당 배치 | OOM 시 1로 낮춤 |
| gradient_accumulation_steps | 4 | 유효 배치=8 | 배치 낮출수록 늘림 |
| max_seq_length | 2048 | 최대 토큰 길이 | OOM 시 1024로 낮춤 |
2. QLoRA 설정 코드
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type='nf4',
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(
'meta-llama/Meta-Llama-3.1-8B-Instruct',
quantization_config=bnb_config,
device_map='auto'
)
lora_config = LoraConfig(
r=16, lora_alpha=16, lora_dropout=0.05,
target_modules='all-linear',
bias='none', task_type='CAUSAL_LM'
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
3. OOM 에러 해결 순서
1. max_seq_length 2048 → 1024로 감소
2. per_device_train_batch_size 2 → 1로 감소
3. gradient_accumulation_steps를 배치 감소만큼 증가
4. gradient_checkpointing=True 활성화
5. 그래도 OOM → rank를 32→16으로 낮춤
함정 주의: model.print_trainable_parameters()로 학습 파라미터 비율을 반드시 확인해야 한다. 이 값이 0%이면 LoRA가 올바르게 적용되지 않은 것이다. target_modules가 모델 아키텍처와 맞지 않으면 어댑터가 무시된다.
다음 task와의 연결
다음 reading 'QLoRA 학습 하이퍼파라미터 + 메모리 최적화'에서는 오늘 실습한 코드에 Weights & Biases 실험 추적을 연동하고, 학습 곡선을 보며 하이퍼파라미터를 체계적으로 튜닝하는 방법을 다룬다.
QLoRA 파인튜닝의 기본 하이퍼파라미터(rank=16, lora_alpha=16, lr=1e-4)와 gradient_checkpointing 설정이 제조 도메인 데이터셋에 적합한지 AI에게 검증받으세요.
LLaMA 3.1을 제조 알람 코드 해석 데이터로 QLoRA 파인튜닝할 때 기본 하이퍼파라미터(rank=16, lora_alpha=16, dropout=0.05, lr=1e-4)가 적절한지 검증해줘. target_modules='all-linear' 설정이 성능 극대화에 효과적인 이유, gradient_checkpointing=True 적용 시 메모리 절반 절감 vs 학습 속도 20% 감소 트레이드오프를 수치로 보여주고 제조 도메인 최적 설정을 추천해줘.
- • QLoRA 기본 하이퍼파라미터: rank=16, lora_alpha=16, dropout=0.05, lr=1e-4 — 이 값에서 시작해 조정한다
- • target_modules를 'all-linear'로 설정하면 모든 선형 레이어에 LoRA를 적용해 성능을 극대화할 수 있다
- • gradient_checkpointing=True로 설정하면 중간 활성값을 재계산해 메모리를 절반으로 줄이지만 학습 속도가 약 20% 느려진다
- • Loss가 낮아지다가 갑자기 치솟으면 학습률이 너무 높은 것 — lr을 절반으로 줄이고 warmup_ratio=0.03을 추가하면 안정된다
