C.W.K.
Stream
Lesson 03 of 06 · published

LoRA Hyperparameter

~22 min · lora, rank, alpha, target-modules, dropout

Level 0관찰자
0 XP0/43 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

중요한 5개 노브

파라미터역할추천
r (rank)A, B의 차원. 높을수록 표현력 더, 메모리 더.8~64 (16에서 시작)
lora_alphaScaling factor. 업데이트가 alpha/r로 스케일.rank의 2배 (예: r=16 → alpha=32)
target_modules어느 layer에 LoRA 적용.QLoRA엔 "all-linear"; 예산 LoRA엔 ["q_proj","v_proj"]
lora_dropoutLoRA 레이어 dropout.0.05~0.1
biasBias 항 학습 여부.보통 "none"

Target modules 설명

전형적 Llama 스타일 transformer 블록의 linear layer —

  • q_proj, k_proj, v_proj, o_proj: attention 레이어
  • gate_proj, up_proj, down_proj: MLP / FFN 레이어

"all-linear"는 모든 linear layer에 LoRA 적용. QLoRA에서 최고 결과, 메모리 더 씀. 예산 LoRA로는 ["q_proj", "v_proj"]만 시작이 원래 LoRA 논문 레시피고 합리적 균형.

alpha/rank 비율

LoRA 파라미터의 effective learning rate는 alpha/r로 스케일. 흔한 practice: alpha = 2 * r. use_rslora=True(rsLoRA, lesson 5) 쓰면 alpha가 자동으로 1/√r로 스케일, 높은 rank에서 더 좋아.

Code

Conservative vs aggressive LoRA configs·python
from peft import LoraConfig

# Conservative — beginner-friendly, lower memory
beginner_config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

# Aggressive — best quality, more memory
quality_config = LoraConfig(
    r=64,
    lora_alpha=128,
    target_modules="all-linear",
    lora_dropout=0.1,
    bias="none",
    task_type="CAUSAL_LM",
    use_rslora=True,   # better scaling at high ranks
)

External links

Exercise

같은 데이터셋에 LoRA 모델 둘 학습: r=16/all-linear 하나, r=64/all-linear+rsLoRA 하나. Validation loss 곡선이랑 held-out test 셋 최종 정확도 비교. 높은 rank 설정이 2배 된 학습 파라미터를 정당화했어?

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.