Post

[Paper Review] LoRA: Low-Rank Adaptation of Large Language Models

[Paper Review] LoRA: Low-Rank Adaptation of Large Language Models

지난 포스트에서 살펴봤듯이, GPT-3는 모델 크기 확장과 in-context learning으로 Zero-shot 성능을 크게 끌어올렸습니다. 하지만 여전히 fine-tuning이 필요한 영역은 존재합니다. GPT-3 저자들은 아래와 같이 모델의 한계를 확인했는데요. 저자들이 추정한 원인은 단방향 LM이 지닌 구조적 문제와 fine-tuning의 부재였습니다.

TaskGPT-3 175B few-shot 성능기존 Fine-Tuned SOTA한계점
Natural Language Inference- ANLI R3 $\approx$ 40%
- RTE 69%
- WiC 49% (동전 던지기 수준)
- ANLI R3 48%
- RTE 93%
- WiC 76.1%
비교·함의 과제에서 낮은 성능
독해·다중 단서 통합- RACE-h 47%
- QuAC 44 F1
- DROP 37 F1
- RACE-h 90%
- QuAC 74 F1
- DROP 89 F1
장문 이해·수치 추론에서 큰 격차
과학·상식 QA- ARC-C 51%
- OpenBookQA 65%
- ARC-C 78%
- OpenBookQA 87%
배경지식+추론 결합 문제에 취약
번역- En→Ro 21 BLEU
- En→De 29 BLEU
- En→Ro 38 BLEU
- En→De 41 BLEU
영어 편중 데이터·BPE 한계
4-5 자리 산수10~30%-토큰 단위 예측은 체계적 알고리즘 수행 어려움

이렇듯 고난이도의 task를 fine-tuning 없이 해결하는 것은 아직 역부족입니다. 이러한 상황에서 LLM을 효율적으로 fine-tuning하기 위해 제안된 모델이 바로 LoRA(2021)입니다. 기존 weight는 그대로 두고, 저차원 보조 행렬만 학습해 메모리를 크게 줄이면서도 전체 fine-tuning과 동등한 성능을 달성했습니다.

모델 구조

저자들의 주장에 따르면, LLM이 학습하는 정보가 실제로는 몇 가지 중요한 패턴들 만으로도 표현 가능합니다. 그렇기 때문에 매번 파라미터 전체를 바꿀 필요는 없고, 훨씬 적은 수의 파라미터만 학습하면 됩니다.

모델의 학습 및 추론 과정을 정리해보면 아래와 같습니다.

  1. 랭크 $r$ 선택 – 보통 4~16
  2. 각 Transformer weight $W$ ($d \times d$) 옆에 $A$ ($r \times d$), $B$ ($d \times r$) 두 행렬을 삽입
  3. 학습 중엔 $A$, $B$만 업데이트 → 연산량 증가 $\le$ 1%
  4. 추론 시엔 $W + A \cdot B$를 미리 합쳐 두어 추가 지연 발생하지 않음

일반적인 fine-tuning에서는 $d \times d$ 크기의 $\Delta W$을 학습합니다.

\[h=W_0x+\Delta Wx\]

하지만 LoRA는 $\Delta W$를 $B \cdot A$로 표현하여 $d \times r + r \times d$개의 파라미터만을 학습합니다.

\[h=W_0x+\Delta Wx = W_0x+B(Ax)\]

여기에서 $A$는 $x$를 $r$-차원으로 줄이고 ($Ax$), $B$는 그 값을 다시 $d$-차원 공간으로 펼치는 역할을 합니다. 결과적으로 $\Delta W$는 rank가 $r$ 이하인 행렬이 되어 저차원의 변화만을 학습할 수 있게 되는 것입니다.

모델 성능

위 성능 결과 표에서도 확인할 수 있듯이, LoRA는 매우 적은 수의 파라미터(4.7M)만을 학습해서 전체 fine-tuning(FT)과 비슷하거나 더 좋은 성능을 달성했습니다. 학습 파라미터 수는 약 37,000배 감소시켰습니다.

This post is licensed under CC BY 4.0 by the author.