GitHub ↗
CHAPTER 06 OF 10
🧠

Foundation Models and Fine-tuning Strategy

Foundation Models와 Fine-tuning 전략

Foundation model 시대의 AI 엔지니어 핵심 판단은 'Zero-shot 쓸 것인가, Linear Probe 쓸 것인가, Full Fine-tuning 할 것인가, LoRA/Adapter 쓸 것인가' — 이 선택은 레이블 데이터 크기, 도메인 거리, 배포 비용의 함수다.

Foundation Models and Fine-tuning Strategy cheatsheet
🍌 NANO BANANA CHEATSHEET · CH 06

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할 것인가 — 이 선택이 실제 성능과 비용을 결정한다.

🎯 Learning Goals
  • 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)**이라 한다.

LossNαDβ\text{Loss} \propto N^{-\alpha} \cdot D^{-\beta}

여기서 N은 파라미터 수, D는 데이터 크기, α\alphaβ\beta는 양의 상수다. 스케일을 키울수록 예측 가능하게 성능이 향상된다.

더 흥미로운 것은 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하는 방법이다. 핵심 아이디어: 원래 가중치 행렬 WRd×kW \in \mathbb{R}^{d \times k}를 동결하고, 업데이트 ΔW\Delta W를 저랭크(low-rank) 분해로 근사한다.

W=W+ΔW=W+BAW' = W + \Delta W = W + BA

여기서 BRd×rB \in \mathbb{R}^{d \times r}, ARr×kA \in \mathbb{R}^{r \times k}, 랭크 rmin(d,k)r \ll \min(d, k). 예를 들어 WW768×768768 \times 768이고 r=8r=8이면, 원래 파라미터 수는 7682=590K768^2 = 590K이지만 LoRA 파라미터는 768×8+8×768=12K768 \times 8 + 8 \times 768 = 12K다 — 50배 감소.

왜 Low-rank인가: fine-tuning 시 가중치 변화량 ΔW\Delta W는 실제로 low intrinsic rank를 가진다는 관찰에서 출발한다. 즉, 대부분의 태스크 적응에 필요한 정보가 저차원 부분공간에 집중된다.

실용적 장점:

  • 훈련 가능한 파라미터가 0.1-1% 수준으로 줄어 GPU 메모리 절약
  • 원본 모델 가중치는 동결되어 있어 여러 태스크용 LoRA를 교체하며 사용 가능
  • 추론 시 W+BAW + BA를 병합하면 지연시간 증가 없음

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): 다양한 도메인의 테이블 데이터를 사전학습한 모델. 임베딩 피처 있을 때 강점.
💡 Analogy · 비유
요리 학교 졸업생의 레스토랑 취직

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를 극적으로 줄일 수 있다.

python
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 가중치를 원본에 병합하면 추론 시 지연시간 증가 없다.

🏭 현업에서의 평가
Foundation model 활용 능력의 평가 핵심은 '어떤 foundation model을 선택하고 어떤 방식으로 적응시키는가'의 판단력이다. 특히 레이블 데이터 크기, 도메인 거리, GPU 예산, 서빙 레이턴시 요구를 종합해 최적 전략을 설계하는 것이 중요하다.

✅ 시니어가 보는 것

  • 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 태스크 구분 불가

🎤 예상 인터뷰 질문

  1. 의료 방사선 이미지 500장(레이블 있음)으로 분류 모델을 만들 때, CLIP zero-shot vs DINOv2 linear probe vs ResNet full fine-tuning 중 어떤 접근법을 선택하겠습니까?
  2. LoRA의 r 값을 증가시키면 어떤 trade-off가 발생합니까?
  3. fine-tuning 후 원본 태스크 성능이 저하(catastrophic forgetting)되는 것을 어떻게 방지합니까?
숙달 vs 익숙함: 익숙한 수준은 LoRA 코드를 복사해서 실행할 수 있는 것이다. 숙달은 주어진 태스크(도메인 거리, 레이블 수, GPU 예산, 서빙 요구)를 분석해 최적 fine-tuning 전략을 선택하고, LoRA의 r과 alpha를 그 분석을 근거로 설정하고, linear probe 결과로 사전학습 표현 품질을 평가하는 워크플로를 실행하는 것이다.

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 전 필수 평가 단계다.