LoRA (Low-Rank Adaption) 개념 정리

degull·2026년 2월 3일
post-thumbnail

LoRA 등장 배경

: 대형모델 (CNN, Transformer, VLM..)을 task별로 fine-tuning하게 되면
→ 전체 파라미터 재학습 (GPU 메모리 폭발)
→ task가 늘수록 모델 복사본 증가
→ backbone이 깨짐

백본은 그대로 두고, 필요한 부분만 아주 적게 추가하자

LoRA정의

: 기존 가중치를 직접 바꾸지 않고, 저랭크(low-rank) 행렬 두 개로 변화량(ΔW)(ΔW)만 학습하는 방식
→ backbone : ❄️ freeze
→ LoRA: ✍️ 아주 작은 추가 파라미터만 학습

수식

(기존 Linear layer) : y=Wxy=Wx
(LoRA 적용 후) : y=(W+ΔW)xy = (W + ΔW)x
ΔW=BA

ARr×d,BRd×r,rd  (low-rank)A \in \mathbb{R}^{r \times d}, \quad B \in \mathbb{R}^{d \times r}, \quad r \ll d \; (\text{low-rank})

큰 행렬 ΔWΔW를 직접 학습하지 않고, 작은 행렬 A, B로 분해해서 학습

기존 Linear Layer

x → [W] → y

LoRA 적용

x → [  W  ] ──┐
                ├─ (+) → y
x → [ B @ A ] ─┘

❗Transformer에서의 LoRA 적용

🔹 Attention
* Query (Q)

* Key (K)

* Value (V)

* Output projection

🔹 FFN
* 첫 번째 Linear
* 두 번째 Linear

Q = xWq		→	x(Wq + BqAq)
V = xWv		→	x(Wv + BvAv)
profile
그래도 해야지

0개의 댓글