처음부터 모든 것을 배우는 것과, 이미 배운 것을 기반으로 새로운 것을 배우는 것 중 어느 게 빠를까요? 당연히 후자입니다. **Transfer Learning(전이 학습)**은 AI가 한 분야에서 배운 지식을 다른 분야에 적용하는 기술입니다.
인간의 비유: 운전을 배운 사람이 처음으로 트럭을 운전할 때, 아무것도 모르는 상태가 아닙니다. 핸들, 엑셀, 브레이크의 원리는 이미 알고 있습니다. 트럭의 크기와 특성만 새로 익히면 됩니다.
AI에서의 실제 사례:
보이저X의 전략이 빛나는 이유: Vrew 팀은 음성 인식 모델을 직접 만들지 않고 Whisper API를 활용했습니다. 이것이 바로 Transfer Learning의 산업적 응용입니다.
[사전 학습 모델 (Pre-trained Model)]
↓
방법 1: Feature Extraction (동결)
- 사전학습 레이어: 가중치 고정(freeze)
- 새 분류 레이어만 학습
- 빠름, 데이터 적어도 됨
방법 2: Fine-tuning (미세조정)
- 사전학습 레이어: 낮은 학습률로 조정
- 전체 또는 일부 레이어 재학습
- 더 좋은 성능, 더 많은 데이터 필요
방법 3: LoRA (Low-Rank Adaptation)
- 원본 가중치 변경 없음
- 작은 어댑터 행렬만 학습 (1-10% 파라미터)
- LLM 파인튜닝의 사실상 표준
LoRA 수식:
여기서 는 원본 가중치 행렬, , ,
# LoRA 구현 예시 (PyTorch)
import torch.nn as nn
class LoRALayer(nn.Module):
def __init__(self, original_layer, rank=4, alpha=1.0):
super().__init__()
self.original = original_layer
d, k = original_layer.weight.shape
self.lora_A = nn.Parameter(torch.randn(rank, k) * 0.01)
self.lora_B = nn.Parameter(torch.zeros(d, rank))
self.scale = alpha / rank
def forward(self, x):
return self.original(x) + (x @ self.lora_A.T @ self.lora_B.T) * self.scale
| 방법 | 학습 파라미터 | 데이터 요구량 | 성능 | 비용 |
|---|---|---|---|---|
| 처음부터 학습 (Scratch) | 100% | 매우 많음 | 기준 | 매우 높음 |
| Feature Extraction | <5% | 적음 | 기준 -10% | 낮음 |
| Full Fine-tuning | 100% | 중간 | 기준 +5% | 높음 |
| LoRA (r=8) | ~0.1-1% | 적음 | 기준 +3% | 매우 낮음 |
| QLoRA (4bit+LoRA) | ~0.1% | 적음 | 기준 +2% | 극히 낮음 |
실제 학습 자원 비교:
장점:
한계:
AI 스타트업을 위한 전이 학습 선택 기준:
데이터 보유량
├── 1K 미만 샘플 → Feature Extraction (동결)
├── 1K-100K 샘플 → LoRA / QLoRA 파인튜닝
└── 100K+ 샘플 → Full Fine-tuning 고려
도메인 유사도
├── 유사 (영어 → 한국어 번역) → 가벼운 파인튜닝
└── 비유사 (언어 → 의료 영상) → 중간 레이어부터 재학습
# Whisper API 활용 (전이학습 없이 강력한 음성인식)
import openai
audio_file = open('video_audio.mp3', 'rb')
transcript = openai.audio.transcriptions.create(
model='whisper-1', file=audio_file, language='ko'
)
# → OpenAI가 수백만 시간 음성으로 학습한 모델을 단 몇 줄로 활용