
LoRA 논문 해부: 1,750억 개의 손잡이 중 470만 개만 돌리다
GPT-3를 파인튜닝하려면 1.2TB 메모리가 필요하다. LoRA는 파라미터의 0.003%만 학습하여 동일한 성능을 달성했다. 350GB 체크포인트가 35MB로 줄었고, AI 맞춤화가 민주화됐다. 이 혁명의 원리를 처음부터 쉽게 풀어낸다.

GPT-3를 파인튜닝하려면 1.2TB 메모리가 필요하다. LoRA는 파라미터의 0.003%만 학습하여 동일한 성능을 달성했다. 350GB 체크포인트가 35MB로 줄었고, AI 맞춤화가 민주화됐다. 이 혁명의 원리를 처음부터 쉽게 풀어낸다.

GPT-3를 당신의 회사에 맞게 파인튜닝하고 싶다. 문제: 모든 파라미터를 학습시키려면 1.2TB 이상의 GPU 메모리가 필요하다. A100 80GB GPU 15대 이상. 체크포인트 하나에 350GB. 10개 용도로 쓰려면 3.5TB 저장.
2021년, Microsoft Research의 연구자들이 질문했다: 1,750억 개의 파라미터를 모두 건드려야 하는가? 실은 470만 개만 건드리면 되지 않을까?
이것이 **LoRA (Low-Rank Adaptation)**다. 전체 파라미터의 0.003%만 학습하면서 풀 파인튜닝과 동일하거나 더 나은 성능. 350GB 체크포인트가 35MB로. 그리고 추가 추론 지연 0%.
비유하면: 코끼리 전체를 다시 칠하는 대신, 넥타이와 모자만 바꾸는 것이다. 코끼리는 이미 완벽하다. 옷만 갈아입히면 된다.

