Table of Contents

728x90

ref: https://ngp9440.tistory.com/144

 

[논문 리뷰] LoRA: Low-Rank Adaptation of Large Language Models

1. IntroductionNLP를 다루는 많은 Application들은 매우 큰 PTLM을 여러 downstream task를 다루기 위해 adapting 방식을 사용했다. adaptation은 일반적으로 pre-trained model의 전체 파라미터를 update하는 fine-tuning을

ngp9440.tistory.com

 

위에서 설명한 내용은 NLP 모델, 특히 매우 큰 사전 훈련된 언어 모델(GPT-3 등)을 다양한 다운스트림 작업(특정 작업에 모델을 적용하는 것)에 효율적으로 적용하기 위한 방법론에 대해 다루고 있습니다. 이를 쉽게 설명하면 다음과 같습니다.

문제 상황

  1. 기존의 방식: NLP에서는 모델을 특정 작업에 맞추기 위해 모델의 모든 파라미터(가중치)를 업데이트하는 전체 파인 튜닝을 자주 사용했습니다. 예를 들어, GPT-3와 같은 거대한 모델은 약 1750억 개의 파라미터를 가지고 있으며, 이 모든 것을 업데이트하는 데는 엄청난 계산 자원과 시간이 소요됩니다.
  2. 효율성 문제: 모델이 커질수록 전체 파라미터를 업데이트하는 방식은 비효율적입니다. 따라서 더 적은 파라미터만을 수정하거나, 특정 외부 모듈만 학습하는 방식으로 연구가 진행되고 있습니다. 예를 들어, 'adapter 모듈'을 추가하는 방식 등이 있습니다.

LoRA (Low-Rank Adaptation)

LoRA는 이러한 문제를 해결하기 위한 새로운 접근 방법입니다. 기본 아이디어는 다음과 같습니다:

  • 기본 가정: 큰 모델의 가중치 변화는 사실상 '낮은 고유 차원(low intrinsic dimension)'에 있습니다. 즉, 전체 가중치를 수정할 필요 없이 매우 작은 부분만을 조정해도 충분합니다.
  • 작동 방식: LoRA는 모델의 원래 가중치(pre-trained weight)를 고정하고, 이 가중치의 작은 변화만을 학습합니다. 이 변화는 'rank decomposition'이라는 기법을 사용하여 더 낮은 차원으로 분해하여 표현됩니다. 예를 들어, 두 매트릭스(A와 B)를 사용하여 원래 가중치의 작은 변화를 모델링합니다.
  • 장점: 이 방법을 사용하면 스토리지 요구사항과 작업 전환 비용을 크게 줄일 수 있습니다. 또한, 대부분의 파라미터에 대한 최적화가 필요 없으므로, 학습 과정이 더 효율적이고 하드웨어에 대한 요구사항도 낮아집니다.

적용 및 결과

LoRA는 트랜스포머 아키텍처의 특정 부분(예: 주의(attention) 메커니즘의 가중치)에 적용될 수 있습니다. 연구 결과에 따르면, 매우 낮은 랭크(차원)의 적응이 가능하며, 이는 계산 및 메모리 효율성을 크게 향상시킬 수 있습니다.

LoRA 방법론은 이전의 접근 방법과 병합하여 사용될 수도 있으며, 예를 들어 prefix-tuning과 같은 기술과 결합하여 사용될 수 있습니다. 이러한 접근법은 NLP 모델의 효율적인 적응을 가능하게 하여, 자원 사용을 최소화하면서도 다양한 NLP 작업에 효과적으로 대응할 수 있게 합니다.


"Rank decomposition"은 선형 대수학에서 사용되는 방법으로, 본질적으로 행렬을 더 낮은 차원의 구성 요소로 분해하는 기법입니다. 이 기법은 행렬의 복잡도를 줄이면서도 중요한 정보를 유지하는 방법으로 사용됩니다. 특히, 머신러닝과 데이터 압축 분야에서 효율적인 계산과 데이터 저장을 위해 널리 사용됩니다.

Rank Decomposition의 기본 원리

주어진 행렬 WW에 대해, "rank decomposition"은 WW를 두 개의 더 작은 행렬 AABB의 곱으로 표현하는 것입니다: W=ABW = AB

여기서:

  • WWd×kd \times k 차원의 원래 행렬입니다.
  • AAd×rd \times r 차원의 행렬이며,
  • BBr×kr \times k 차원의 행렬입니다.
  • rrWW의 "rank"로, AABB가 표현할 수 있는 차원의 수를 의미합니다. 이 rr 값은 WW의 실제 rank와 동일하거나 더 작을 수 있습니다.

Rank Decomposition의 적용

  1. 데이터 압축: 데이터의 차원을 줄임으로써 저장 공간을 절약하고, 계산 효율성을 높일 수 있습니다.
  2. 잡음 제거: 데이터에서 잡음이나 불필요한 정보를 제거하고, 가장 중요한 특징만을 유지할 수 있습니다.
  3. 특징 추출: 데이터의 가장 중요한 특징을 추출하는 데 사용됩니다. 예를 들어, 이미지 처리에서 주요 특징을 식별하거나, 텍스트 데이터에서 핵심 주제를 도출하는 데 사용될 수 있습니다.

NLP에서의 적용

NLP의 맥락에서, 특히 대규모 언어 모델의 파라미터를 최적화할 때, rank decomposition을 통해 모델의 일부 가중치(예를 들어, Transformer 모델의 attention 가중치)를 더 효율적으로 표현할 수 있습니다. 이러한 접근 방식은 모델의 메모리 요구 사항을 줄이고, 계산 속도를 향상시키며, 미세 조정(fine-tuning) 시 필요한 파라미터의 수를 크게 줄일 수 있습니다.

LoRA(Low-Rank Adaptation)와 같은 기법은 이러한 rank decomposition을 활용하여 모델의 가중치를 효율적으로 업데이트하면서도 모델의 전체적인 성능을 유지할 수 있도록 도와줍니다. 이를 통해, 특정 작업에 필요한 계산 리소스와 메모리 사용을 줄이면서도 우수한 성능을 달성할 수 있습니다.