▶️25

[영상] LLaMA 3.1 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)16LoRA 행렬 크기복잡한 태스크 → 32~64
lora_alpha16LoRA 스케일링보통 r과 동일
lora_dropout0.05과적합 방지데이터 적으면 0.1
learning_rate1e-4학습 속도불안정하면 5e-5
per_device_train_batch_size2GPU당 배치OOM 시 1로 낮춤
gradient_accumulation_steps4유효 배치=8배치 낮출수록 늘림
max_seq_length2048최대 토큰 길이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 실험 추적을 연동하고, 학습 곡선을 보며 하이퍼파라미터를 체계적으로 튜닝하는 방법을 다룬다.

AI로 학습하기 — 꿀팁
QLoRA 하이퍼파라미터 설정 검증AI 학습 팁

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을 추가하면 안정된다