[21′ ICLR] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

This entry is part 6 of 13 in the series Language Model

1. 들어가며

인공지능과 딥러닝의 세계에서, 대규모 언어 모델(Large Language Models, LLM)은 놀라운 발전을 이루어왔습니다. 이러한 모델들은 자연어 처리에서부터 이미지 인식에 이르기까지 다양한 분야에서 혁신적인 성과를 달성하고 있습니다. 그러나 이러한 모델들이 새로운 Downstream task에 적용되기 위해서는 fine-tuning이 필수적인데, 이 과정은 막대한 양의 파라미터 재학습을 요구하며, 이는 비용이 많이 들고 시간이 오래 걸리는 작업입니다. 이러한 문제를 해결하기 위해 등장한 것이 바로 LoRA(Low-Rank Adaptation)입니다.

이번 글에서는 LoRA의 개념과 그 중요성을 자세히 탐구해보고자 합니다. LoRA는 기존의 fine-tuning 방법과 달리, 훨씬 적은 파라미터로 뛰어난 성능을 달성할 수 있는 방법론을 제시합니다. 이는 Low Rank Decomposition 기법을 활용하여, 모델의 학습 파라미터 수를 대폭 줄이면서도 효과적인 학습이 가능하게 합니다.

본문에서는 LoRA의 기술적인 설명뿐만 아니라, 이를 통해 어떻게 Full Fine Tuning 대비 학습 파라미터가 줄어드는지를 직관적으로 이해할 수 있도록 그림을 사용하여 설명합니다. 이러한 접근은 LoRA가 기존의 다른 논문 리뷰와 차별화되는 포인트입니다.

또한, LoBERTa, GPT-2, GPT-3를 사용한 실험 결과를 통해 LoRA의 효과를 실제로 확인할 수 있습니다. 이 실험들은 LoRA가 기존의 PEFT(Parameter Efficient Fine-Tuning) 방법들에 비해 더 적은 파라미터를 사용하면서도 더 우수한 fine-tuning 성능을 보인다는 것을 입증합니다.

마지막으로, LoRA의 장단점을 분석하며, 이 기술이 인공지능 분야에 어떤 새로운 가능성을 열어주는지에 대해 논의합니다. LoRA는 메모리와 저장 공간 사용량을 줄이고, 추론 비용을 낮추며, 학습 시간을 단축시키는 등 여러 가지 장점을 가지고 있습니다. 그러나 동시에, task별로 학습 파라미터를 따로 구성해야 한다는 단점도 있습니다.

이 글을 통해, LoRA가 어떻게 대규모 언어 모델의 fine-tuning 문제를 해결하고, 인공지능 연구와 응용에 새로운 방향을 제시하는지에 대한 통찰을 제공하고자 합니다.

2. 기존 방법의 문제점

LoRA는 2021년에 발표된 모델인데요. 2021년에는 다양한 LLM들이 경쟁적으로 발표되던 시기였습니다. 대표적으로 GPT2, GPT3 등이 발표되던 시기였죠. 이렇게 경쟁적으로 발표되던 LLM들은 모두 엄청난 성능을 보였습니다. 하지만 이들이 학습 데이터에 없는 종류의 새로운 Downstream Task를 수행하기 위해서는 Finetuning을 해야 했는데요. 문제는 이 Finetuning이 만만치 않은 작업이라는 것입니다. 왜냐하면 LLM은 말 그대로 Large Model이기에 학습 파라미터가 상상을 초월할 정도로 많기 때문이죠. Finetuning 이라고 하지만, 학습할 데이터가 적을 뿐 학습해야 하는 파라미터수는 Pretraining 때와 동일하죠.

