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의 핵심은 가중치 행렬의 업데이트를 저차원 공간에서 수행하는 데 있다. 이를 통해 학습해야 하는 파라미터의 수를 크게 줄어든다.
기존 모델에서의 가중치 업데이트는 다음과 같이 표현된다:
𝑊 ← 𝑊 + Δ𝑊
여기서, Δ𝑊는 학습을 통해 얻어진 변화량이다.
LoRA에서는 다음과 같이 저차원 행렬 𝐴와 𝐵를 사용하여 업데이트한다:
Δ𝑊 = 𝐵𝐴
이를 통해, 원래 𝑊에 대한 업데이트는 저차원 행렬 곱으로 표현되며, 학습해야 하는 파라미터는 𝐴와 𝐵의 파라미터에만 국한된다.
장점:
한계점:
LoRA는 특히 대규모 언어 모델(예: GPT-3, BERT 등)의 미세 조정에서 큰 관심을 받고 있으며, 컴퓨팅 자원에 대한 제약이 있는 환경에서 성능과 효율성을 동시에 추구할 때 유용하다.