home search
LoRA
PEFT
LoRA (Low-Rank Adaption of Large Language Models)
2026. 03. 17

1. LoRA 요약

LoRA는 “모델 전체를 학습하지 않고, 저차원(low-rank) 업데이트만 학습하는 효율적인 파인튜닝 방법”이다.

조금 더 정확히 말하면:

사전학습된 모델의 weight는 그대로 두고, 작은 저랭크 행렬만 추가로 학습해서 모델을 적응시키는 방법

여기서 적응이란, 모델 학습 이후 특정 도메인에 맞춰 fine-tuning 하거나 새로운 태스크에 transfer learning 하는 것

2. LoRA 등장 배경

2.1 Domain Adaptation

LLM은 기본적으로

  • Pre-training: 일반 데이터(책, 웹 등)를 학습
  • Fine-tuning: 특정 태스크에 맞게 학습(QnA, 번역 등)

이때, Pre-training 된 모델을 특정 태스크에 맞게 파인튜닝 하는 과정을 domain adaptation이라 한다.

2.2 Domain Adaptation의 문제

  • 기존 방식은 너무 비싸다.
\[Pretrained \ model → Full \ finetuning\]
  1. LLM 모델을 pretrain 할 때, 수백~수천개의 GPU가 필요하다. Full finetuning을 하려면 이와 비슷한 GPU 자원이 요구 된다.
  2. Task마다 모델을 복제: 예를 들어, 한국어를 번역 잘하는 모델과 이탈리아어를 번역 잘하는 모델을 동일한 모델 사이즈로 여럿 복제를 해야 사용 가능하다.

그래서 나온 방향으로 “효율적인 adaptation”. 즉, PEFT(Parameter Efficient Fine-Tuning)

  • Adapter
  • Prefix Tuning
  • LoRA

공통적으로, “모델은 그대로 두고 adaptation만 싼 비용으로 하자”가 모토이다.

(추가적으로, 너무나도 다른 도메인에 LLM을 adaptation하려고 한다면 Catastrophic Forgetting이라는 파괴적 망각 현상이 발생한다.)

2.3 기존 PEFT 기법들의 부족함

2.3.1 Adapter

image.png

그림과 같이 Transformer layer에 adapter layer를 추가하여 adapter만 학습하는 방법이 있지만, 이는 직렬구조로서 multi head attention의 결과값을 받아야만 adapter에서 연산을 할 수 있는 의존성이 있다. 또한, inference하는 과정에서 추가적인 비용이 발생한다.

2.3.2 Prefix Tuning

모델은 건드리지 말고, 입력만 조작하자! 라는 방식이 나왔다.

예를 들어, LLM에게 번역을 시킬 때 “한국어로 번역할거야”라는 입력을 제일 앞에 주면 그 모델은 번역을 곧 잘한다. 따라서, 번역을 하라는 Prefix(접두사)를 모델에게 항상 붙이면, 그 모델은 번역에 특화된 모델이 된다.

이 방향의 발전 방향은 Prefix를 사람이 주는 프롬프트가 아니라 모델이 학습하게 하는 것이다.

[ v1, v2, v3, v4 ] + "Hello"

Translate과 같은 토큰이 아니라, v1, v2, v3, v4 같은 인간은 이해할 수 없지만, LLM은 이해할 수 있는 토큰을 학습하는 것이다. 이후에도 Attention Layer에 Key, Value를 추가하여 Prefix 학습의 효과를 내는 방법도 있지만, 결론적으로 Prefix tuning은 힌트를 속삭이는 방법일 뿐, 모델 자체를 특정 태스크에 특화시켜주지는 않는 한계가 있다.

3. LoRA의 등장

Domain adaptation에 필요한 변화는 사실 low-lank 였다는 연구 결과와 함께 LoRA는 등장했다.

Rank Recap : 행렬의 일차독립인 행 또는 열의 최대 개수,

실제 LLM 모델 $W$의 행렬 차원을 $d$ 라고 할 때, 풀 파인튜닝시 가중치 변화량인 $\Delta W$ 의 실질적인 중요한 변화는 low-rank subspace에 집중되어 있었다.

조금 더 쉽게 말하면,

  • $W$ = 1000 차원
  • $\Delta W$ = 5차원 정도가 유의미한 방향성을 가짐

LoRA는 Low Rank만을 domain adaptation하면서도, full fine-tuing 수준의 표현력을 유지하고, 비용을 극단적으로 줄이기 위해 등장했다.

image.png

기존 모델의 가중치 $W$ 는 그대로 유지하되, 저랭크 행렬 $B, A$ 를 추가하여 이 두개의 행렬만을 학습하는 방식이다. Low-Rank 행렬은 두 개의 작은 행렬의 곱으로 항상 표현할 수 있기 때문에, $ΔW=BA$ 로 치환한다. B는 초기값 0으로 설정하고, A는 가우시안 분포를 기반으로 초기화한다.

arrow_upward arrow_downward
loading