오늘 소개할 논문은 2021년 Microsoft의 연구진이 발표한 "LoRA: Low-Rank Adaptation of Large Language Models"입니다. 이 논문은 대형 언어 모델의 파라미터를 효과적으로 업데이트 하는 방법에 관한 논문으로 많은 분야에서 널리 사용되는 의미있는 기법입니다.
LoRA: Low-Rank Adaptation of Large Language Models
An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes le
arxiv.org
GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models"
Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models" - microsoft/LoRA
github.com
🎯 배경
- 최근 자연어처리(NLP) 분야에서는 거대 사전학습 언어 모델(예: GPT-3, RoBERTa 등)을 다양한 작업에 맞게 파인튜닝(fine-tuning) 하는 방식이 주류가 되고 있습니다.
- 하지만 GPT-3처럼 수십억 개 이상의 파라미터를 가진 모델을 작업마다 개별적으로 파인튜닝하는 것은 비용과 자원의 측면에서 비현실적입니다.
- 이러한 문제를 해결하기 위해 마이크로소프트 연구진은 LoRA (Low-Rank Adaptation) 를 제안합니다.
🧩 왜 LoRA가 필요한가?
- 기존의 파인튜닝 방식은 모델 전체의 파라미터를 모두 업데이트하는 방식이기 때문에:
- 각 작업마다 모델 복제본을 새로 저장해야 하며,
- 수백 GB에서 수 TB에 달하는 메모리가 요구되고,
- 학습 속도도 느리고, 하드웨어 요구사항이 높습니다.
- LoRA는 이러한 문제를 다음과 같은 방식으로 해결합니다:
- 사전학습된 원본 모델의 가중치는 고정(freeze) 하고,
- 각 Transformer 층에 저랭크 행렬(pair of low-rank matrices, A와 B) 를 추가하여 업데이트 파라미터를 제한합니다.
- 결과적으로 파라미터 수를 10,000배 줄이고, GPU 메모리 요구량은 3배 감소시킬 수 있습니다.
🧠 LoRA는 어떻게 작동하는가?
- Transformer 모델의 대부분은 W와 같은 고차원 선형 가중치 행렬을 포함하고 있습니다. LoRA는 이러한 가중치 W의 변경을 다음과 같이 저랭크 형태로 표현합니다:
- $W'=W+\Delta W=W+BA$
- 여기서 $B$는 $d \times r$, $A$는 $r \times k$ 크기의 행렬이며, $r$은 일반적으로 1~8로 매우 작습니다.
- 이때 $W$는 고정되어 있고, 학습 중에는 오직 $A$와 $B$만 업데이트됩니다.
- 이 구조는 기존의 가중치와 병렬적으로 적용되어 추론 속도에는 영향이 없습니다.
🔧 기존 방식과의 비교
- LoRA는 기존의 Adapter, Prefix-tuning, Prompt-tuning 방식과 다음과 같은 차별점을 가집니다:
방식 | 파라미터 효율성 | 추론 속도 | 성능 |
Fine-Tuning | ✗ | ✗ | 최고 |
Adapter | △ | ✗ | 보통 |
Promt-Tuning | 낮음 | ||
LoRA | ◎ | ◎ | 우수 |
- 특히 어댑터 방식은 추가 층이 삽입되기 때문에 추론 시 레이턴시가 늘어나고, 프롬프트 기반 방식은 입력 길이 제약이 있어 성능이 제한됩니다.
📊 실험 결과
- GLUE 벤치마크 (RoBERTa 기반)
- GPT-3 (175B) 기반
- 즉, 전체 파라미터의 0.01%만 학습하면서도 전체 파인튜닝과 비슷하거나 더 높은 성능을 달성할 수 있습니다.
📌 LoRA의 구조적 장점
- 작은 메모리 footprint: 예컨대 GPT-3에 대해 LoRA는 350GB → 35MB로 축소
- 빠른 task switching: A, B 행렬만 교체하면 됨
- 추론 속도 동일: BA를 사전 계산하여 W와 합치면 일반 모델처럼 추론 가능
- 확장성: Prefix-Tuning, Adapters와 병렬적으로 결합 가능
✅ 이론적 통찰: 업데이트는 정말 저랭크인가?
- 논문에서는 다음과 같은 분석을 통해 업데이트 행렬 ΔW가 실제로도 낮은 랭크(r) 만으로 충분하다는 사실을 보입니다:
- GPT-3의 경우 r=1~4만으로도 대부분의 작업에서 성능 저하 없이 수행 가능
- ΔW는 기존 가중치 W와 중복되지 않는 유용한 방향을 강화하는 역할을 함
- 여러 실험을 통해 LoRA의 업데이트는 고유한 저차원 공간을 효과적으로 학습함을 확인
📝마무리
- LoRA는 다음과 같은 혁신적인 점에서 주목할 가치가 있습니다:
- 거대 모델을 활용한 파라미터 효율적 학습
- 하드웨어 부담 없이 다양한 작업에 적응 가능
- 추론 속도와 성능을 모두 유지
- 현재 HuggingFace 및 PyTorch 등 주요 딥러닝 생태계에서도 활발하게 사용되고 있으며, 앞으로 다양한 적응 기법과의 조합 연구가 활발히 이뤄질 것으로 기대됩니다.
'Deep Learning > Algorithm' 카테고리의 다른 글
Prefix-Tuning: Optimizing Continuous Prompts for Generation (1) | 2025.05.23 |
---|---|
Soft-DTW: a Differentiable Loss Function for Time-Series (1) | 2025.05.22 |
Parameter-Efficient Transfer Learning for NLP (0) | 2025.05.14 |