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

김현주·2024년 10월 28일
0

paper

목록 보기
2/5

arXiv 2021. Paper Github
Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
Microsoft Corporation
17 Jun 2021

LoRA (Low-Rank Adaptation)는 대규모 언어 모델이나 딥러닝 모델을 효율적으로 미세 조정(fine-tuning)하기 위한 기법 중 하나이다. 특히, 모델의 파라미터 수가 매우 많아 전체 모델을 재학습하는 데 비용이 많이 드는 상황에서 효과적이다. LoRA는 새로운 작업에 맞게 모델을 적응시키기 위해 원래 모델의 모든 파라미터를 업데이트하는 대신, 추가적으로 매우 작은 수의 파라미터만 학습하는 방식을 사용한다.

핵심 아이디어

LoRA의 주요 아이디어는 모델의 가중치 행렬을 저차원으로 분해하여 파라미터 업데이트를 제한하는 것이다. 일반적으로, 딥러닝 모델에서 가중치 행렬은 매우 크고 복잡한 행렬이다. LoRA는 이 행렬을 두 개의 저차원 행렬의 곱으로 표현하여, 기존 가중치 행렬을 유지하면서 저차원 공간에서 학습을 수행한다. 이를 통해 연산 비용을 줄이고 메모리 사용량을 크게 줄일 수 있다.

주요 특징

저차원 학습: 원래의 고차원 공간 대신 저차원 공간에서만 학습을 수행하여 효율성을 높인다.
파라미터 효율성: LoRA는 학습할 파라미터 수를 크게 줄일 수 있어 메모리 사용량과 연산 비용이 감소한다.
전이 학습 지원: 기존의 사전 학습된 대규모 모델에 LoRA를 적용하면, 새로운 작업에 대한 미세 조정(fine-tuning)을 효율적으로 수행할 수 있다.
원본 모델 유지: LoRA를 사용할 경우, 원래 모델의 가중치는 그대로 유지되며, 추가된 저차원 파라미터만을 학습한다. 이는 모델의 성능 저하 없이 새로운 작업에 대해 빠르게 적응할 수 있도록 한다.

LoRA 적용 과정

LoRA의 적용은 다음과 같은 단계로 이루어집니다:

  1. 기존 모델 선택: 예를 들어, 트랜스포머 기반 모델을 선택한다고 가정한다.
  2. 저차원 행렬 도입: 특정 가중치 행렬에 대해 LoRA를 적용한다. 이 가중치 행렬을 𝑊라고 할 때, 𝑊를 업데이트하는 대신 𝐴와 𝐵를 추가한다.
  3. 저차원 행렬 학습: 학습 과정에서는 𝐴와 𝐵만 업데이트한다. 𝑊는 고정된 상태로 남기 때문에, 메모리 사용량이 크게 줄어든다.
  4. 결과 적용: 학습이 완료되면 𝐵𝐴는 새로운 작업을 수행하기 위해 모델의 원래 가중치에 추가된다.

수학적 설명

LoRA의 핵심은 가중치 행렬의 업데이트를 저차원 공간에서 수행하는 데 있다. 이를 통해 학습해야 하는 파라미터의 수를 크게 줄어든다.

  1. 표준 파라미터 업데이트:
  • 기존 모델에서의 가중치 업데이트는 다음과 같이 표현된다:

    𝑊 ← 𝑊 + Δ𝑊

  • 여기서, Δ𝑊는 학습을 통해 얻어진 변화량이다.

  1. LoRA의 업데이트:
  • LoRA에서는 다음과 같이 저차원 행렬 𝐴와 𝐵를 사용하여 업데이트한다:

    Δ𝑊 = 𝐵𝐴

  • 이를 통해, 원래 𝑊에 대한 업데이트는 저차원 행렬 곱으로 표현되며, 학습해야 하는 파라미터는 𝐴와 𝐵의 파라미터에만 국한된다.

장점과 한계점

장점:

  1. 파라미터 감소: 𝐴와 𝐵의 크기는 원래 𝑊보다 훨씬 작기 때문에, 학습해야 하는 파라미터의 수가 크게 줄어든다.
  2. 효율적인 메모리 사용: 메모리 사용량이 줄어들어, 더 큰 모델을 작은 메모리 공간에서 학습할 수 있다.
  3. 기존 가중치 유지: 원래 모델의 가중치를 그대로 유지하면서 새로운 작업에 대해 빠르게 적응할 수 있다.

한계점:

  1. 저차원 제한: 저차원으로 분해할 때, 정보 손실이 발생할 수 있어 성능이 약간 저하될 가능성이 있다.
  2. 복잡한 작업: 매우 복잡한 작업에 대해 저차원 표현이 충분하지 않을 수 있으며, 이로 인해 성능 저하가 발생할 수 있다.

결론

LoRA는 특히 대규모 언어 모델(예: GPT-3, BERT 등)의 미세 조정에서 큰 관심을 받고 있으며, 컴퓨팅 자원에 대한 제약이 있는 환경에서 성능과 효율성을 동시에 추구할 때 유용하다.

profile
AI개발자

0개의 댓글