파인튜닝 • 챕터 5 / 7
LLM은 다양한 산업 분야에서 활용되며, 주요 사용 사례:
문제 1: 매우 큰 GPU 소모
파라미터 처리로 인한 GPU 압박:
대규모 모델 파라미터 → GPU 메모리 부족 → 처리 시간 증가문제 2: 파라미터의 영구적인 변화
Fine-Tuning 후 발생하는 문제:
기존 파라미터를 보존하며, 적은 양의 메모리를 활용하는 Fine-Tuning
기존 모델 (고정) + Adapter (학습) = 효율적 튜닝핵심 특징:
Adapter (어댑터):
입력 → [기존 모델 W] + [Adapter BA] → 조정된 출력Pretrained Weights는 그대로 두고, 새로운 A, B를 적용하여 결과 변경
수식 변환:
기존: h = Wx
LoRA: h = (W + BA)x구성 요소:
기존 행렬 [W]:
LoRA 행렬 [BA]:
# 초기화 방법
B = 0 # 영행렬로 초기화
A ~ N(0, σ²) # 정규분포로 랜덤 초기화이유:
실제 계산 예시 (d = 3000, r = 2):
| 방법 | 계산식 | 파라미터 수 | 비율 |
|---|---|---|---|
| Full Fine-Tuning | 3000² | 9,000,000 | 100% |
| LoRA (r=2) | 3000×2×2 | 12,000 | 0.13% |
| 감소율 | - | 750배 감소 | 99.87% 절감 |
실제 사례:
기존 파라미터: 3,584 × 5,184 = 18,579,456
LoRA (r=4): 8,000 × 4 = 42,000
감소율: 약 1% 미만 (442배 감소)LoRA의 학습 효율:
전체 모델 학습 vs LoRA 학습
GPU 메모리: 100GB → 5GB
학습 시간: 10시간 → 1시간목표: 다음 토큰을 예측하여 텍스트 생성
수식: 모든 토큰에 대해 조건부 확률을 최대화하는 파라미터 Φ를 찾음
기존 모델 Φ₀는 고정하고, LoRA 파라미터 Θ만 최적화
핵심 차이점:
# Step 1: 입력 x를 기존 모델에 통과
h_base = W @ x # 기존 모델 출력
# Step 2: LoRA 출력 계산
h_lora = (B @ A) @ x # LoRA 추가 출력
# Step 3: 최종 출력
h_final = h_base + h_lora # 결합
h_final = (W + B@A) @ x
# Step 4: Gradient 업데이트
# W는 고정 (no gradient)
# B, A만 업데이트
B = B - lr * ∇B
A = A - lr * ∇A효과:
버전 1.0: 기본 LoRA
버전 1.1: 수학 강화 LoRA
버전 1.2: 코딩 강화 LoRA
→ 빠른 반복 실험 가능Google Gemma (베이스) + LoRA 모델 = 완성된 모델
↓
탈착 가능장점:
하나의 모델에 여러 전문 분야별 LoRA 준비:
[베이스 모델]
↓
┌────────┼────────┐
↓ ↓ ↓
[수학 LoRA] [법률 LoRA] [의료 LoRA]if query_type == "math":
use_lora("math_expert")
elif query_type == "law":
use_lora("law_expert")Full Fine-Tuning: 기존 지식 망각 ↑↑↑
LoRA: 기존 지식 망각 ↓ (원래 모델 W는 그대로)Trade-off 관계:
| 측면 | LoRA | Full Fine-Tuning |
|---|---|---|
| 목표 도메인 학습 효과 | 낮음 | 높음 |
| 기존 도메인 망각 | 적음 | 많음 |
의미:
CPT란?: 모델의 '토양' 자체를 바꾸는 과정
LoRA의 한계:
도메인별 적합성:
| 도메인 | 권장 방법 |
|---|---|
| CPT | Full Fine-Tuning |
| IT 분야 | LoRA |
| 빠른 적응 | LoRA |
| 깊은 학습 | Full Fine-Tuning |
주요 발견:
질문 시작
↓
기존 지식 보존 중요?
↓─ Yes → GPU 리소스 제한?
│ ↓─ Yes → LoRA
│ ↓─ No → 성능 우선?
│ ↓─ Yes → FFT
│ ↓─ No → LoRA
↓─ No → CPT 필요?
↓─ Yes → FFT
↓─ No → 복잡도 고려| 용어 | 정의 | 예시 |
|---|---|---|
| PEFT | Parameter Efficient Fine-Tuning | LoRA, Adapter 등 |
| LoRA | Low-Rank Adaptation | h=(W+BA)x |
| Adapter | 모델에 추가되는 조정 모듈 | BA 행렬 |
| Rank (r) | 저랭크 행렬의 차원 | r=2, 4, 8 등 |
1. 기존 모델: h = Wx
2. LoRA 모델: h = (W + BA)x
3. 파라미터 수: d² → 2×r×d
4. 감소율: (d²)/(2rd) = d/(2r)| 항목 | LoRA | Full Fine-Tuning |
|---|---|---|
| 파라미터 수 | 1% 미만 | 100% |
| GPU 메모리 | 매우 적음 | 매우 많음 |
| 학습 속도 | 빠름 | 느림 |
| 기존 지식 보존 | 우수 | 망각 가능 |
| 학습 효과 | 제한적 | 강력 |
| CPT 적합성 | 낮음 | 높음 |
| 버저닝 | 용이 | 어려움 |
| 탈착 | 가능 | 불가능 |