이러한 문제점에 착안하여 등장한 연구 분야가 바로 Parameter Efficient Fine Tuning (PEFT)입니다. 말 그대로 효율적으로 Fine Tuning 하는 방법을 연구하는 것이죠. 이러한 PEFT에는 다양한 방법이 존재하는데요. LoRA는 그 중에서도 Low Rank Decomposition을 사용하는 대표적인 방법입니다. LLM의 기존 학습 파라미터는 고정한 채로 아주 적은 파라미터만을 추가하여 학습하는 방법이죠. 이러한 LoRA는 PEFT의 커다란 하나의 축을 형성하고 있고, 현재는 LoRA의 다양한 후속 버전이 발표되고 있습니다.

3. LoRA

따라서 PEFT를 이해하려면 그 대표 방법 중 하나인 LoRA를 반드시 이해해야 하는데요. 이번 챕터에서는 LoRA의 방법론의 핵심을 살펴보겠습니다.

먼저 우리에게 놓여진 상황부터 짚고 넘어가볼게요. LLM은 대부분 Transformer를 기반으로 만든 모델입니다. 물론 모델별로 조금씩의 차이는 있지만 공통적으로 아주 큰 Transformer 모델이라고 생각해도 크게 틀리진 않을겁니다. 이제 우리는 이 아주 큰 Transformer 모델을 Fine Tuning 하려고 합니다. Transformer에는 학습 해야 하는 다양한 Layer가 존재하는데요. LoRA에서는 Self Attention Layer와 Feed Forward Layer만 생각해보겠습니다.

LoRA 방법론의 핵심은 Low Rank Decomposition이라고 언급했는데요. 말 그대로 큰 차원의 Matrix 연산을 낮은 차원으로 분해하는 것이라고 생각하면 되겠습니다. Self Attention 연산을 생각해볼까요? Self Attention에서는 Q,K,V를 각각 Matrix 연산을 사용하여 구성해주어야 하는데요. 이때 Q,K,V를 만들기 위해 사용되는 각각의 Matrix W는 매우 고차원입니다. 입력값의 차원이 크기 때문에 어쩔 수 없죠. 이 고차원의 Matrix를 저차원으로 분해해주자는 건데요.

그림1. LoRA 방법
그림1. LoRA 방법

위 그림은 지금까지 설명한 LoRA 방법론의 핵심을 표현하고 있습니다. 왼쪽 파란색은 기존 고차원 Matrix를 나타내고 있습니다. d*d 차원을 갖고 있죠. d는 입력 Feature의 차원입니다. 반면 오른쪽 주황색은 Low Rank Decomposition된 Matrix를 표현하고 있습니다. A,B 두개의 Matrix로 구성되어 있구요. 각각 d*r, r*d 차원의 Matrix입니다. 이때 r이 d 보다 훨씬 작다면 (예를 들어 1 또는 2) 주황색에서는 매우 적은 연산만 이루어지겠죠. LoRA에서는 저 파란색 파라미터는 Pretrained Weight니까 그대로 고정해놓고, 주황색 파라미터들만 추가해서 Downstream Task로 학습하자는겁니다.

이렇게 구성하면 학습해야 하는 파라미터가 얼마나 줄어들까요? 위 그림에서는 직관적으로 파라미터 개수의 차이가 보이지 않으니 그림을 재구성해보면 다음과 같습니다.

그림2. Low Rank Decompsotion
그림2. Low Rank Decompsotion

그림2에서 위 부분은 그림1의 파란색 파라미터 연산을 표현하고 있습니다. 반면 아래 부분은 그림1의 주황색 파라미터 연산을 표현하고 있죠. 위 부분에서 학습해야 하는 파라미터는 W의 면적(d*d)에 해당합니다. 반면 아래 부분에서 학습해야 하는 파라미터는 A,B의 면적 (d*1*2) 에 해당하죠. 학습해야 하는 파라미터 개수가 훨씬 적은 모습을 볼 수 있죠?

지금까지 살펴본 LoRA 방식과 Full Finetuning 방식을 하나의 그림으로 비교해보면 다음과 같습니다.

그림3. Full Fine Tuning vs LORA
그림3. Full Fine Tuning vs LORA

