본문 바로가기
C.W.K.
Stream
Lesson 02 of 08 · published

MLP, CNN, Transformer, 파운데이션 모델 선택하기

~18 min · choice, architecture

Level 0호기심
0 XP0/73 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

데이터 형태에 맞는 아키텍처 고르기

  • MLP — 표 형식의 수치 특성, 고정 크기 임베딩, 평면 벡터를 다루는 단순 회귀와 분류에 알맞아. 실제 표 형식 데이터에서는 기울기 부스팅에 자주 밀리지만, 학습된 백본 위에 얹는 헤드로는 유용해.
  • CNN — 이미지, 2-D 공간 신호(spectrogram), video frame, 저차원 구조 격자에 알맞아. 지역성과 평행 이동에 대한 강한 귀납 편향이 있어. 거의 모든 작업에 사전 학습된 백본을 사용할 수 있어.
  • RNN / LSTM / GRU — 토큰마다 일정한 비용이 필요한 스트리밍 시퀀스, RL 정책, Transformer 어텐션의 제곱 비용이 부담스러운 임베디드 시스템에 알맞아. 일반적인 용도에서는 대부분 Transformer로 대체됐어.
  • Transformer — 텍스트, 코드, 전역 의존성이 있는 긴 시퀀스, 멀티모달 데이터에 알맞아. 2026년에는 거의 모든 시퀀스형 데이터의 기본 선택이야.
  • 상태 공간 모델 (Mamba, Mamba-2, RWKV) — Transformer의 O(n²) 어텐션 비용이 너무 커지는 매우 긴 시퀀스에 알맞아. 비용이 시퀀스 길이에 따라 선형하게 늘어나. 아직은 emerging 단계야.
  • 파운데이션 모델 (CLIP, DINOv2, SAM, GPT 계열 LLM) — black-box 임베딩 모델이나 미세 조정 가능한 기반 모델로 사용해. 실제 애플리케이션 가운데 놀랄 만큼 많은 경우에는 ‘파운데이션 모델을 그냥 써’가 정말 정답이야.
팁: 아키텍처의 귀납 편향을 데이터 구조에 맞춰. 특성이 100개인 표 형식 데이터셋에 어텐션을 적용하거나 텍스트에 CNN을 적용하지 마. 맞지 않는 아키텍처도 ‘작동’은 하지만 매개변수를 낭비하고 일반화 성능도 나빠져.

‘파운데이션 모델부터’라는 지름길

대부분의 애플리케이션 작업에서는 관련 파운데이션 모델을 고르는 게 올바른 첫걸음이야. 비전-language에는 CLIP, general 비전에는 DINOv2, 텍스트에는 Llama / Qwen / GPT 계열 LLM을 골라 데이터를 임베딩한 다음, 작은 헤드만 학습해. 이렇게 하면 아키텍처 결정의 90%를 건너뛸 수 있어.

원칙: 2026년의 아키텍처 결정은 대부분 ‘맞춤형 CNN을 어떤 형태로 만들까?’가 아니라 ‘어떤 파운데이션 모델부터 시작할까?’야. 이 변화를 받아들여. leverage는 백본이 아니라 데이터와 헤드에 있어.

Code

다섯 가지 아키텍처와 대표 과제 유형·python
# Tabular: classical wins
import lightgbm as lgb
clf = lgb.LGBMClassifier(n_estimators=500).fit(X_train, y_train)

# Vision: foundation model + head
import torch.nn as nn
import torchvision.models as tvm
vit = tvm.vit_b_16(weights="IMAGENET1K_V1"); vit.heads = nn.Linear(768, n_cls)

# Text classification: pretrained transformer
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
    "distilbert-base-uncased", num_labels=n_cls)

# Long-sequence text generation: causal LLM
from transformers import AutoModelForCausalLM
gen = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct",
                                            device_map="auto")

# Time-series forecasting: foundation forecaster
# from chronos import ChronosPipeline
# forecaster = ChronosPipeline.from_pretrained("amazon/chronos-t5-large")

External links

Exercise

최근 프로젝트 3개에서 어떤 아키텍처 클래스를 사용했는지, 지금 다시 만든다면 어떤 아키텍처를 선택할지 목록으로 정리해. 두 선택 사이의 차이가 지난 18개월 동안 무엇을 배웠는지 보여줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.