Foundation Models and Fine-tuning Strategy
Foundation Models와 Fine-tuning 전략
Foundation model 시대의 AI 엔지니어 핵심 판단은 'Zero-shot 쓸 것인가, Linear Probe 쓸 것인가, Full Fine-tuning 할 것인가, LoRA/Adapter 쓸 것인가' — 이 선택은 레이블 데이터 크기, 도메인 거리, 배포 비용의 함수다.
Overview
2021년 Stanford HAI 그룹은 'Foundation Models' 개념을 정의했다: 방대한 데이터로 사전학습되어 다양한 하위 태스크에 적응(adapt)할 수 있는 대형 모델. BERT, GPT-3, CLIP, SAM, VideoMAE가 모두 이 정의에 해당한다. 이 모델들이 AI 엔지니어링의 방식을 근본적으로 바꿨다.
이전에는 각 태스크마다 모델을 처음부터 설계하고 훈련했다. 지금은 강력한 사전학습 표현 위에서 빠르게 적응하는 것이 기본 전략이다. 이 패러다임 전환의 핵심은 Transfer Learning이다 — 사전학습 중 획득한 일반 지식을 새 태스크에 전이한다.
그러나 'foundation model을 쓴다'는 결정만으로는 부족하다. 어떤 방식으로 적응시킬 것인가 — zero-shot 그대로 쓸 것인가, 마지막 레이어만 fine-tuning할 것인가, LoRA로 효율적으로 적응시킬 것인가, 전체를 fine-tuning할 것인가 — 이 선택이 실제 성능과 비용을 결정한다.
- Foundation model의 스케일링 법칙과 emergent ability를 이해한다
- Zero-shot, Linear Probe, Full Fine-tuning의 각 사용 조건을 파악할 수 있다
- LoRA의 수학적 원리와 실용적 장점을 설명할 수 있다
- 모달리티별 주요 foundation model을 태스크에 맞게 선택할 수 있다
Sections
스케일링 법칙과 Emergent Ability
Kaplan et al. (OpenAI, 2020)은 언어 모델에서 모델 크기(파라미터 수), 데이터 크기, 연산량(FLOPs) 사이에 멱함수(power law) 관계가 있음을 발견했다. 이를 **스케일링 법칙(Scaling Laws)**이라 한다.
여기서 N은 파라미터 수, D는 데이터 크기, 와 는 양의 상수다. 스케일을 키울수록 예측 가능하게 성능이 향상된다.
더 흥미로운 것은 Emergent Ability다. 특정 규모 임계값을 넘으면 더 작은 모델에서는 전혀 없던 능력이 갑자기 나타난다. Chain-of-thought 추론, few-shot 학습, 산수 능력 등이 모델 크기 증가에 따라 불연속적으로 등장했다.
비전 분야에서도 스케일링 법칙이 작동한다. ViT의 크기를 키울수록(ViT-B → ViT-L → ViT-H → ViT-G) 성능이 향상된다. CLIP을 5억 쌍으로 학습할 때보다 40억 쌍으로 학습했을 때 zero-shot 성능이 크게 향상된다.
AI 엔지니어에게 주는 시사점: 충분히 큰 foundation model을 적절히 적응시키는 것이 작은 모델을 처음부터 훈련하는 것보다 대부분의 경우 더 좋은 결과를 낸다. 단, '충분히 큰'의 기준은 태스크마다 다르고, fine-tuning 비용과 항상 trade-off다.
Fine-tuning 전략 스펙트럼
Foundation model을 새 태스크에 적응시키는 전략은 다음 스펙트럼으로 볼 수 있다.
1. Zero-shot Transfer: 모델 파라미터를 전혀 업데이트하지 않고, 적절한 프롬프트만으로 사용. CLIP의 'a photo of a {class}' 패턴. 레이블 데이터 불필요. 도메인이 사전학습 데이터와 유사할 때 잘 작동.
2. Linear Probe: Foundation model을 완전히 동결(freeze)하고, 마지막 레이어 위에 선형 분류기 하나만 학습. 적은 레이블 데이터로도 빠르게 수렴. 사전학습 표현 품질의 척도로도 사용된다.
3. Few-shot Fine-tuning: 소량 레이블 데이터(10-100개)로 상위 레이어 일부를 fine-tuning. 도메인 거리가 있을 때 zero-shot보다 효과적.
4. LoRA / Parameter-Efficient Fine-tuning: 원래 파라미터 동결, 작은 추가 파라미터만 학습. 이 방법은 다음 섹션에서 자세히 다룬다.
5. Full Fine-tuning: 모든 파라미터 업데이트. 최고 성능 가능하지만 비용이 크고 catastrophic forgetting 위험.
| 전략 | 레이블 필요량 | 계산 비용 | 성능 | Forgetting 위험 |
|---|---|---|---|---|
| Zero-shot | 0 | 없음 | 도메인 의존적 | 없음 |
| Linear Probe | 수백 | 낮음 | 중간 | 없음 |
| LoRA | 수백~수천 | 중간 | 높음 | 낮음 |
| Full FT | 수천~수만 | 높음 | 최고 | 있음 |
LoRA: 효율적 Fine-tuning의 수학
LoRA(Low-Rank Adaptation, Hu et al. 2021)는 대형 모델을 효율적으로 fine-tuning하는 방법이다. 핵심 아이디어: 원래 가중치 행렬 를 동결하고, 업데이트 를 저랭크(low-rank) 분해로 근사한다.
여기서 , , 랭크 . 예를 들어 가 이고 이면, 원래 파라미터 수는 이지만 LoRA 파라미터는 다 — 50배 감소.
왜 Low-rank인가: fine-tuning 시 가중치 변화량 는 실제로 low intrinsic rank를 가진다는 관찰에서 출발한다. 즉, 대부분의 태스크 적응에 필요한 정보가 저차원 부분공간에 집중된다.
실용적 장점:
- 훈련 가능한 파라미터가 0.1-1% 수준으로 줄어 GPU 메모리 절약
- 원본 모델 가중치는 동결되어 있어 여러 태스크용 LoRA를 교체하며 사용 가능
- 추론 시 를 병합하면 지연시간 증가 없음
QLoRA(Dettmers et al. 2023)는 LoRA에 4비트 양자화를 결합해 단일 24GB GPU에서 65B 파라미터 모델을 fine-tuning 가능하게 했다.
모달리티별 Foundation Model 선택 가이드
모달리티와 태스크에 따른 foundation model 선택 가이드다.
비전(이미지) Foundation Models:
- CLIP (OpenAI): 이미지-텍스트 정렬이 필요하거나, 다운스트림 태스크가 다양하고 레이블이 없을 때. Zero-shot 분류, 이미지-텍스트 검색.
- DINOv2 (Meta): 세밀한 비전 태스크, 특히 segmentation, depth estimation, semantic similarity. 텍스트 없는 dense prediction에 강점.
- SAM (Meta): 범용 세그멘테이션.
Segment Anything— 프롬프트 기반 마스크 생성. - EVA-CLIP / SigLIP: CLIP의 개선 버전. 의료, 위성 이미지 등 특수 도메인 fine-tuning.
비디오 Foundation Models:
- VideoMAE V2: 범용 액션 인식, 비디오 분류. linear probe로 빠른 평가 가능.
- InternVideo2: 비디오-텍스트 검색, QA. 멀티모달 비디오 이해.
정형 데이터 Foundation Models:
- TabPFN (Hollmann et al. 2023): 작은 정형 데이터셋(<1000 행)에서 in-context learning으로 분류. 100개 샘플 이하에서는 XGBoost와 competitive.
- CARTE (2024): 다양한 도메인의 테이블 데이터를 사전학습한 모델. 임베딩 피처 있을 때 강점.
Foundation model fine-tuning을 요리 학교 졸업생의 취직 과정으로 비유할 수 있다. 요리 학교(사전학습)에서 기초 조리법, 재료 특성, 열 조절법 등 범용 요리 지식을 체계적으로 익혔다. 이것이 foundation model의 사전학습된 표현이다.
Zero-shot Transfer는 학교에서 배운 것만으로 새 레스토랑의 모든 요리를 바로 낼 수 있는 경우 — 메뉴가 학교에서 배운 것과 비슷한 이탈리안 레스토랑이면 가능하다. Linear Probe는 레스토랑의 특제 소스 레시피 하나만 새로 배우는 것 — 나머지 기술은 그대로 두고, 딱 그 레스토랑에 맞는 마지막 단계만 적응한다.
LoRA는 기존 기술은 유지하면서 작은 메모장에 새 레시피 변형만 기록하는 것과 같다. 원래 요리 지식은 그대로 있고, 이 레스토랑 스타일에 맞는 미세한 조정(랭크 r의 행렬)만 메모장에 추가한다. Full fine-tuning은 레스토랑 전통 방식 전체를 완전히 새로 배우는 것 — 가장 완벽하지만, 이전 지식 일부를 잊을 위험(catastrophic forgetting)이 있다.
LoRA를 사용해 CLIP 비전 인코더를 특정 도메인에 fine-tuning하는 패턴을 살펴보자. peft 라이브러리로 LoRA를 적용하면 trainable parameter를 극적으로 줄일 수 있다.
import torch
from transformers import CLIPVisionModel
from peft import LoraConfig, get_peft_model, TaskType
# 원본 CLIP 비전 인코더 로드
base_model = CLIPVisionModel.from_pretrained("openai/clip-vit-base-patch32")
# 원본 파라미터 수 확인
total_params = sum(p.numel() for p in base_model.parameters())
print(f"원본 파라미터 수: {total_params:,}")
# LoRA 설정: attention 레이어에만 적용
lora_config = LoraConfig(
r=8, # 랭크 (낮을수록 파라미터 적음, 표현력도 낮음)
lora_alpha=16, # 스케일링 계수 (통상 alpha = 2*r)
target_modules=["q_proj", "v_proj"], # Attention Q, V에만 적용
lora_dropout=0.05,
bias="none",
)
# LoRA 적용 — 원본 가중치는 동결
model = get_peft_model(base_model, lora_config)
# 훈련 가능한 파라미터 수 확인
trainable = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(f"LoRA 훈련 파라미터: {trainable:,}")
print(f"파라미터 비율: {100 * trainable / total_params:.2f}%")
# 출력 예시:
# 원본 파라미터 수: 87,455,488
# LoRA 훈련 파라미터: 294,912
# 파라미터 비율: 0.34% get_peft_model은 지정된 레이어(q_proj, v_proj)에 LoRA 모듈을 삽입하고, 나머지 파라미터를 자동으로 동결한다. r=8로 설정하면 전체 파라미터의 0.34%만 훈련한다. 이 0.34%를 업데이트하는 데 필요한 GPU 메모리는 전체 fine-tuning의 약 1/10이다. 학습 완료 후 model.merge_and_unload()로 LoRA 가중치를 원본에 병합하면 추론 시 지연시간 증가 없다.
✅ 시니어가 보는 것
- Zero-shot, Linear Probe, LoRA, Full FT의 선택 기준을 데이터와 비용 관점에서 정량화하는 능력
- LoRA의 수학적 원리(low-rank decomposition)와 실용적 장점 이해
- Catastrophic forgetting 문제와 이를 방지하는 전략(LoRA, 낮은 learning rate, layer-wise lr decay)
- 모달리티별 주요 foundation model(CLIP, DINOv2, VideoMAE)의 특성과 적합 태스크 이해
⚠️ 레드 플래그
- 레이블 100개짜리 데이터셋에 Full Fine-tuning 제안 — 과적합과 비용 문제 인식 부족
- LoRA를 '그냥 빠른 fine-tuning'으로만 이해 — low-rank 수학적 근거 설명 불가
- 모든 비전 태스크에 CLIP을 제안 — DINOv2가 더 적합한 dense prediction 태스크 구분 불가
🎤 예상 인터뷰 질문
- 의료 방사선 이미지 500장(레이블 있음)으로 분류 모델을 만들 때, CLIP zero-shot vs DINOv2 linear probe vs ResNet full fine-tuning 중 어떤 접근법을 선택하겠습니까?
- LoRA의 r 값을 증가시키면 어떤 trade-off가 발생합니까?
- fine-tuning 후 원본 태스크 성능이 저하(catastrophic forgetting)되는 것을 어떻게 방지합니까?
Key Takeaways
스케일링 법칙 = 예측 가능한 성능 향상
모델 크기와 데이터 크기를 늘릴수록 멱함수적으로 성능이 향상된다. Foundation model이 강한 이유다.
Fine-tuning 전략 = 4단계 스펙트럼
Zero-shot → Linear Probe → LoRA → Full FT. 레이블 수와 도메인 거리에 따라 최적점이 다르다.
LoRA = 0.3%만 훈련
Low-rank decomposition으로 원본 파라미터를 동결하고, 적은 파라미터로 태스크 적응. GPU 메모리를 10배 절약한다.
CLIP vs DINOv2 구분
CLIP은 이미지-텍스트 정렬, DINOv2는 dense prediction(segmentation, depth)에 강하다. 태스크에 맞게 선택해야 한다.
TabPFN = 작은 테이블의 기적
1000행 이하 정형 데이터에서 in-context learning으로 XGBoost와 competitive. 정형 데이터 foundation model 시대의 시작.
Linear probe = 사전학습 표현 품질 척도
Linear probe accuracy가 높을수록 foundation model 표현이 태스크에 적합하다. Fine-tuning 전 필수 평가 단계다.