Skip to content

실전 코드랩

이론을 아는 것과 코드를 짜는 것 사이의 간극을 메우는 트랙이다. 각 문서는 처음부터 끝까지 실행 가능한 완전한 코드를 중심으로, 밑바닥 구현(라이브러리 없이 원리 확인)과 실전 파이프라인(현업 도구 사용)을 모두 다룬다. 에서 원리를 이해한 뒤 여기서 손을 움직인다. 각 코드랩 머리의 "선행 지식"이 먼저 읽을 장을 가리킨다.

환경 준비

모든 코드랩은 Python 3.10+ 기준이다. 가상환경을 만들고 공통 의존성을 설치한다.

bash
# uv 사용 (권장 — 빠르다)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv .venv && source .venv/bin/activate
uv pip install torch torchvision numpy matplotlib

# 또는 pip
python -m venv .venv && source .venv/bin/activate
pip install torch torchvision numpy matplotlib

GPU가 있다면 pytorch.org에서 CUDA 버전에 맞는 설치 명령을 확인한다. GPU가 없어도 모든 코드랩은 CPU로 실행된다(작은 데이터셋 기준으로 설계했다).

재현성을 위한 시드 고정은 모든 코드랩에서 이 패턴을 쓴다.

python
import random, numpy as np, torch

def set_seed(seed: int = 42):
    random.seed(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)

device = "cuda" if torch.cuda.is_available() else "cpu"

코드랩 목록

A. 기초 — 훈련 루프를 몸에 익힌다

코드랩만드는 것핵심 기술
01. NumPy로 신경망 밑바닥 구현MNIST 분류 MLP순전파·역전파 수동 구현
02. PyTorch 학습 파이프라인CIFAR-10 ResNetDataset, AMP, 스케줄러, 체크포인트
03. 전이학습과 파인튜닝커스텀 이미지 분류기사전학습 모델, 단계적 해동, 차등 학습률

B. 컴퓨터 비전

코드랩만드는 것핵심 기술
04. U-Net 세그멘테이션픽셀 단위 분할 모델인코더-디코더, 스킵 연결, Dice 손실
05. 객체 탐지탐지 파이프라인IoU/NMS 구현, Faster R-CNN 파인튜닝, YOLO
06. ViT 밑바닥 구현Vision Transformer패치 임베딩, 어텐션 재사용

C. NLP와 LLM

코드랩만드는 것핵심 기술
07. BPE 토크나이저 구현서브워드 토크나이저BPE 학습·인코딩·디코딩
08. Transformer 밑바닥 구현완전한 Transformer어텐션, 마스킹, 인코더-디코더
09. GPT 밑바닥 구현과 학습문자 단위 언어 모델인과 어텐션, 학습, 샘플링, KV 캐시
10. Hugging Face로 BERT 파인튜닝텍스트 분류기datasets, Trainer, 평가
11. LoRA로 LLM 파인튜닝지시 따르는 LLMPEFT, QLoRA, SFT
12. RAG 시스템 구축문서 질의응답 시스템청킹, 임베딩, FAISS, 생성, 평가
13. LLM 에이전트 밑바닥 구현도구 쓰는 에이전트도구 루프, 함수 호출, 안전장치

D. 생성 모델

코드랩만드는 것핵심 기술
14. VAE와 GAN 구현이미지 생성 모델ELBO, 재파라미터화, 적대적 학습
15. Diffusion(DDPM) 밑바닥 구현확산 생성 모델노이즈 스케줄, 학습, 샘플링

E. 강화학습

코드랩만드는 것핵심 기술
16. DQN으로 CartPole 정복가치 기반 RL 에이전트리플레이 버퍼, 타깃 네트워크
17. PPO 구현정책 기반 RL 에이전트GAE, 클리핑, 액터-크리틱

F. 멀티모달과 운영

코드랩만드는 것핵심 기술
18. CLIP과 멀티모달제로샷 분류·이미지 검색대조 학습, 임베딩 공간
19. 음성 인식과 오디오음성→텍스트 파이프라인멜 스펙트로그램, Whisper
20. 모델 서빙모델 API 서버FastAPI, 배칭, Docker

학습 방법

  1. 베껴 쓰지 말고 따라 쓴다 — 코드를 읽고 이해한 뒤, 보지 않고 다시 짜 본다. 막히는 지점이 이해가 빈 지점이다.
  2. 의도적으로 망가뜨린다 — 학습률을 100배 키우면? 정규화를 빼면? 시드를 바꾸면? 예상과 결과를 비교하는 것이 최고의 디버깅 훈련이다.
  3. 확장 과제를 푼다 — 각 코드랩 끝의 확장 과제는 "이해했는가"를 검증하는 문제다. 최소 하나는 풀고 넘어간다.