70억 매개변수 모델의 약 0.1%만 학습해도 큰 효과를 얻어
10억 매개변수 모델을 전체 미세 조정하려면 10억 개의 기울기와 옵티마이저 상태를 저장하고, 체크포인트에도 10억 개의 매개변수를 담아야 해. 개인용 GPU 한 장에는 들어가지 않을 수 있고 결과물도 매우 커져. LoRA(저랭크 적응)는 이 비용을 크게 줄여.
LoRA의 발상
원본 가중치는 동결해. 적응할 선형 계층마다 작은 변화량 ΔW = B @ A를 더하고, A는 (rank, in_features), B는 (out_features, rank) 모양으로 둬. rank=8이고 in/out=4096이라면 계층마다 학습할 매개변수는 8*4096 + 4096*8 = 65,536개야. 전체 미세 조정의 4096*4096 = 16,777,216개와 비교하면 약 0.4% 크기에 불과해.
어댑터가 처음에는 변화량 0을 만들도록 초기화되므로 0단계의 모델은 사전 학습 모델과 똑같이 동작해. 학습 중에는 어댑터만 갱신하고, 추론할 때는 그대로 두어 작은 추가 비용을 내거나 원본 가중치에 병합해 추가 비용을 없앨 수 있어.
PEFT 라이브러리가 해 주는 일
Hugging Face의 peft 라이브러리는 LoRA, AdaLoRA, IA³, 프롬프트 조정 등을 구현해. transformers와 자연스럽게 통합되어 모델을 감싸고 평소처럼 학습한 뒤 몇 MB짜리 어댑터만 저장할 수 있어.
이 방식이 판을 바꾼 이유
- 70억 매개변수 Llama를 24GB 개인용 GPU에서도 미세 조정할 수 있어.
- 어댑터 체크포인트가 GB가 아니라 MB 단위라 공유, 버전 관리, A/B 테스트가 쉬워.
- 전체 매개변수를 복제하지 않고도 작업별 어댑터를 여러 개 묶어 관리할 수 있어.
- '동결한 기본 모델 + 작은 어댑터' 조합 덕분에 호스팅 환경의 LLM 미세 조정도 비용 면에서 현실적인 선택이 돼.