한줄 요약: 가중치 변화량이 저랭크(low-rank)라는 가설 하에, 전체 파라미터의 0.01%만 학습하여 전체 파인튜닝과 동등한 성능을 달성했다.
| 항목 | 내용 |
|---|---|
| 저자 | Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen |
| 소속 | Microsoft |
| 발표 | ICLR 2022 |
| 링크 | arxiv.org/abs/2106.09685 |
| 키워드 | Parameter-Efficient Fine-Tuning, Low-Rank, Adaptation |
대형 LLM(GPT-3 175B 등)을 특정 태스크에 파인튜닝하려면 모든 파라미터를 업데이트해야 한다. 이는 세 가지 실전 문제를 야기한다:
핵심 가설: 파인튜닝 시 가중치 변화량 ΔW는 본질적으로 저랭크(low-rank) 이다. 즉, 거대한 ΔW를 두 개의 작은 행렬의 곱으로 근사할 수 있다.
전체 파인튜닝:
h = (W₀ + ΔW)x ΔW ∈ R^{d×d} 파라미터 수: d²
LoRA:
h = W₀x + BAx B ∈ R^{d×r}, A ∈ R^{r×d} 파라미터 수: 2dr
d = 4096, r = 8일 때:
전체: 4096² = 16,777,216 파라미터
LoRA: 2 × 4096 × 8 = 65,536 파라미터 → 256배 감소!
A: 가우시안 랜덤 초기화
B: 제로 초기화
→ 학습 시작 시 BA = 0 → W₀에서 출발 (안정적)
→ 학습 진행하며 점진적으로 ΔW = BA 형성
Transformer의 어텐션 레이어에 적용:
학습 후:
W' = W₀ + BA → 하나의 행렬로 병합 가능
→ 추론 시 추가 연산/메모리 오버헤드 없음
→ 기본 모델과 동일한 추론 속도
다중 태스크 서빙:
기본 모델 W₀ (1벌) + LoRA 어댑터 BA (태스크별)
→ 태스크 전환 시 BA만 교체 (수 MB)
| 방법 | 학습 파라미터 | 평균 성능 |
|---|---|---|
| Fine-Tune (전체) | 175B (100%) | 기준 |
| BitFit (bias만) | 14M (0.008%) | -2.1% |
| Adapter (직렬) | 40M (0.023%) | -0.8% |
| Prefix Tuning | 20M (0.011%) | -1.5% |
| LoRA (r=4) | 4.7M (0.003%) | 동등 |
→ 0.003% 파라미터만으로 전체 파인튜닝과 동등
| r | W_q LoRA 성능 | W_q+W_v LoRA 성능 |
|---|---|---|
| 1 | 68.4% | 73.4% |
| 2 | 69.1% | 73.5% |
| 4 | 69.3% | 73.7% |
| 8 | 69.2% | 73.6% |
| 64 | 69.0% | 73.4% |
→ r=4 정도면 충분. r을 키워도 성능이 거의 증가하지 않음 = 저랭크 가설 지지
LoRA는 아이디어의 단순함과 효과의 강력함 사이의 완벽한 균형이다. "파인튜닝할 때 모든 파라미터가 바뀌지만, 그 변화를 저랭크로 근사하면 충분하다"는 통찰은 직관적이면서도 깊다.
실전에서 LoRA를 사용해보면 느끼는 것: r=8이면 거의 모든 경우에 충분하고, r=16까지 올리면 과적합 위험이 오히려 증가한다. 이는 "LLM이 새로운 태스크를 학습할 때 실제로 바꿔야 하는 것은 놀라울 정도로 적다"는 것을 의미한다.
QLoRA와의 결합이 가장 실용적인 발전이었다. 4비트 양자화된 모델 위에 LoRA를 얹으면, 단일 RTX 4090(24GB)으로 70B 모델도 파인튜닝할 수 있다. 이는 개인 연구자/개발자에게 LLM 커스터마이징의 문을 열어준 혁명적 조합이다.
관련 논문: QLoRA, DoRA, AdaLoRA, Adapter, Prefix Tuning