AI VIDEO BRIEFING
NVFP4 4비트 LLM 사전학습: 무편향 양자화와 Quartet 2가 오차를 줄인 방법
16비트에서 4비트로 내려가면 행렬 곱 처리량은 네 배가 되지만 양자화 오차가 학습을 망친다. GPU MODE 강연에서 연구진이 무작위 회전으로 무편향 그래디언트를 얻어낸 NVFP4 학습 기법과 커널 구현을 공개했다.

핵심 메시지
쉽게 이해하기
저정밀 학습을 하려는 이유는 데이터시트에 그대로 적혀 있다. 엔비디아 블랙웰 같은 최신 가속기는 64비트부터 4비트까지 넓은 범위의 데이터 형식을 지원하고 각 형식마다 전용 하드웨어를 붙여 놓았는데, 이 연산들의 최대 처리량이 비트폭에 대략 반비례한다. 16비트에서 4비트로 내려가면 행렬 곱이 대략 네 배 빨라진다는 뜻이라, 더 낮은 정밀도로 학습하고 추론할 수 있다면 그만큼 싸게 모델을 만들 수 있다.
문제는 정밀도를 낮출 때마다 새로운 요령이 필요하다는 점이다. FP32에서는 그냥 계산하면 됐지만 FP16에서는 손실에 상수를 곱해 역전파하는 그래디언트 스케일링과 마스터 가중치·옵티마이저 통계를 고정밀로 유지하는 관행이 필요했고, DeepSeek이 처음 도입한 FP8 종단 학습에서는 값을 블록 단위로 묶어 스케일을 따로 두는 기법이 들어갔다. 이 아이디어는 하드웨어 제조사들이 함께 표준화한 마이크로스케일링 형식으로 굳어져, 16~32개 값마다 하나씩 스케일을 두는 훨씬 촘촘한 구조가 됐다. 엔비디아의 NVFP4는 여기서 한 단계 더 나아가 블록·스케일에 전역 스케일을 더한 3단계 구조를 쓰고, 블록 크기를 16으로 줄이며 스케일을 E4M3 형식의 FP8로 두어 범위만 늘리는 것이 아니라 정밀도까지 확보한다. 다만 이 형식은 현재 엔비디아 GPU에서만 지원된다.
4비트 영역에서 결정적인 성질은 무편향성이다. 역전파의 매 양자화가 평균적으로 원래 값을 되돌려준다면 그 성질이 모델 전체의 그래디언트 추정에 그대로 상속되고, 최적화 이론이 말하듯 수렴에 유리하다. 엔비디아 레시피는 역방향에 확률적 반올림을 넣어 이를 확보했고, 이 요소를 빼면 고정밀 학습과의 손실 격차가 거의 두 배로 벌어진다는 실험을 함께 보여줬다. 그런데 발표자들이 지적한 대가가 있다. 정규분포를 양자화해 보면 최근접 반올림 대신 확률적 반올림을 쓰는 순간 양자화 오차 자체가 두 배 넘게 커진다. 무편향은 공짜가 아니라 비싼 성질인 것이다.
Quartet 2의 착안은 무편향의 출처를 바꾸는 것이다. 벡터를 무작위로 회전시킨 뒤 양자화하고 되돌리면, 모든 회전에는 오차가 정확히 반대 방향으로 나오는 짝이 존재하므로 평균을 내면 양자화된 벡터가 원래 벡터와 같은 직선 위에 놓인다. 여기에 분산 평균 추정 연구에서 제안된 접선 재투영, 즉 회전된 공간에서 벡터를 접선 위로 오도록 보정 계수를 곱해 주면 완전한 무편향이 된다. 남은 문제는 1에 가까운 이 보정 계수를 어디에 담느냐인데, FP4도 FP8도 몇 퍼센트 차이를 담기엔 너무 거칠고 전역 스케일은 하나뿐이다. 연구진의 해법은 보정 계수를 FP8 스케일 쪽에 확률적 반올림으로 녹여 넣는 것이다. 모든 원소마다가 아니라 16개마다 한 번, 그것도 오차가 한 자릿수 작은 FP8 수준에서만 확률적 반올림을 쓰기 때문에 무편향을 유지하면서 오차는 기존 방식보다 두 배 이상 낮아진다.
검증 범위가 넓다. 3천만~2억 파라미터 규모의 소규모 실험에 더해 nanochat 설정의 5억·20억 파라미터 모델, OLMo 저장소의 30억·70억 파라미터 모델까지 돌렸고, 아키텍처도 옵티마이저도 데이터셋도 서로 다른데 고정밀 사전학습과의 성능 격차가 일관되게 약 20% 줄었다. 후반부에서 커널 담당자는 역양자화·회전·재양자화·보정을 하나로 묶은 융합 커널을 해부했다. 하다마드 행렬이 크로네커 곱 구조라는 점을 이용해 128×128 밀집 곱 대신 8번의 곱과 덧셈·뺄셈 조합으로 줄였고, 텐서 코어가 만들어 놓은 스레드 배치를 그대로 따르는 대신 “한 스레드가 가진 16개 값이 곧 한 양자화 그룹”이라고 재해석해 워프 셔플과 잘게 쪼개진 쓰기를 통째로 없앴다. 이 재해석은 회전 행렬에 치환 행렬을 곱한 것과 같아 무작위 회전이라는 성질을 해치지 않는다.
주요 인사이트
- 정밀도를 낮출 때 진짜로 지켜야 하는 것은 값의 정확도가 아니라 추정의 무편향성이다. 부동소수점은 어차피 근사이므로 완벽한 무편향은 불가능하고, 오차가 BF16 수준에 대응할 정도로만 편향되지 않으면 충분하다는 발표자들의 정리가 이 관점을 잘 보여준다.
- 회전 크기 128은 이론이 아니라 양쪽에서 밀어붙인 결과다. 16이나 32로 줄이면 품질이 눈에 띄게 나빠지고, 128보다 키우면 정확도는 더 좋아지지 않으면서 하드웨어 비용만 오른다. 게다가 NVFP4 형식이 이미 16개마다 스케일을 두고 있다는 점이 결정적이다. 보정 계수를 담을 자리를 형식이 공짜로 제공하는 셈이라, 기존 방식이라면 추가 비용이었을 것이 여기서는 비용 없이 얻어진다.
- 이 커널은 신경망 학습에서 보기 드물게 텐서 코어 병목도 메모리 병목도 아니다. 입출력이 FP4로 아주 작은 대신 중간에 FP4↔BF16 변환이 겹겹이 쌓여, 프로파일에서 ALU 약 50%·FMA 약 40%에 비해 텐서 코어와 메모리 대역폭 이용률은 10% 수준에 머문다.
- “빠른 수학” 최적화의 위험을 보여주는 실제 사례가 나온다. 0보다 큰지 검사한 뒤 역수를 취했는데도 학습이 NaN으로 터졌는데, 원인은 근사 역수 명령이 서브노멀 값을 0으로 내려버려 사실상 0으로 나누게 된 것이었다. 코드는 빨라지기 전까지는 옳았다.
- 속도는 아직 숙제다. 같은 규모에서 BF16 대비 종단 속도 향상이 25~35% 수준에 그치는데, 커널 실행 오버헤드와 컴파일러 최적화, 그리고 행렬 곱마다 회전을 새로 뽑는 현재 선택을 손보면 더 나아갈 여지가 있다고 본다.
자주 묻는 질문
왜 굳이 4비트로 학습하려고 하나요?
최신 가속기에서 행렬 곱의 최대 처리량이 데이터 비트폭에 대략 반비례하기 때문입니다. 16비트에서 4비트로 내려가면 행렬 곱이 대략 네 배 빨라지고, 그만큼 학습과 추론 비용이 내려갑니다.
NVFP4와 MXFP4는 무엇이 다른가요?
MXFP4는 오픈 컴퓨트 프로젝트가 표준화한 마이크로스케일링 형식으로 32개 값마다 범위 확장용 스케일을 둡니다. NVFP4는 블록 크기를 16으로 줄이고 스케일을 E4M3 FP8로 두어 정밀도까지 확보하며, 그 위에 전역 스케일을 더한 3단계 구조입니다. 대신 현재 엔비디아 GPU에서만 지원됩니다.
확률적 반올림을 왜 대체하려고 했나요?
확률적 반올림은 무편향을 주지만 대가가 큽니다. 정규분포를 양자화하는 실험에서 최근접 반올림 대신 확률적 반올림을 쓰면 양자화 오차가 두 배 넘게 늘어납니다. Quartet 2는 무편향을 무작위 회전에서 얻고 확률적 반올림은 FP8 스케일에만, 그것도 16개마다 한 번만 적용해 이 대가를 줄입니다.
장기 학습에서 불안정해지지는 않나요?
발표자들은 현재까지 이 방법의 붕괴 지점을 찾지 못했고, 거의 동일한 방법으로 1조 토큰 규모를 돌린 사례에서도 문제가 없었다고 전했습니다. 다만 실험이 비교적 깨끗한 데이터로만 이뤄졌다는 단서를 달았고, 손실 격차가 학습 후반 쿨다운 구간에서 더 벌어지는 경향은 관찰됐습니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