Topic

LoRA (Low-Rank Adaptation)

JackerLab 2025. 5. 6. 12:23
728x90
반응형

개요

LoRA(Low-Rank Adaptation)는 거대 언어 모델(LLM)의 파라미터 전체를 학습하지 않고, 선형 계층의 변화만을 저차원(low-rank) 행렬로 분리해 효율적으로 학습하는 파인튜닝 방식입니다. 이 접근법은 저비용·저메모리·빠른 수렴이라는 장점으로 인해 최근 ChatGPT, LLaMA, Alpaca 등 다양한 LLM 파인튜닝에 널리 채택되고 있습니다.


1. 개념 및 정의

LoRA는 기존 모델의 가중치 는 고정하고, 추가 학습 가능한 **저랭크 행렬 A, B (Rank << d)**를 삽입하여 전체 표현을 다음과 같이 구성합니다:

  • 핵심 아이디어: 학습 시 weight를 직접 업데이트하는 대신, 저차원 변화만 추가로 학습
  • 동결 전략: 기존 모델의 가중치는 그대로 고정
  • 적용 위치: 주로 Transformer의 Attention 또는 FFN 선형 계층

2. 구조 및 작동 방식

구성 요소 설명 예시
Base Model 학습 전 LLM GPT-2, BERT, LLaMA 등
Target Layer LoRA 적용 대상 Linear Layer Wq, Wk, Wv, Wo 등
Rank (r) A, B의 행렬 랭크 일반적으로 4~16 수준
LoRA Params 학습되는 추가 파라미터 AB: 매우 작은 추가 비용

기존 Linear Layer를 다음처럼 LoRA로 확장합니다:

(실제로는 A, B 순서지만 구현 최적화 위해 반대로 두는 경우도 존재)


3. 장점 및 한계

항목 장점 단점
메모리 효율 기존 모델 대비 수백 배 적은 파라미터 적절한 Rank 선택 필요
빠른 파인튜닝 GPU 1장으로도 LLM 튜닝 가능 구조적으로 모든 Task에 효과적이지 않음
원본 보존 Pretrained 모델 훼손 없음 극한 정밀도 요구 작업에는 불리할 수 있음
모듈화 플러그인 형태로 삽입 가능 Rank가 너무 작으면 과소적합 가능

이러한 특성 덕분에 LoRA는 Hugging Face, PEFT 등에서 기본 지원됩니다.


4. 응용 및 활용 사례

분야 활용 예시 설명
ChatGPT 파인튜닝 Alpaca, Vicuna, OpenChat LLaMA 모델을 LoRA로 튜닝
다국어 번역 모델 BLOOMZ, MBART 언어별로 LoRA Adapter 분리 학습
개인화 모델 Custom GPT, 엔터프라이즈 챗봇 개인 데이터로 빠르게 튜닝 가능
로보틱스·멀티모달 LLaVA, Flamingo Vision + Text 모델의 Attention 튜닝

LoRA는 미세 조정된 어댑터만 저장·배포 가능하다는 점에서 오픈소스 생태계에 매우 적합합니다.


5. 변형 기법들

기법 설명 특징
QLoRA Quantized LoRA 4bit 모델에 적용 가능한 LoRA (GPU 효율 강화)
AdaLoRA 적응형 Rank 조절 동적 학습 중 중요도 기반 Rank 업데이트
LoRA-Fusion 다중 LoRA 통합 서로 다른 LoRA 어댑터를 하나로 결합
LoRA + Prompt Tuning 어댑터 + 입력 튜닝 조합 Task 적응력 향상

LoRA는 단일 구조를 넘어서 다양한 형태로 확장되고 있습니다.


6. 결론

LoRA는 대규모 언어 모델을 저비용으로 빠르고 효율적으로 파인튜닝할 수 있는 획기적인 기법입니다. 메모리와 학습 시간의 제약을 극복하고, 다양한 파생 구조와 결합되어 AI 모델 최적화의 표준으로 자리잡고 있습니다. 향후 QLoRA, Multi-LoRA, AdapterFusion 등과 함께 LoRA는 LLM 파인튜닝의 핵심 전략으로 계속 진화할 것입니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Lakehouse Architecture  (0) 2025.05.06
TinyML  (0) 2025.05.06
Vision Transformer(ViT)  (1) 2025.05.06
Count-min Sketch  (0) 2025.05.06
KD-Tree(K-Dimensional Tree)  (1) 2025.05.06