FP4
FP4 양자화가 AI 모델을 압축하고 메모리 사용량을 줄이며 추론을 가속하는 방법을 알아보세요. NVFP4, MXFP4, FP8, INT4 및 FP16 형식을 비교해 보세요.
FP4는 모델 양자화를 통해 AI 모델을 압축하고 가속하는 데 사용되는 4비트 부동 소수점 형식 제품군입니다. 일반적으로 각 값을 부호 비트 1개, 지수 비트 2개, 가수 비트 1개로 표현하며, 이를 E2M1이라고 합니다. FP16과 비교하면 FP4는 메모리 트래픽과 스토리지 사용량을 크게 줄여 지원되는 GPU가 대규모 모델을 더 빠르게 처리할 수 있도록 합니다. NVIDIA의 NVFP4 저정밀도 형식은 Blackwell 세대 하드웨어를 위해 설계된 대표적인 구현입니다. (developer.nvidia.com)
FP4 작동 방식#
가능한 비트 패턴이 16개뿐이므로 일반적인 FP4는 신경망에서 나타나는 넓은 값의 범위를 정확하게 표현할 수 없습니다. 따라서 최신 구현에서는 텐서를 작은 블록으로 나누고 각 블록에 공유 스케일을 저장합니다. 예를 들어 NVIDIA의 NVFP4 양자화 방식은 16개의 E2M1 값으로 구성된 블록을 사용하는 반면, 공개된 OCP Microscaling Formats 사양은 마이크로스케일링 메타데이터가 포함된 MXFP4를 정의합니다.
계산 중에는 추론 엔진이 더 높은 정밀도의 값을 양자화하고, 지원되는 행렬 연산을 FP4로 수행한 다음, 필요한 경우 더 높은 정밀도로 결과를 반환합니다. 현재 TorchAO NVFP4 추론 지원은 가중치와 활성화에 동적 활성화 양자화와 이중 스케일링을 사용합니다. (docs.nvidia.com)
관련 형식과 비교한 FP4#
- FP16 또는 하프 정밀도: 훨씬 더 넓은 수치 범위를 제공하고 일반적으로 배포가 더 쉽지만, 값당 4배 많은 비트를 사용합니다.
- FP8: 일반적으로 FP4보다 더 높은 정확도와 안정적인 학습을 제공하지만, 스토리지가 약 2배 더 필요합니다.
- BF16: 큰 지수 범위 덕분에 오버플로 위험이 줄어들어 학습에 흔히 사용됩니다. 2025년 FP4 All the Way 연구는 신중하게 스케일링한 FP4 학습이 BF16 성능에 근접할 수 있음을 보여주었습니다.
- INT4: 부동 소수점 지수 대신 정수 레벨을 사용합니다. FP4는 서로 다른 크기의 값을 더 자연스럽게 표현할 수 있는 반면, INT4는 가중치 전용 압축에 효과적일 수 있습니다.
- NVFP4와 MXFP4 비교: NVFP4는 더 작은 블록과 더 높은 정밀도의 스케일을 사용하므로, 일반적으로 메타데이터 비용을 소폭 증가시키면서 정확도를 향상합니다.
FP4는 관련이 없는 AMD FP4 프로세서 소켓을 가리키기도 합니다. AI에서 FP4는 4비트 부동 소수점 연산을 의미하며, 구형 노트북 CPU 패키지를 의미하지 않습니다.
실제 적용 사례#
-
생성 이미지 추론: NVIDIA는 RTX 50 Series GPU에서 FP4 이미지 생성을 시연하여 메모리 사용량을 줄이고 생성형 AI에 사용되는 확산 워크로드를 가속했습니다.
-
대규모 모델 학습 및 서빙: Blackwell 시스템은 대규모 언어 모델의 처리량을 향상하기 위해 MLPerf 학습에서 NVFP4를 사용해 왔습니다. FP4는 실시간 추론이 필요한 미래의 메모리 병목 컴퓨터 비전 시스템에도 유사한 이점을 제공할 수 있습니다. (developer.nvidia.com)
FP4 효과적으로 사용하기#
2026년 7월 기준으로 하드웨어 가속 FP4 행렬 연산을 사용하려면 NVIDIA Blackwell 또는 그 이후 세대의 GPU가 필요합니다. H100은 Hopper 기반이므로 네이티브 FP4 가속을 제공하지 않습니다. 개발자는 TensorRT 하드웨어 지원 매트릭스를 통해 호환성을 확인하고, 변환 후 정확도를 검증해야 하며, 학습 후 양자화로 인해 성능 저하가 과도하게 발생하는 경우 TorchAO QAT 워크플로를 사용한 양자화 인식 학습을 고려해야 합니다. (docs.nvidia.com)
Ultralytics는 현재 YOLO26에 대해 프로덕션 환경에 바로 사용할 수 있는 FP16 및 INT8 내보내기를 제공합니다. 이와 유사한 워크플로는 최적화된 TensorRT 엔진을 생성합니다:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
engine = model.export(format="engine", quantize=16)
results = YOLO(engine).predict("https://ultralytics.com/images/bus.jpg")Ultralytics TensorRT 통합에서는 지원되는 정밀도 옵션을 설명하며, YOLO 벤치마크 모드를 사용하면 정확도와 지연 시간을 비교할 수 있습니다. 실험적인 FP4 배포의 경우 TensorRT-RTX 정밀도 모범 사례와 Micro-Rotated GPTQ 같은 형식별 기법을 따르십시오. FP4가 잘 최적화된 INT4 또는 FP8 워크플로보다 자동으로 더 정확하거나 빠른 것은 아니기 때문입니다.






