LoRA
외관
LoRA(Low-Rank Adaptation, 로라)는 대규모 사전 학습된 모델을 효율적으로 파인튜닝할 수 있는 기법이다. 2021년 Microsoft에서 제안하였으며, 원본 모델의 가중치를 그대로 두고 저계수(low-rank) 행렬만 학습하여 추가적으로 적용한다.
개요
LoRA는 따로 학습한 작은 가중치 행렬을 원본 모델의 가중치에 더하는 방식으로 작동한다. 전체 모델을 다시 학습하는 파인튜닝(full fine-tuning)과 달리, 학습해야 할 파라미터의 수가 매우 적어 메모리와 연산 비용을 크게 줄일 수 있다. 특정 작업에 특화된 작은 LoRA 가중치를 여러 개 만들어 필요에 따라 교체하는 것도 가능하다.
작동 원리
원본 모델의 가중치 행렬 W를 두 개의 저계수 행렬 A와 B로 분해하여 W + ΔW = W + BA로 표현한다. 파인튜닝 시에는 A와 B만 학습하며, 추론 시에는 원본 가중치에 BA를 더하는 형태로 적용된다. 이 방식은 학습해야 할 파라미터 수를 수천 배 이상 줄여주며, 추가 추론 비용도 거의 없다.
응용 분야
이미지 생성
Stable Diffusion에서 특정 스타일, 캐릭터, 객체를 학습하는 데 가장 널리 사용되는 파인튜닝 기법이다. CivitAI에서 공유되는 대부분의 커스텀 모델이 LoRA 형식이다.
거대 언어 모델
LLM의 파인튜닝에도 활용되며, QLoRA와 같은 양자화를 결합한 변형이 메모리 제약이 심한 환경에서 사용된다. 올라마, llama.cpp 등에서 LoRA 어댑터를 지원한다.
함께 보기
- Stable Diffusion — LoRA가 가장 활발히 사용되는 이미지 생성 모델
- CivitAI — LoRA 모델 공유 플랫폼
- 올라마 — LoRA 어댑터를 지원하는 로컬 LLM 도구
- GGUF — 양자화된 모델 형식