:)
[LLM] LoRA: Low-Rank Adaptation of Large Language Models 본문
Abstract
- LoRA: Fine-tuning 비용 & 메모리 문제 해결 방법
- 장점
- 모델 저장 공간 절약 & Task 전환 용이 → 작은 LoRA 모듈만 저장하면 됨
- 학습 효율 증가 → Gradient 저장 불필요, 하드웨어 요구량 3배 절감
- 추론 속도 유지 → 기존 Fine-tuned 모델과 동일한 속도
- 다른 방법과 병행 가능 → Prefix-tuning 등과 조합 가능
- 장점
Introduction
연구 배경
- 사전 학습된 LLM은 다양한 다운스트림 작업에 적응 필요.
- 기존 Fine-tuning 방식은 모든 파라미터를 업데이트해야 하므로 비효율적
- 모델 크기가 클수록 비용 증가
- 추론 속도 저하 및 사용 가능한 시퀀스 길이 감소
- 성능 저하와 효율성 사이의 트레이드오프 발생
LoRA (Low-Rank Adaptation) 개념
- LLM의 가중치 변화(ΔW)는 저차원 구조를 가질 것이라는 가설을 기반으로 설계됨.
- 기존 가중치는 그대로 유지하고 Rank 분해 행렬(A, B)만 학습하여 적은 수의 파라미터로 Fine-tuning 가능.
LoRA의 핵심 개념 및 용어 정리
- Transformer Layer 차원 (d_model): 입력 및 출력 차원.
- W_q, W_k, W_v, W_o: Self-attention 모듈의 Query, Key, Value, Output 프로젝션 행렬.
- W: 사전 학습된 가중치
- ΔW: 적응 과정에서 업데이트된 가중치 변화.
- r: LoRA의 Rank 값 (낮을수록 학습할 파라미터가 적음).
- 최적화 알고리즘: Adam 사용
Problem Statement
기존 Fine-Tuning 방식
- 모든 파라미터를 학습해야 하므로 각 Task마다 별도의 거대한 모델 저장 필요
- 문제점:
- 모델이 클수록 저장 및 배포가 어렵거나 불가능.
- 각 Fine-Tuned 모델이 독립적으로 존재해야 함 → 운영 비용 급증.
LoRA
- 기존 Fine-Tuning 대비 차별점
- 각 가중치를 저차원 행렬로 표현 → 학습할 파라미터 수 감소
Aren’t Existing Solutions Good Enough?
기존 연구에서도 효율적인 Fine-tuning을 위한 다양한 시도가 있었음.
- 기존 Fine-tuning의 비효율성을 해결하기 위한 대표적인 방법 두 가지
- Adapter Layers 추가
- 입력 레이어 활성화 최적화 (Prompt Tuning, Prefix Tuning)
⇒ 하지만 대규모 모델, 실시간 추론 환경에서 한계점 존재.
Adapter Layers의 한계: 추론 지연 증가
- Adapter Layers 방식: 기존 모델에 작은 모듈을 추가하여 일부만 학습
- 문제점: 추가적인 계산 비용 발생 → 추론 속도 저하
- Adapter Layer는 병렬 처리 불가능 → 순차적으로 처리해야 함.
Prompt Tuning의 한계: 최적화 어려움 & 시퀀스 길이 감소
- Prefix-Tuning, Prompt-Tuning 방식
- 입력에 추가적인 토큰을 삽입하여 모델이 학습된 정보와 연관성을 가지도록 유도.
- 모델 가중치는 그대로 유지하고 입력값을 조정하는 방식.
- 문제점: 학습 최적화 어려움 & 성능 저하 가능성
- Prefix-Tuning은 학습 난이도가 높으며 성능이 일관되지 않음.
- 실험적으로 학습 가능한 파라미터 수가 많아져도 성능이 비선형적으로 변화.
- 시퀀스 길이 일부를 프롬프트로 사용해야 하므로 실제 모델이 활용할 수 있는 입력 길이가 줄어듦 → Task 성능 저하 가능성.
LoRA의 필요성
- 기존 기법들은 효율성을 높이려는 시도는 했지만 실질적인 문제 해결에는 한계가 있음.
- Adapter Layers → 추론 속도 저하 문제 발생.
- Prompt-Tuning → 최적화 난이도 및 시퀀스 길이 감소 문제 발생.
⇒ LoRA는 추가적인 계산 비용 없이 동일한 추론 속도를 유지하면서도 Fine-Tuning의 성능을 확보 가능.
Our Method
Low-Rank-Parametrized Update Matrices
- LoRA 방식
- 기존 모델 가중치 W0는 고정.
- 업데이트되는 가중치를 저차원 행렬 B,A 로 분해하여 학습.
- 학습 시 A, B만 최적화, 기존 가중치 업데이트 없음.
- LoRA의 장점
- 추가적인 추론 지연 없음 → 기존 Fine-Tuning과 같은 속도로 동작.
- 적은 파라미터만 학습 → 메모리 사용량 & 저장 공간 절약.
- Task 전환 용이 → Low-Rank 행렬만 교체하면 됨.
- Full Fine-Tuning 수준의 성능 유지 가능 (Rank 값 조절).
Applying LoRA to Transformer
- Attention 가중치만 학습
- MLP 및 LayerNorm 등은 파라미터 절약 목적으로 학습 X
Understanding the Low-Rank Updates
1.Transformer의 어떤 가중치 행렬에 LoRA를 적용해야 하나?
- 단일 가중치 수정 시 → Wq, Wk가 가장 성능이 낮음
- 여러 가중치 조합 시 → Wq, Wv 조합이 가장 성능이 좋음
2. 최적의 rank r은 무엇인가?
작은 r 값에서도 Full Fine-tuning에 가까운 성능 유지 가능 ⇒ 낮은 r을 선택해 효율적으로 Fine-tuning을 수행하는 것이 효과적
3. Adaptation 행렬 ΔW는 W와 어떻게 비교되는가?
LoRA의 ΔW는 기존 가중치 W의 일부 정보를 증폭하는 방식으로 작동 & 작은 r에서도 효과적으로 적응이 가능함
Conclusion and Future Work
LoRA 핵심 요약
- 대규모 언어 모델의 Fine-Tuning은 비용이 너무 높음 → LoRA는 이를 해결하는 효율적 적응 기법.
- 추가적인 추론 지연 없음 & 입력 시퀀스 길이 유지 → 기존 Fine-Tuning 대비 효율성 높음.
- 대부분의 모델 파라미터를 공유하여 빠른 Task 전환 가능 → 서비스 배포에 유리.
- Transformer뿐만 아니라 모든 Dense Layer가 포함된 신경망에 적용 가능.
미래 연구 방향
- LoRA + 다른 효율적 적응 기법 결합 → 성능 향상 가능성 연구.
- Fine-Tuning과 LoRA의 내부 메커니즘 분석 → 모델이 다운스트림 작업에 적응하는 원리 이해.
- LoRA 적용 대상을 더 체계적으로 선택하는 방법 필요 (현재는 휴리스틱 접근을 사용)
- W 자체의 Rank-Deficiency 연구
- ΔW의 Rank가 낮다면 W 자체도 Rank-Deficient일 가능성.
- 추가적인 모델 최적화 기법 개발 가능성 있음.