Full Finetuning에서는 기존 W를 학습하는 모습이죠. 이 W는 보통 매우 많은 연산량을 필요로 합니다. 반면 LoRA는 이렇게 큰 W는 고정해놓은 모습을 볼 수 있습니다. 대신 아래쪽에서 아주 적은 연산량을 필요로 하는 A,B Matrix만을 학습하고 있습니다. 최종 결과 Feature는 두개의 연산 결과를 합쳐서 구성해주고 있습니다.

4. Experiment

이번에는 이렇게 구성한 LoRA의 실험 결과를 살펴보겠습니다. 실험 결과를 통해서 살펴봐야 할 포인트는 크게 두가지 인데요. 첫 번째는 기존 다른 PEFT 방법들보다 얼마나 적은 파라미터로 얼마나 더 좋은 Fine Tuning 성능을 냈는지 입니다. 두 번째는 Full Fine Tuning 대비 얼마나 좋은 성능을 내는지 입니다. 만약 Full Fine Tuning 보다 더 성능이 좋다면, 이건 정말 엄청 대단한거겠죠?

첫 번째로 살펴볼 실험은 RoBERTa, DeBERTa를 사용한 실험 결과입니다.

그림4. RoBERTa, DeBERTa 실험 결과
그림4. RoBERTa, DeBERTa 실험 결과

위 그림은 RoBERTa, DeBERTa에 FineTuning(FT), 다른 PEFT 방법들 (BitFit, Adpt)과 LoRA의 GLUE 벤치마크 성능을 비교한 표 입니다. 다른 PEFT 방법들보다 적은 파라미터만을 사용하여 더 좋은 성능을 내는 모습을 볼 수 있습니다. 심지어 몇몇 문제에서는 Fine Tuning 방법보다 더 좋은 성능을 내는 모습을 볼 수 있습니다.

두 번째로 살펴볼 실험은 GPT2를 사용한 실험결과 입니다.

그림5. GPT2 실험 결과
그림5. GPT2 실험 결과

위 그림은 GPT2를 사용한 E2E NLG Challenge 성능을 비교한 표 입니다. 마찬가지로 다양한 PEFT 방법들, FT과 성능을 비교하고 있는데요. 가장 적은 학습 파라미터를 사용하면서도 가장 좋은 성능을 보여주고 있습니다.

세 번째로 살펴볼 실험은 GPT3를 사용한 실험 결과입니다.

그림6. GPT3 실험 결과
그림6. GPT3 실험 결과

다양한 데이터셋에서 LoRA는 마찬가지로 적은 파라미터만을 사용하여 좋은 성능을 보이는 모습을 볼 수 있습니다.

여기까지 실험 결과를 정리해보겠습니다. LoRA는 다양한 LLM (RoBERTa, GPT2, GPT3)를 사용하여 다양한 벤치마크 데이터셋으로 성능을 측정해봤습니다. 이 결과를 다양한 PEFT 방법들, 그리고 Full Fine Tuning한 성능과 비교를 해 봤는데요. 대부분 가장 좋은 성능을 보였습니다. 이를 통해 LoRA는 기존 PEFT 방법들 대비 적은 파라미터로도 더 좋은 성능을 내는 PEFT 방법이며 몇몇 Downstream Task에서는 Full Finetuning보다 우수한 방법임을 알 수 있습니다.

5. 장단점

이러한 LoRA에도 장단점은 존재하는데요. 먼저 LoRA 논문에서는 세가지 장점을 언급하고 있습니다.

첫 번째 장점은 적은 Memory, Storage 사용량입니다. 이건 LoRA 방법을 이해했다면 바로 납득할 수 있는 부분인데요. LoRA는 기존 Pretrained Parameter에 대해서는 학습을 진행하지 않습니다. 따라서 이 파라미터들은 Optimizer에 저장할 필요가 없죠. 따라서 Low Rank Decomposition 을 수행한 차원에 따라 다르겠지만, 대략적으로 VRAM 사용량을 2/3 수준으로 줄일 수 있습니다. 뿐만 아니라 Checkpoint Size 또한 매우 줄일 수 있습니다.

