목록으로

Stanford CME295 Transformers & LLMs | Autumn 2025 | Lecture 4 - LLM Training

Stanford Online AI 요약 생성: January 24, 2026

핵심 요약

LLM의 학습 파이프라인을 다룹니다. Transfer Learning 패러다임, Pre-training 데이터와 목표, Scaling Laws, 분산 학습 기법(Data/Model Parallelism, ZeRO, Flash Attention), 그리고 Mixed Precision Training과 Post-training(SFT, RLHF)까지 설명합니다.

주요 개념

Transfer Learning 패러다임 4:30

  • 전통적 방식: 각 태스크마다 모델을 처음부터 학습 (spam detection, sentiment analysis 각각)
  • Transfer Learning: 언어 이해라는 공통 기반을 Pre-training으로 학습 후, 태스크별로 Tuning
  • Pre-training: 방대한 데이터로 언어/코드 구조 학습 (Next Token Prediction)
  • Tuning: Pre-trained 모델을 특정 태스크에 맞게 조정

Pre-training 데이터 7:00

  • 데이터 소스: Common Crawl(월 30억 페이지), Wikipedia, Reddit, GitHub, Stack Overflow
  • 규모: 수백B ~ 수십T 토큰. GPT-3(300B), Llama 3(15T)
  • 목표: Next Token Prediction을 통해 언어와 코드의 구조 학습

FLOPs vs FLOPS 11:00

  • FLOPs (소문자 s): Floating-point Operations - 연산량 단위. LLM 학습은 ~10^25 FLOPs
  • FLOPS (대문자 S): Floating-point Operations Per Second - 연산 속도. GPU 성능 지표
  • FLOPs 추정: O(토큰 수 × 파라미터 수)

Scaling Laws 13:30

  • Kaplan et al. (2020): 모델 크기, 데이터 크기, 컴퓨팅 늘리면 성능 향상
  • Sample Efficiency: 큰 모델이 같은 토큰 수로 더 좋은 성능
  • Chinchilla Optimal: 고정 컴퓨팅에서 최적 설정 = 데이터 토큰 수 ≈ 20 × 파라미터 수
  • GPT-3의 문제: 175B 파라미터인데 300B 토큰만 학습 (Chinchilla 기준 3.5T 토큰 필요)

메모리 요구사항 20:00

  • 저장 대상: 모델 파라미터, Gradients, Optimizer States, Activations
  • Adam Optimizer: 파라미터당 12바이트 (FP32 weight + FP32 momentum + FP32 variance)
  • 예시: 7B 모델 학습에 ~84GB 필요 (단일 GPU 초과)

Data Parallelism 28:00

  • 원리: 모델을 모든 GPU에 복제, 데이터만 분할
  • 과정: 각 GPU가 미니배치로 gradient 계산 → All-Reduce로 평균 → 동일하게 업데이트
  • 장점: 구현 간단, 효과적인 배치 크기 증가
  • 단점: 모델 전체가 각 GPU 메모리에 들어가야 함

ZeRO (Zero Redundancy Optimizer) 32:00

  • ZeRO-1: Optimizer States를 GPU들이 나눠서 저장
  • ZeRO-2: + Gradients도 분할
  • ZeRO-3: + Parameters도 분할 (필요할 때 All-Gather)
  • 효과: 메모리 사용량 대폭 감소, 더 큰 모델 학습 가능

Model Parallelism 35:00

  • Tensor Parallelism: 하나의 연산(행렬곱)을 GPU들이 분할 처리
  • Pipeline Parallelism: 레이어를 GPU들에 분배 (GPU 1: Layer 1-3, GPU 2: Layer 4-6)

Flash Attention 37:00

  • GPU 메모리 구조: HBM(크지만 느림, ~수십GB) vs SRAM(작지만 빠름, ~수십MB)
  • 병목: 기존 Attention은 HBM ↔ SRAM 간 읽기/쓰기가 많음
  • 핵심 아이디어: Tiling - 작은 블록으로 나눠 SRAM에서 end-to-end 계산 후 HBM에 저장
  • Softmax 트릭: softmax([S1, S2, ...]) = [α1·softmax(S1), α2·softmax(S2), ...] (스케일링 팩터로 보정)
  • Recomputation: Activation 저장 대신 backward 시 재계산. 연산량은 늘지만 메모리 절약 + 실행 시간도 감소

Mixed Precision Training 50:00

  • 원리: Weight는 FP32로 유지, Forward/Backward는 FP16으로 수행
  • 이유: FP16에서 gradient가 너무 작으면 0으로 underflow
  • Loss Scaling: Loss에 큰 수를 곱해 gradient underflow 방지, 업데이트 시 다시 나눔
  • 효과: 메모리 절약 + 연산 속도 향상

Post-training 1:20:00

  • SFT (Supervised Fine-Tuning): 고품질 (instruction, response) 쌍으로 학습
  • RLHF (Reinforcement Learning from Human Feedback): 인간 선호도 기반 Reward Model 학습 후 PPO로 최적화
  • DPO (Direct Preference Optimization): Reward Model 없이 직접 선호도 최적화
  • 목적: Pre-trained 모델을 helpful, harmless, honest하게 조정

핵심 인사이트

  • Chinchilla Scaling Law는 '무조건 크게'에서 '효율적으로 크게'로 패러다임 전환
  • Flash Attention은 하드웨어 특성을 활용한 최적화의 좋은 예시
  • Pre-training → SFT → RLHF 파이프라인이 현대 LLM의 표준