Zettelkasten

LoRA는 Transformer의 Attention 레이어에 주로 적용된다

·수정 2026.04.23·수정 3

요약

LoRA는 일반적으로 Transformer의 Self-Attention 레이어에 있는 Query, Key, Value, Output projection 행렬에 적용된다. 실험적으로 이 위치가 가장 효율적인 것으로 알려져 있다.

본문

적용 위치

Transformer 블록에서 LoRA를 적용할 수 있는 위치:

  1. Attention 레이어 (권장)

    • WqW_q (Query projection)
    • WkW_k (Key projection)
    • WvW_v (Value projection)
    • WoW_o (Output projection)
  2. FFN 레이어 (선택적)

    • WupW_{up} (Up projection)
    • WdownW_{down} (Down projection)

일반적인 설정

# Hugging Face PEFT 라이브러리 예시
from peft import LoraConfig

config = LoraConfig(
    r=8,                        # 랭크
    lora_alpha=16,              # 스케일링 팩터
    target_modules=["q_proj", "v_proj"],  # 적용 모듈
    lora_dropout=0.1,
    bias="none",
)

적용 모듈 선택 가이드

모듈 조합 파라미터 수 성능
q, v 기준 좋음
q, k, v, o 2배 더 좋음
모든 linear 최대 가장 좋음

lora_alpha의 역할

실제 가중치 업데이트는 αrBA\frac{\alpha}{r} \cdot BA로 스케일링된다:

  • α=r\alpha = r: 스케일링 없음
  • α=2r\alpha = 2r: 2배 스케일링 (일반적)

참고