경량화 시리즈 #1: 딥러닝 데이터타입
INT8, FP16, BF16, FP8(E4M3/E5M2), FP4: 딥러닝 모델 카드에 쏟아지는 데이터타입들이 실제로 무슨 뜻인지, 비트가 어떻게 숫자로 해석되는지 하나씩 뜯어봅니다. 비트를 직접 클릭하면 계산식과 값이 실시간으로 바뀌는 위젯과 함께.
경량화 시리즈 #2: 뉴럴넷 양자화
학습된 32비트 신경망 가중치를 K-Means(비균등)와 Linear(균등, 정수 연산) 두 방식으로 2~8비트까지 줄여봅니다. 아핀 매핑 r=S(q−Z)부터 압축비·정확도 트레이드오프까지, MNIST MLP로 직접 코드를 돌려 측정한 plot과 함께.
경량화 시리즈 #3: 뉴럴넷 프루닝
1989년 LeCun의 Optimal Brain Damage에서 시작해, 가중치를 잘라내(pruning) 모델을 줄이는 이야기. 무엇을·어떻게·얼마나 자르나, 재학습으로 95%까지 잘라도 버티는 압축의 놀라움, 그리고 하드웨어(NVIDIA 2:4)가 받쳐줘야 실이득이라는 것까지, MNIST MLP로 직접 측정한 plot과 함께.
경량화 시리즈 #4, 저비트 양자화: 아웃라이어와의 싸움
FP4는 표현값이 15개뿐인데 최신 GPU는 어떻게 4비트로 추론할까요? 저비트 양자화를 무너뜨리는 범인은 아웃라이어입니다. outlier 하나가 층을 통째로 지우는 실험부터, 그룹 양자화(MXFP4)·KL clipping·AdaRound·Hadamard 회전이라는 네 가지 처방까지, 2비트에서 53%로 무너진 정확도가 97%로 돌아오는 실험과 함께 코드로 하나씩 검증합니다.
경량화 시리즈 #5, QAT: 학습으로 양자화 오차를 되돌리기
PTQ는 큰 모델엔 통하지만 작은 모델·저비트에서 무너집니다(2비트에서 13.6%로 붕괴). 해법은 학습 자체에 양자화를 넣는 QAT입니다. forward에 fake quantization을 끼우고, round의 gradient가 0인 문제를 STE(Straight-Through Estimator)로 뚫습니다. round는 미분이 0인데 어떻게 학습이 될까? MNIST MLP로 직접 측정한 plot과 함께.