Low-Rank Adaptation (LoRA) (KO)

From Systems analysis Wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — 대형 언어 모델(LLM)을 최소한의 연산 비용으로 새로운 작업에 적응시킬 수 있는 파라미터 효율적 미세조정(PEFT) 방법입니다. 이 기술은 2021년 에드워드 후(Edward Hu)와 동료 연구자들의 논문에서 처음 소개되었습니다[1].

LLaMA나 GPT와 같은 대규모 모델의 전체 미세조정(full fine-tuning)은 막대한 자원을 필요로 하여 대부분의 연구자와 개발자에게는 현실적으로 불가능합니다. LoRA는 모델 파라미터의 극히 일부만 미세조정하면서도 전체 미세조정과 비교할 만한 높은 품질과 성능을 유지함으로써 이 문제를 해결합니다[2].

작동 원리

LoRA의 핵심 아이디어는 사전학습된 모델의 원본 가중치를 직접 변경하는 대신, 작은 '보정' 행렬을 추가하는 것입니다. 거대한 가중치 행렬 `W`를 직접 학습하는 대신, LoRA는 그 변화량을 두 개의 작은 저랭크 행렬의 곱으로 표현합니다.

형식적으로, 레이어의 원본 가중치 행렬 `W_0`의 크기가 `d × k`일 때, 그 업데이트는 `ΔW = BA`로 표현됩니다. 여기서 `B`는 크기 `d × r`의 행렬이고, `A`는 크기 `r × k`의 행렬입니다. 랭크 `r`은 하이퍼파라미터이며 `r << d, k`를 만족할 만큼 매우 작습니다. 미세조정 과정에서 원본 가중치 `W_0`는 동결되고, 행렬 `A`와 `B`만 학습됩니다. 최종 가중치 행렬은 `W = W_0 + BA`로 계산됩니다.

이를 통해 학습 가능한 파라미터 수를 수천 배 줄일 수 있습니다. 예를 들어, GPT-3(1,750억 파라미터)를 미세조정할 때 LoRA는 학습 파라미터 수를 10,000배 줄이고 GPU 메모리 요구량을 3배 감소시킵니다[1].

주요 장점

  • 자원 절약: 학습 가능한 파라미터 수가 크게 줄어들어(90% 이상) 비디오 메모리(VRAM) 소비가 현저히 감소하고 학습 속도가 빨라집니다.
  • 추론(inference) 시 지연 없음: 학습 후 행렬 `B`와 `A`를 기본 행렬 `W_0`에 병합하여 `W = W_0 + BA`를 계산할 수 있습니다. 따라서 모델 사용 시 추가적인 연산이나 지연이 발생하지 않습니다[1].
  • 모듈성과 빠른 작업 전환: 학습된 LoRA 어댑터는 작은 파일(수 메가바이트)로 구성됩니다. 이를 통해 기본 모델을 변경하지 않고도 다양한 작업용 어댑터를 손쉽게 저장하고 빠르게 전환할 수 있습니다[3].

한계 및 변형

LoRA는 매우 효율적이지만, 저랭크 특성으로 인해 대량의 새로운 정보를 기억해야 하는 작업에는 한계가 있을 수 있습니다. 이러한 문제를 해결하기 위해 다양한 변형이 제안되었습니다.

QLoRA

QLoRA (Quantized Low-Rank Adaptation)는 2023년에 제안된 가장 인기 있는 변형 중 하나입니다. 이 방법은 LoRA와 기본 모델의 4비트 양자화를 결합합니다[4]. 이를 통해 메모리 요구량을 더욱 낮춰, 수백억 파라미터 규모의 모델(예: 650억 파라미터 모델)을 단일 소비자용 GPU에서 미세조정할 수 있습니다. QLoRA를 기반으로 개발된 대표적인 모델로 Guanaco가 있으며, ChatGPT와 비견되는 성능을 보였습니다.

기타 변형

  • MoRA (High-Rank Updating): 랭크 제한으로 인해 LoRA의 성능이 충분하지 않은 작업을 위해 제안되었습니다. MoRA는 파라미터 효율성을 유지하면서 높은 랭크로 가중치를 업데이트할 수 있는 방법을 사용합니다[5].

구현 및 활용

LoRA 기술은 효율성과 통합 용이성 덕분에 널리 보급되었습니다. 그 대중화에 핵심적인 역할을 한 것은 Hugging FacePEFT (Parameter-Efficient Fine-Tuning) 라이브러리입니다. PEFT는 Transformers 생태계의 모델에 LoRA 및 기타 PEFT 방법을 적용하기 위한 통합 인터페이스를 제공합니다[6].

LoRA는 다음과 같은 용도로 활발히 활용됩니다:

  • 챗봇 및 대화 시스템 적응(예: LLaMA, Mistral 미세조정).
  • 전문 분야에서의 텍스트 분류 및 생성 모델 개발.
  • 특정 스타일이나 데이터 형식에 맞는 모델 개인화.

같이 보기

  • Hugging Face의 PEFT 라이브러리 공식 문서

참고 문헌

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

각주

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]