요약
LoRA의 주요 하이퍼파라미터는 랭크(r), 스케일링 팩터(alpha), 적용 모듈, 드롭아웃이다. 태스크 복잡도와 데이터셋 크기에 따라 적절히 조정해야 한다.
본문
주요 하이퍼파라미터
1. 랭크 (r)
| 랭크 | 용도 | 파라미터 수 |
|---|---|---|
| 4 | 간단한 태스크, 적은 데이터 | 최소 |
| 8 | 일반적인 fine-tuning | 기본값 |
| 16 | 복잡한 태스크 | 중간 |
| 32-64 | 매우 복잡한 태스크 | 높음 |
권장: 8로 시작해서 성능 보고 조정
2. Alpha (α)
- 역할: 로 업데이트 스케일링
- 일반적 설정: (예: r=8이면 α=16)
- 높은 alpha: 더 공격적인 업데이트
- 낮은 alpha: 더 보수적인 업데이트
3. 드롭아웃
lora_dropout=0.05 # 일반적인 값
lora_dropout=0.1 # 과적합 방지가 필요할 때
태스크별 권장 설정
도메인 적응 (간단)
LoraConfig(
r=4,
lora_alpha=8,
target_modules=["q_proj", "v_proj"],
)
지시문 튜닝 (중간)
LoraConfig(
r=8,
lora_alpha=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
복잡한 추론 (고급)
LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
)
학습률 설정
LoRA는 일반적으로 더 높은 학습률 사용 가능:
- Full fine-tuning: 1e-5 ~ 5e-5
- LoRA: 1e-4 ~ 3e-4
실험 팁
- 랭크 먼저 고정: r=8로 시작
- 모듈 실험: q,v → q,k,v,o → 전체
- alpha 조정: 성능 포화 시 증가
- 드롭아웃: 과적합 발생 시 추가