LoRA (인공지능)

IT 위키
인공무능 (토론 | 기여)님의 2025년 10월 30일 (목) 05:18 판 (새 문서: '''LoRA'''(Low-Rank Adaptation)는 대형 언어모델(LLM) 등 초거대 신경망의 선형층(linear layer)을 효율적으로 미세조정(fine-tuning)하기 위한 '''저차원 보정'''(low-rank adaptation) 기법이다.<ref name="lora2022">[https://arxiv.org/abs/2106.09685 Hu, Edward J., et al. "LoRA: Low-Rank Adaptation of Large Language Models." ICLR (2022).]</ref> 전체 파라미터를 재학습하지 않고, 각 선형변환 가중치 행렬에 작은 저랭크(rank-...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

LoRA(Low-Rank Adaptation)는 대형 언어모델(LLM) 등 초거대 신경망의 선형층(linear layer)을 효율적으로 미세조정(fine-tuning)하기 위한 저차원 보정(low-rank adaptation) 기법이다.[1] 전체 파라미터를 재학습하지 않고, 각 선형변환 가중치 행렬에 작은 저랭크(rank-r) 보정 행렬만 추가로 학습하여 메모리와 연산량을 대폭 절감한다.

개요[편집 | 원본 편집]

Transformer의 Self-Attention, MLP 등은 모두 선형변환을 수행하는 가중치 행렬 \( W \in \mathbb{R}^{d_{\text{out}} \times d_{\text{in}}} \)을 포함한다. LoRA는 이 행렬 전체를 다시 학습하는 대신, 기존 가중치 \(W_0\)를 고정(freeze)하고 저차원 보정 행렬 \(\Delta W = B A\)만 학습한다. 이때 \(A \in \mathbb{R}^{r \times d_{\text{in}}}\), \(B \in \mathbb{R}^{d_{\text{out}} \times r}\), \(r \ll d\)이며 보통 r은 4~8 정도로 설정된다.

수식[편집 | 원본 편집]

\[ W' = W_0 + \Delta W = W_0 + B A \] \[ y = W'x = W_0 x + B (A x) \] 즉 입력 x를 A를 통해 r차원으로 축소한 뒤, B로 다시 확장하여 보정량을 더하는 구조이다. \(W_0\)는 학습되지 않으며, A와 B만 학습된다.

핵심 아이디어[편집 | 원본 편집]

  • 저차원 보정 (Low-rank adaptation)
    • ΔW를 직접 학습하지 않고, 두 개의 저차원 행렬 B, A로 분해하여 파라미터 수를 대폭 줄인다.
    • 예: \(4096\times4096\) 행렬(약 1.6억 파라미터)을 \(4096\times4 + 4\times4096 = 3.2만\) 파라미터로 근사.
    • dense하되 정보가 저차원 subspace에 존재하기 때문에 희소성(sparsity)과는 다르다.
  • 기존 가중치 보존
    • W₀는 고정(freeze)되어, 미세조정 중 원본 모델의 지식을 손상시키지 않는다.
  • 추론 효율
    • 학습 후 ΔW = BA를 W₀에 병합(merge)할 수 있어 추론 시 추가 연산이 없다.
  • 선형성 활용
    • Transformer의 선형층은 본질적으로 선형연산이므로, low-rank 근사로 효율적인 보정이 가능하다.

구조적 특징[편집 | 원본 편집]

  • 적용 위치
    • 주로 Self-Attention의 Q, K, V, Output projection, 그리고 MLP의 선형층에 적용된다.
    • Attention의 각 선형변환마다 별도의 LoRA 모듈이 추가된다.
  • 파라미터 비율
    • 전체 파라미터 대비 약 0.05%~0.2%만 학습한다.
    • 예: LLaMA-7B 모델에서 LoRA rank=8 기준 추가 파라미터는 약 0.1% 수준.
  • 하이퍼파라미터
    • rank (r): 저차원 공간의 크기 (보통 4~16)
    • α: scaling factor (기본 16 또는 32)
    • dropout: regularization 용도 (기본 0 또는 0.1)

예시 (직관적 설명)[편집 | 원본 편집]

예를 들어 3×3 가중치 행렬 \[ W = \begin{bmatrix} 2 & 4 & 6\\ 1 & 2 & 3\\ 3 & 6 & 9 \end{bmatrix} \] 은 rank=1 행렬이므로, 두 개의 작은 행렬로 정확히 분해할 수 있다: \[ B = \begin{bmatrix} 2\\ 1\\ 3 \end{bmatrix}, \quad A = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix}, \quad W = BA \] 이처럼 LoRA는 큰 W 전체를 다시 학습하지 않고, B(확장)·A(축소) 형태로 보정량을 학습하는 원리이다.

장점[편집 | 원본 편집]

  • 전체 미세조정 대비 GPU 메모리 사용량을 90% 이상 절감.
  • 원본 모델(W₀)의 파라미터는 유지되어 catastrophic forgetting이 없음.
  • 추론 시 ΔW를 병합할 수 있어 추가 latency가 없음.
  • 파라미터 공유를 통해 멀티태스크·멀티도메인 학습에 적합.

한계[편집 | 원본 편집]

  • rank가 너무 작으면 표현력 부족으로 성능 저하.
  • rank·적용 위치·scaling factor 등 하이퍼파라미터 선택이 성능에 민감.
  • 학습 시에는 여전히 dense 연산이 수행되어 완전한 sparsity 기반 효율은 아님.

후속 연구[편집 | 원본 편집]

  • QLoRA (Dettmers et al., NeurIPS 2023): LoRA를 4bit quantization과 결합하여 메모리 효율을 극대화.
  • AdaLoRA (Zhang et al., ICLR 2023): rank를 layer별로 동적으로 조정하여 성능 향상.
  • DyLoRA (Li et al., 2024): 학습 중 rank를 동적으로 확장·축소하는 adaptive 구조.
  • LoCon, LoHa, LoKr (Stable Diffusion 계열): 비시각·비언어 도메인에도 확장 적용

참고 문헌[편집 | 원본 편집]

  • Hu, Edward J., et al. "LoRA: Low-Rank Adaptation of Large Language Models." ICLR (2022). [1]
  • Dettmers, Tim, et al. "QLoRA: Efficient Finetuning of Quantized LLMs." NeurIPS (2023).
  • Zhang, X., et al. "Adaptive Low-Rank Adaptation for LLMs (AdaLoRA)." ICLR (2023).
  • Li, Z., et al. "Dynamic Low-Rank Adaptation of LLMs (DyLoRA)." arXiv (2024).