| 방법 | 아이디어 | 치명적 한계 |
|---|---|---|
| Adapters (Houlsby, 2019) | 레이어 사이에 작은 모듈 삽입 | 추론 지연 30.3% (순차 처리 필수) |
| Prefix Tuning (Li & Liang, 2021) | 학습 가능한 "가상 토큰" 추가 | 컨텍스트 윈도우 축소 (실제 입력 공간 감소) |
| Prompt Tuning (Lester, 2021) | 입력에 소프트 프롬프트 추가 | 입력 레벨에서만 작동, 표현력 부족 |
| BitFit (Ben Zaken, 2022) | 바이어스 항만 학습 | 큰 모델에서 경쟁력 저하 |
Aghajanyan et al. (2020)이 발견한 것: 사전학습된 모델은 매우 낮은 **고유 차원(intrinsic dimensionality)**을 갖는다 — 무작위로 투영된 200개 파라미터만 최적화해도 RoBERTa의 풀 파인튜닝 성능의 90%를 달성.
LoRA의 가설: 파인튜닝 중 가중치 변화(ΔW)도 "랭크"가 낮다 — 적응에 필요한 변화는 전체 파라미터 공간의 작은 부분 공간에 존재한다.
풀 파인튜닝: 거대한 가중치 행렬 W (12,288 × 12,288 = 1.5억 개 숫자)를 통째로 업데이트.
LoRA: 업데이트를 두 개의 얇은 행렬로 분해한다.
출력 = W₀ · x + (α/r) · B · A · x
-------- -------------------
원래 모델 LoRA 업데이트 (학습 대상)
숫자로 비교:
초기화: A는 랜덤 가우시안, B는 제로. 따라서 ΔW = BA = 0으로 시작 — 학습 시작 시 모델이 정확히 사전학습 상태에서 출발.
470만 파라미터(0.003%)만 학습한 LoRA가 1,750억 파라미터를 모두 학습한 풀 파인튜닝을 2.2%포인트 능가. GPT-2에서도 LoRA(BLEU 70.4)가 풀 FT(68.5)를 이겼다.
논문이 r=1, 2, 4, 8, 64를 테스트한 결과: 랭크 1만으로도 쿼리(W_q)와 값(W_v)을 동시에 적응시키는 데 충분. r=8에서 학습된 방향이 r=64와 크게 겹쳐, 높은 랭크는 주로 노이즈를 포착. 실전 권장: r=4~8.
Adapter와 달리 LoRA는 추론 시 추가 연산이 전혀 없다:
과제 전환도 간단: 현재 BA를 빼고 새 B'A'를 더한다. W_new = W₀ + B'A'.
**Dettmers et al. (NeurIPS 2023)**이 4비트 양자화와 LoRA를 결합. 결과: 단일 48GB GPU에서 650억 파라미터 모델 파인튜닝. Guanaco 모델이 ChatGPT 성능의 99.3% 달성 — 단일 GPU, 24시간.
| 변형 | 핵심 혁신 | 효과 |
|---|---|---|
| LoRA (2021) | 저랭크 분해 | 10,000× 파라미터 감소 |
| QLoRA (2023) | 4비트 양자화 + LoRA | 65B → 단일 48GB GPU |
| DoRA (2024, ICML Oral) | 크기/방향 분리 | LLaMA-7B +3.7점, 추론 오버헤드 0 |
| LoRA+ (2024) | A, B 별도 학습률 | 1-2% 성능↑, 2× 학습 속도 |
| VeRA (2023) | 공유 랜덤 행렬, 스케일링 벡터만 학습 | LoRA 대비 10× 적은 파라미터 |
| GaLore (2024) | 그래디언트 저랭크 투영 | 7B 사전학습을 단일 RTX 4090에서 |
Eric J. Wang이 공개한 Alpaca-LoRA — LLaMA를 LoRA로 파인튜닝하는 코드가 단일 RTX 4090에서 수 시간 만에 실행. text-davinci-003 수준의 모델이 라즈베리 파이에서 실행 가능해졌다. 개인 연구자와 취미인이 ChatGPT급 비서를 만들 수 있음을 증명한 분수령.
LoRA는 이미지 생성에서 가장 극적으로 활용된다:
공격자가 악의적 트리거를 LoRA 어댑터에 숨기고, 합법적 파인튜닝으로 위장하여 HuggingFace 등에 공유. LoRA 생태계에는 공식 인증 절차나 검증 기관이 없어 빠르게 확산.
단일 LoRA가 아닌 여러 개의 무해해 보이는 LoRA를 조합했을 때만 악의적 행동이 나타나는 공격. 개별 검사로는 탐지 불가.
LoRA가 과제 특화 지식을 작은 행렬에 격리하므로, 공개 기본 모델에 접근 가능한 공격자가 LoRA만 복제하면 파인튜닝된 모델의 행동을 96.6% 정확도로 재현 가능.
ΔW(가중치 변화)를 분석한 결과: 변화가 사전학습에서 강조되지 않은 방향을 21.5배 증폭한다. 즉, LoRA는 사전학습 중 배웠지만 우선순위가 낮았던 특징을 부스트하는 것이다 — 새로운 것을 처음부터 배우는 것이 아니라.
LoRA는 패러다임 전환을 결정화했다: 비싼 부분(사전학습)은 대형 연구소가 한 번 하고, 저렴한 부분(적응)은 누구나 한다. 소프트웨어 산업이 처음부터 모든 것을 작성하던 시대에서 오픈소스 위에 구축하는 시대로 전환한 것과 같다.
저장 경제학: 10개 전문 모델이 3.5TB(10 × 350GB)에서 ~7.35GB(기본 모델 1개 + LoRA 10개 × ~35MB)로 — 99.8% 감소.
LoRA 논문의 핵심 메시지: 사전학습 모델의 적응에 필요한 변화는 전체 파라미터 공간의 극히 작은 부분공간에 존재한다.
이 발견은 세 가지를 바꿨다:
GPT-3 글에서 "규모가 질적 변화를 만든다"는 것을 봤고, InstructGPT 글에서 "인간 피드백이 규모를 이긴다"는 것을 봤다. LoRA는 세 번째 교훈을 추가한다: "적응은 효율적이어야 한다." 아무리 좋은 기반 모델도, 맞춤화할 수 없으면 가치가 절반이다.
코어닷투데이의 AI 제품에서 LoRA는 핵심 기술이다. 의정지원 AI가 특정 지방의회의 정책 언어에 적응할 때, Sharp-PINN이 특정 산업 시설의 부식 패턴을 학습할 때 — 기반 모델을 처음부터 재학습하는 것이 아니라, 작은 어댑터로 효율적으로 적응한다. 1,750억 개의 손잡이 중 470만 개만 돌리면 된다.