Numerical Precision and Quantization
이 경로는 “숫자를 어떤 형식으로 저장하고 계산할 것인가”를 다룬다.
처음에는 FP32, FP16, BF16, FP8이 bit를 어떻게 나누는지 본다. 그다음 exponent가 표현 범위에, mantissa가 정밀도에 어떤 영향을 주는지 위젯으로 확인한다.
이 기반 위에서 mixed precision training, FP8 training, quantization으로 이어진다. 이후 학습 메모리, ZeRO, TP, inference quantization을 볼 때 계속 참조할 수 있는 기초 path다.
- Floating Point Formats — FP32, FP16, BF16, FP8이 sign, exponent, mantissa bit를 어떻게 나누는지 이해한다.
- Range vs Resolution — 낮은 precision format에서 표현 범위와 숫자 사이 간격이 어떻게 달라지는지 시각적으로 이해한다.
- Dtype, Memory, Throughput — dtype을 낮추면 bytes, memory bandwidth, GEMM 처리량이 어떻게 달라지는지 이해한다.
- Mixed Precision Training — 학습에서 모든 값을 낮은 precision으로 바꾸지 않고, 계산과 상태마다 precision을 다르게 쓰는 이유를 이해한다.
- Loss Scaling과 Master Weights — FP16 학습에서 작은 gradient와 작은 update가 사라지지 않도록 loss scaling과 master weights를 쓰는 이유를 이해한다.
- FP8 Training — FP8 training이 왜 빠르고 작지만 불안정성이 커지는지, E4M3/E5M2와 scaling 관점에서 이해한다.
- Quantization Basics — floating point precision에서 더 나아가 int8/int4 quantization이 scale을 이용해 값을 표현하는 기본 구조를 이해한다.