파인튜닝(Fine-tuning)은 대규모로 사전 학습된 모델을 특정 도메인이나 태스크에 맞게 추가 학습하는 기법이다. GPT, BERT 등의 기반 모델을 자신의 데이터로 커스터마이징한다.
파인튜닝 방법
Full Fine-tuning
python
# 모든 파라미터 업데이트
for param in model.parameters():
param.requires_grad = True
# 단점: GPU 메모리 많이 필요, 비쌈
LoRA (Low-Rank Adaptation)
python
from peft import LoraConfig, get_peft_model
config = LoraConfig(
r=8, # 랭크
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05
)
model = get_peft_model(base_model, config)
# 원본 파라미터는 고정, 작은 어댑터 행렬만 학습
# 파라미터 수 1000배 감소
1. SFT (Supervised Fine-Tuning): 고품질 데모로 학습
2. Reward Model: 인간 선호도 학습
3. PPO: 보상 최대화로 정책 학습
→ ChatGPT, Claude 학습 방식
관련 개념
- •전이 학습 — 파인튜닝의 상위 개념
- •GPT — 파인튜닝 대상 모델
- •RAG — 파인튜닝의 대안
참고문헌
- •Hu et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models