FP32 에서 BF16 으로, BF16 에서 FP8 로, 그리고 MXFP8 / MXFP4 까지 — “같은 알고리즘이 비트 폭만 바뀌어도 정확도가 무너지는 이유”를 깐다. NVIDIA 의 Paulius Micikevicius 가 십 년 넘게 여러 형식의 표준화에 직접 관여하며 쌓은 입장. dynamic range 와 precision 의 분리, outlier 처리, learning vs serving 의 다른 요구, MXFP 의 block scaling 까지를 한 그림에 넣은 학습 노트.
FP32 · TF32BF16FP8 (E4M3 · E5M2)MXFP8 · MXFP4scalingoutliernumeric standard
2017년 mixed precision 학습이 등장한 이후 — Micikevicius 자신이 첫 번째 저자였던 그 논문 — AI 영역의 성능은 비트 폭의 절반화와 함께 왔다. FP32 → FP16 → BF16 → FP8 → MXFP8 → MXFP4. 매 세대마다 같은 질문이 다시 등장한다 — “이 형식으로도 학습이 도는가?”
강의는 그 질문에 대한 NVIDIA 의 십 년 누적 답을 한 시간 안에 깐다. 자막은 실패했지만 슬라이드 PDF 가 repo 에 있어 (lecture_084/numerics-and-ai.pdf) 그림과 본문을 어느 정도 재구성할 수 있다.
numeric format 은 두 축 — dynamic range (얼마나 큰/작은 수를 표현하는가) 과 precision (이웃 두 수 사이가 얼마나 촘촘한가) 이 별도. 두 축의 trade-off 를 포맷마다 다르게 짠다.
학습 vs 추론은 다른 분포 — 학습의 gradient 는 매우 작은 수의 긴 꼬리를 가진다. 추론의 activation 은 outlier 의 분포가 다르다. 같은 형식이 둘에 맞지 않는다.
scaling 이 답의 절반 — 형식 자체가 못 표현하는 분포는 외부에서 scale 을 곱해 표현 가능 영역으로 옮긴다. 이게 mixed precision / loss scaling / per-tensor scaling / block scaling 의 시리즈.
새 형식은 hardware support 가 함께 와야 의미 — 형식만 정의해도 instruction 이 없으면 실용적 가치 없음. NVIDIA 의 Tensor Core 변천이 이 흐름.
“숫자 형식의 역사는 ‘얼마나 작은 형식까지 학습이 도는가’ 의 추적사다 — 그리고 매번 답은 ‘외부 scaling 의 도움을 받아서’.”Paulius Micikevicius · 재구성
§ 02numeric format 의 군· FP32 / TF32 / BF16 / FP8 / MXFP
현재 ML 에서 만나는 모든 floating-point 형식의 한 표
한 그림에 비트 분포까지 — sign, exponent, mantissa — 박아두면 형식의 차이가 직관에 들어온다. 강의의 첫 장이 정확히 이 표였을 가능성이 높다.
FIG · floating-point 형식 한 표sign · exp · mantissa 의 비트 분포
formatS | exp | mantissabitsrangeprec
FP32IEEE 754 singleS8 exp23 mantissa32±10³⁸~7 dec
TF32NVIDIA AmpereS8 exp10 mant19±10³⁸~3 dec
BF16brain floatS8 exp7 mant16±10³⁸~2 dec
FP16IEEE halfS5 exp10 mantissa16±6.5×10⁴~3 dec
FP8 E4M3forward · activationS4 exp3 m8±448~1 dec
FP8 E5M2backward · gradientS5 exp2 m8±5.7×10⁴~½ dec
MXFP8block scaledS4 exp3 m8 + s/32block scale~1 dec
MXFP4weight-only · servingS2 exp1m4 + s/32block scale∼3 bit
한 줄로 정리되는 사실 두 가지 — 비트 수가 줄면 mantissa(precision) 가 먼저 줄고 exponent(range) 는 hardware 가 견디는 한 유지한다. 그게 BF16 이 FP16 보다 학습에 더 잘 맞는 이유. MXFP 시리즈는 32 element 마다 한 개의 shared exponent (block scale) 로 range 를 외부화한다.
이름 조금 정리
E4M3 = exponent 4 비트 + mantissa 3 비트. E5M2 = exponent 5 + mantissa 2. 둘 다 sign 1 비트 포함 8 비트. 이름이 그대로 비트 분포다. 이름의 “M” 은 mantissa(가수). 이걸 한 번 손에 박아두면 새 형식이 등장해도 즉시 파싱된다.
§ 03dynamic range vs precision· 두 축의 분리
같은 8 비트라도 E4M3 와 E5M2 는 다른 일을 한다
numeric format 의 두 축을 개념적으로 분리하면 — “왜 forward 는 E4M3, backward 는 E5M2 인가” 가 한 줄로 잡힌다.
FIG · 형식별 dynamic range 의 자리로그 스케일 막대
두 색의 띠가 “학습 안에서 실제로 등장하는 값” 의 대략적 분포. gradient 는 작은 쪽으로 길고, activation 은 가운데 쪽으로 모인다. 그래서 backward 는 더 넓은 range 의 E5M2, forward 는 더 정확한 E4M3.
이 분리가 명확해지면 — 형식 선택이 “감” 이 아니라 분포에 맞춤이라는 게 보인다. activation 의 분포가 좁으면 precision 이 더 중요하고, gradient 의 분포가 길면 range 가 더 중요하다. 같은 신경망 안에서도 두 자리가 다르게 다뤄진다.
왜 BF16 이 학습에 좋았나
BF16 의 exponent 8 비트는 FP32 와 같다. 즉 같은 dynamic range. mantissa 만 23 → 7 비트로 줄였다. 학습의 gradient 가 작은 수를 많이 가지므로 — range 보존이 결정적이었다. 그래서 FP16 보다 BF16 이 학습에서 “loss scaling” 같은 부가 기법 없이도 잘 도는 자리.
§ 04학습/추론별 형식 선택· forward · gradient · activation
같은 네트워크의 다른 자리에 다른 형식이 들어간다
현대 mixed precision 의 표준 레시피는 — 한 모델 안에 4–5 가지 dtype 이 동시에 존재한다는 사실을 받아들이는 것에서 시작.
이 배치가 “Hopper FP8 학습” 의 표준 레시피. master weight 와 accumulator 는 항상 높은 정밀도, forward/backward 의 입력은 FP8, gradient 는 더 넓은 E5M2. 같은 모델 안에 5 종류의 dtype.
추론은 또 다르다. weight 가 정적이므로 더 공격적인 양자화가 가능 (FP4/MXFP4 의 자리). activation 도 calibration set 의 분포로 한 번 더 보정된다. 학습 vs 서빙은 다른 numerical 디자인이라는 입장이 중요.
“학습은 가장 ‘예의 바른’ dtype 을 쓴다 — 분포가 라이브로 변하기 때문. 서빙은 가장 공격적인 dtype 을 쓴다 — 분포가 고정.”강의 재구성
§ 05outlier 처리· scaling · clipping · channel-wise
“형식이 못 표현하는 값” 을 형식 밖에서 다루는 도구들
FP8 의 ±448 이 작아 보이지만, activation 의 outlier 가 이걸 쉽게 넘는다. 한 채널의 한 값이 분포의 중앙값보다 100× 클 때, 같은 scale 을 적용하면 나머지 99% 가 underflow 되어 0 으로 떨어진다. 이 상황의 도구들.
사례 1 · activation outlier 의 분포
현상
한 hidden_dim 차원의 1–5% 가 나머지보다 100× 큰 값
LLaMA / GPT 류 LLM 에서 거의 모든 layer 의 activation 에 등장. SmoothQuant, LLM.int8() 의 출발점이 이 관찰.
처치
per-channel scaling + outlier 만 따로 보관
channel 별 다른 scale 을 적용해 outlier 의 영향을 격리. 또는 outlier 만 FP16 으로 따로 계산.
사례 2 · gradient 의 long tail
현상
학습 후반 gradient 의 분포가 매우 작은 쪽으로 long tail
FP8 E5M2 의 minimum subnormal 이하의 값이 많아져 underflow.
처치
loss scaling — 전체 loss 에 큰 상수 곱
원래의 mixed precision 학습 핵심 기법. gradient 분포 전체를 형식의 표현 가능 영역으로 끌어올림.
사례 3 · MXFP 의 block scale
현상
FP4 의 표현력이 너무 제한적
2 bit exponent + 1 bit mantissa 로는 분포 다양성을 다 못 받음.
처치
32 element 단위 shared scale (MX 형식)
block 마다 별도의 scale 을 두고, 안의 각 값은 4 비트로만 표현. range 외부화 + 인접 값들의 분포 차이 흡수.
강의에서 Paulius 가 강조했을 입장 — “형식이 모든 분포를 다 받게 디자인되지 않았다. 외부 scaling 이 형식 디자인의 일부”. mixed precision 의 본질은 결국 형식 + scale 의 조합으로 봐야 한다.
scale 의 granularity
한 tensor 에 한 scale (per-tensor) 부터, 한 block 에 한 scale (MX, 32 element), 한 row 에 한 scale (per-row), 한 element 에 한 scale (FP32 그 자체) — 이 spectrum 위에서 trade-off. 더 잘게 쪼갤수록 정확하지만 메모리/compute overhead 가 커진다. 산업의 합의가 32-element block 으로 모이는 중.
§ 06hardware 지원 변천· Volta → Hopper → Blackwell
형식 디자인은 instruction 디자인과 함께 간다
Volta (V100, 2017)
첫 Tensor Core. FP16 곱 + FP32 누적의 mixed precision 학습 시작점. mixed precision 논문(Micikevicius 외) 도 이 시점.
Turing (T4, 2018)
INT8 / INT4 추가. 추론 양자화의 본격 시작.
Ampere (A100, 2020)
BF16, TF32 도입. TF32 가 “FP32 같은 코드를 자동으로 빠르게” 만든 자리. structured sparsity 도 이 시점.
Hopper (H100, 2022)
FP8 (E4M3, E5M2) 도입. Transformer Engine. FP8 학습이 처음으로 hardware 차원에서 자연스러워진 자리.
Blackwell (B200, 2024)
MXFP8 / MXFP6 / MXFP4 추가. block scaling 이 hardware 차원에서 native. FP4 학습/서빙의 시대.
다음 세대 추정
FP4 의 추가 변형, log-format, neural-block 같은 더 공격적 형식. AMD MI300 / Intel Gaudi 도 같은 흐름. 표준화가 따라잡는 게 도전.
강의에서 Paulius 가 직접적으로 한 입장 — “형식 디자인은 hardware 디자인의 한 변수다. 둘이 함께 가지 않으면 형식의 정의는 종이 위 그림에 머문다.” NVIDIA 의 dtype 변천이 그 사실의 가장 분명한 사례.
“BF16 은 Google 이 정의했지만 NVIDIA Ampere 가 instruction 으로 구현해서 산업 표준이 됐다 — 형식만으로는 부족하다.”강의 재구성
§ 07정확도 검증· loss curve · downstream eval
“이 형식이 같은 결과를 주는가” 의 측정
새 형식의 채택 여부는 결국 학습 결과가 같은가 로 결정된다. NVIDIA 가 새 dtype 을 산업에 풀 때마다 항상 따라오는 검증 묶음.
loss curve match
FP32 baseline 과 FP8/MXFP4 의 loss 가 학습 전 구간에서 겹치는지. 발산하면 형식이 모자란 것.
final loss
학습 끝점의 loss 가 baseline 의 어느 정도 안에 들어가는지. 통상 0.5–1% 안 같은 기준.
downstream eval
MMLU, HellaSwag 같은 벤치마크 점수. loss 만으로는 안 보이는 capability 손상이 잡힘.
gradient norm 안정성
gradient norm 의 spike, NaN 빈도. 형식이 모자라면 spike 가 자주 등장.
activation distribution drift
학습 진행에 따라 activation 의 분포가 드리프트하는지. drift 가 크면 scale 을 자주 다시 잡아야 함.
scale update 빈도
amax 추적의 update 가 얼마나 자주 일어나는지. 너무 자주면 형식이 분포에 맞지 않다.
검증의 시간 비용
새 dtype 의 검증에는 — 한 번의 “real-scale” 학습이 필요하다. 작은 모델에서 잘 도는 게 큰 모델에서도 그대로 가지는 않는다 (특히 outlier 분포). 그래서 NVIDIA 의 새 dtype 발표는 항상 “수십~수백 B 모델로 검증” 이 함께 온다.
§ 08표준화 노력· OCP MX / IEEE
“같은 형식” 이 다른 회사 hardware 에서 같은 비트로 다뤄지게 하는 일
numeric format 의 가치는 여러 hardware 가 같은 비트 패턴을 같은 의미로 다루는 데서 온다. 표준화가 안 되면 — 같은 “FP8” 인데 NVIDIA / AMD / Intel 의 비트가 다르게 해석되는 fragmentation 위험.
IEEE 754
FP32, FP64, FP16 의 표준. 1985 년 제정. ML 영역의 모든 형식이 이 위에서 변형.
FP8 OCP / NVIDIA-ARM-Intel
2022 년 NVIDIA, ARM, Intel 의 공동 정의. E4M3 / E5M2 의 비트 표현 합의. Paulius 가 직접 관여.
OCP Microscaling (MX)
Open Compute Project 의 microscaling 형식 (MXFP8, MXFP6, MXFP4, MXINT8). 32 element block + shared scale 의 정의.
block scaling 의 표준
한 block 의 크기 (32 가 합의), scale 의 형식 (E8M0 = unsigned exponent), 누적 / 변환 동작의 정의.
사실상 표준 vs 공식 표준
PyTorch / TensorFlow 같은 프레임워크가 dtype 을 어떻게 노출하느냐가 사실상의 표준이 되기도 함.
NVIDIA 의 입장
새 형식은 hardware 출시 전에 OCP / IEEE 같은 표준 기구로 가는 게 산업 fragmentation 을 막는다는 입장.
§ 09미래 — FP4, MXFP4· block scaling 의 한계
“4 비트로 학습한다” 의 가능성과 그 한계
2024–2025 산업의 가장 활발한 자리. Blackwell 의 MXFP4 가 hardware 차원에서 실현되면서 — “FP4 로 학습이 도는가” 가 이론에서 산업 검증으로 옮겨갔다.
현재 시점 합의된 사실들 (확인 필요).
MXFP4 추론은 production 가능 — weight only quantization 형태. 정확도 손실 0–2% 안.
MXFP4 학습은 큰 모델에서 가능, 작은 모델에서 까다로움 — outlier 의 영향이 작은 모델에서 더 크게 잡힘.
activation 도 MXFP4 로 가는 길이 더 어렵다 — outlier 처리가 weight 보다 동적이어야 함.
강의의 정확한 데모와 수치 — 자막이 실패해 슬라이드의 그림과 표만 봤다. 실제 발화에서 어떤 수치(loss 차이, throughput 비율) 를 강조했는지 — 영상 직접 확인.
MXFP4 학습의 현재 상태 — Blackwell 의 MXFP4 가 production 학습에 어디까지 들어갔는가. 2025–2026 NVIDIA 의 새 발표 추적.
scale update 빈도의 best practice — amax history window 의 길이, scale update 의 frequency 가 모델 크기 / dtype 에 따라 어떻게 다른가.
activation outlier 의 모델별 분포 — LLaMA / Qwen / Mistral / GPT 류의 outlier 분포 비교. SmoothQuant, GPTQ 의 기법별 효과.
학습 / 서빙의 dtype 전환 — 학습은 FP8, 서빙은 MXFP4 로 가는 표준 파이프라인이 있는가.
AMD / Intel hardware 의 dtype 매핑 — 표준화가 어디까지 갔는가. 같은 “FP8” 비트가 hardware 사이에서 같은 의미인가.
검증 메모
이 노트의 비트 분포와 numeric range 값들은 표준 자료(IEEE 754, OCP MX 명세, NVIDIA 문서) 기반. 강의 안에서 Paulius 가 강조한 정확한 입장과 수치는 영상을 다시 봐야 보강 가능. § 04 의 5-dtype 학습 레시피는 Hopper FP8 학습의 일반적 형태로 정확하나, 강의의 시점에 따라 권장 자리가 더 좁아졌을 수 있다.