피드로 돌아가기
Dev.toAI/ML
원문 읽기
Trainable Parameter 99.68% 절감으로 구현한 고효율 LLM Fine-Tuning
Why LoRA? Understanding the representative PEFT
AI 요약
Context
LLM 파라미터 규모의 기하급수적 증가로 인한 Full Fine-Tuning의 연산 비용 및 메모리 요구사항 급증. 기존 방식은 모든 가중치를 업데이트함에 따라 막대한 GPU 자원이 필요하며, 특정 태스크 학습 시 기존 지식을 상실하는 Catastrophic Forgetting 문제 발생.
Technical Solution
- Intrinsic Dimension 가설에 근거하여 모델 업데이트가 저차원 하위 공간에서 발생한다는 점을 활용한 설계
- 기존 Weight Matrix $\mathbf{W}_0$를 Freeze 하고, 두 개의 저차원 행렬 $\mathbf{A}$와 $\mathbf{B}$의 곱으로 업데이트 값 $\Delta \mathbf{W}$를 표현하는 Low-Rank Adaptation 구조 채택
- $\mathbf{B}$ 행렬은 0으로, $\mathbf{A}$ 행렬은 Gaussian으로 초기화하여 학습 초기 단계의 모델 안정성 확보
- $\alpha/r$ Scaling Factor를 도입하여 Rank $r$ 설정 값과 무관하게 Learning Rate를 효율적으로 제어
- Base Model을 고정한 채 태스크별로 독립적인 Adapter만 교체하는 구조를 통해 다중 태스크 대응 및 메모리 효율 극대화
Impact
- 파라미터 10,000 x 10,000 기준, 학습 대상 파라미터를 1억 개에서 32만 개로 99.68% 감소
- 10B 규모 모델 기준 H100 1장으로 약 3~6시간 내 Fine-Tuning 완료
- 출력 파일 크기를 수백 MB 단위로 경량화하며 WikiSQL 등 벤치마크에서 Full Fine-Tuning 수준의 성능 달성
Key Takeaway
고차원 데이터의 가중치 업데이트가 실제로는 낮은 차원의 상관관계 내에서 이루어진다는 원리를 이용한 파라미터 효율화. Over-parameterized 모델에서 정규화 효과를 통해 Overfitting을 방지하는 설계 전략의 유효성 확인.
실천 포인트
1. GPU 자원이 제한적인 환경에서 LLM 최적화 필요 시 PEFT 라이브러리(peft, trl) 검토
2. Rank $r$ 값은 일반적으로 8~64 사이에서 설정하며, 태스크 복잡도에 따라 튜닝
3. 여러 도메인 대응이 필요할 경우 Base Model 하나에 태스크별 Adapter를 분리 설계하여 Runtime에 스위칭
4. 서빙 단계에서 지연 시간 제거를 위해 학습된 LoRA 가중치를 Base Model에 Merge 하여 배포