두 번째 장점은 Inference Cost가 적다는 점입니다. 이는 Task별로 각각의 LoRA 파라미터를 가지며, Task에 따라 Switch 하여 연산하기 때문입니다.

세 번째 장점은 학습 시간이 줄어든다는 점입니다. GPT3 175B 모델 기준으로 25% 빨라진다고 하는데요. 이는 대부분의 Pretrained Parameter로는 Gradient를 계산할 필요가 없기 때문입니다.

반면 LoRA 논문에서는 LoRA의 한계도 지적하고 있습니다. 바로 다양한 Task를 섞어 Batch를 구성할 수 없다는 점입니다. 이는 Task별 서로 다른 LoRA 파라미터를 구성하는 방법을 사용하기 때문입니다. 즉 Task별로 각각 데이터셋을 구성하여 따로 Finetuning을 수행하야 한다는 것이죠.

6. 마치며

LoRA(Low-Rank Adaptation)에 대한 이번 글을 통해, 우리는 대규모 언어 모델들이 직면한 중요한 문제에 대한 혁신적인 해결책을 살펴보았습니다. 기존의 fine-tuning 방법이 요구하는 방대한 파라미터 재학습의 부담을 줄이면서도, 모델의 성능을 유지하거나 향상시킬 수 있는 방법으로서 LoRA는 매우 중요한 의미를 가집니다. 이는 인공지능 분야에서 모델의 효율성과 접근성을 높이는 데 큰 기여를 할 것입니다.

본문에서는 LoRA의 기술적인 면모와 그 구현 방법을 자세히 설명하였으며, 이를 통해 독자 여러분이 LoRA의 핵심 개념을 명확히 이해할 수 있도록 하였습니다. 또한, LoBERTa, GPT-2, GPT-3를 사용한 실험 결과를 통해 LoRA의 실질적인 효과를 입증하였습니다. 이러한 실험들은 LoRA가 기존의 fine-tuning 방법에 비해 어떤 장점을 가지고 있는지를 실제로 보여주며, 이 기술의 가치를 더욱 강조합니다.

LoRA의 장점뿐만 아니라, 그 한계와 도전 과제에 대해서도 솔직하게 논의하였습니다. 이는 LoRA 기술이 앞으로 나아가야 할 방향과 연구자들이 집중해야 할 영역을 제시합니다. 특히, task별로 학습 파라미터를 따로 구성해야 한다는 점은 향후 연구에서 극복해야 할 중요한 과제입니다.

이 글을 마무리하며, LoRA가 인공지능 연구와 응용에 가져올 잠재적인 영향에 대해 큰 기대를 가지고 있습니다. LoRA는 메모리와 저장 공간 사용량을 줄이고, 추론 비용을 낮추며, 학습 시간을 단축시키는 등 다양한 장점을 제공합니다. 이러한 장점들은 특히 리소스가 제한된 환경에서의 모델 사용과 배포에 큰 도움이 될 것입니다. 앞으로 LoRA와 같은 기술이 어떻게 발전하고, 인공지능 분야에 어떤 새로운 가능성을 열어줄지 기대가 됩니다. LoRA에 대한 깊은 이해와 통찰을 제공하고자 한 이 글이 독자 여러분에게 유익한 정보를 제공하였기를 바랍니다.

7. 참고자료

  1. Transformer 논문 리뷰
  2. Self Attention 설명
  3. GPT3 논문 리뷰
  4. LoRA 논문
Series Navigation<< [22′ NIPS] InstructGPT : Training language models to follow instructions with human feedback[21′ IJCNLP] Prefix-Tuning: Optimizing Continuous Prompts for Generation >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top