LoRA로라
Low-Rank Adaptation
쉽게 이해하기
LoRA(Low-Rank Adaptation, 저랭크 적응)는 큰 모델을 통째로 다시 학습하지 않고, 작은 adapter만 학습하는 fine-tuning 방법입니다. 모델의 기존 가중치는 고정하고, 특정 layer 옆에 작은 학습 가능한 행렬을 붙여 task에 필요한 변화만 배웁니다.
핵심은 "변화량 전체를 큰 행렬로 학습하지 말고, 더 작은 두 행렬의 곱으로 근사하자"입니다. 이렇게 하면 학습해야 할 파라미터 수가 크게 줄어 GPU 메모리와 저장 공간을 아낄 수 있습니다.
비유와 예시
기본 모델을 큰 카메라 본체라고 보면 LoRA는 렌즈 어댑터에 가깝습니다. 카메라 본체를 새로 만들지 않아도, 목적에 맞는 어댑터를 끼워 다른 촬영 환경에 맞출 수 있습니다.
예를 들어 고객지원 말투, 특정 회사 문서 스타일, 작은 도메인 데이터에 맞춘 답변을 만들고 싶을 때 모델 전체를 다시 학습하는 대신 LoRA adapter를 학습해 붙일 수 있습니다.
한눈에 비교
| 방식 | 학습 대상 | 장점 | 주의점 |
|---|---|---|---|
| Full fine-tuning | 모델 전체 가중치 | 표현력이 큼 | 비용과 저장 부담이 큼 |
| LoRA | 작은 low-rank adapter | 싸고 저장이 쉬움 | rank와 적용 layer 선택이 중요 |
| Prompting | 프롬프트만 변경 | 배포가 간단함 | 깊은 행동 변화에는 한계 |
| RAG | 외부 지식 검색 | 최신 지식 반영이 쉬움 | 검색 품질과 근거 정리가 중요 |
어디서 왜 중요한가
LoRA는 오픈 모델 생태계에서 특히 중요합니다. 팀이 base model 하나를 두고 여러 고객, 도메인, 스타일에 맞는 adapter를 별도로 관리할 수 있기 때문입니다. adapter 파일은 전체 모델보다 훨씬 작아 배포와 버전 관리도 쉽습니다.
또한 GPU 메모리가 제한된 환경에서도 fine-tuning 실험을 가능하게 합니다. 연구나 스타트업 환경에서 빠르게 여러 variant를 실험할 때 비용 차이가 큽니다.
자주 하는 오해
LoRA는 모델을 "작게 만드는" 기술이 아닙니다. 추론 시 base model은 여전히 필요하고, adapter가 추가됩니다. 모델 압축이나 quantization과 목적이 다릅니다.
LoRA가 full fine-tuning보다 항상 좋다는 뜻도 아닙니다. 데이터가 충분하고 큰 행동 변화를 학습해야 한다면 full fine-tuning이나 다른 학습 전략이 더 나을 수 있습니다.
rank를 크게 잡으면 무조건 좋아지는 것도 아닙니다. 표현력은 늘 수 있지만 메모리, overfitting, adapter 크기도 함께 늘어납니다.
대화에서는 이렇게
"이건 RAG보다 모델 말투 자체를 바꾸는 문제라 LoRA fine-tuning을 검토해볼게요."
"base model은 고정하고 고객별 LoRA adapter만 따로 배포하면 됩니다."
"rank를 너무 키우면 adapter가 커지고 과적합도 생길 수 있어요."
함께 읽으면 좋은 용어
참고 자료
- LoRA: Low-Rank Adaptation of Large Language ModelsarXiv
LoRA의 low-rank update 아이디어와 실험 결과를 제시한 원 논문.
- LoRAPEFT Docs
PEFT에서 LoRA 설정값과 adapter 동작을 설명하는 공식 문서.
- LoRAGitHub
LoRA 원 구현과 적용 예시를 제공하는 공식 저장소.
- PEFTGitHub
LoRA를 포함한 parameter-efficient fine-tuning 라이브러리.