Robocikowo>ROBOCIKOWO
Wnioskowanie

MXFP4

2023AktywnyOpublikowano: 29 września 2026Aktualizacja: 29 września 2026Opublikowany
MXFP4 to 4-bitowy format niskiej precyzji ze standardu OCP Microscaling (MX): elementy FP4 (E2M1) współdzielą jeden wykładnik potęgi dwójki (E8M0) na blok 32 wartości.
Kluczowa innowacja
Umożliwia praktyczne użycie 4-bitowej precyzji zmiennoprzecinkowej dzięki współdzielonemu wykładnikowi potęgi dwójki (E8M0) na blok 32 elementów, co oddaje lokalne zmiany rzędu wielkości i pozwala uruchamiać duże modele przy ok. 4,25 bita na parametr.
Kategoria
Wnioskowanie
Poziom abstrakcji
Wzorzec
Poziom operacji
ModelTreningInferencja
Zastosowania
Inferencja dużych modeli językowych o niskim zużyciu pamięciKwantyzacja wag warstw Mixture-of-Experts (np. gpt-oss)Uruchamianie modeli na sprzęcie konsumenckim i brzegowymRedukcja przepustowości pamięci i kosztu serwowania

Jak działa

Tensor jest dzielony na bloki 32 kolejnych elementów. Dla każdego bloku wyznaczany jest jeden współdzielony współczynnik skali w formacie E8M0 (8-bitowy wykładnik potęgi dwójki), zwykle na podstawie maksymalnej wartości bezwzględnej w bloku. Elementy są następnie skalowane i zapisywane w 4-bitowym formacie FP4 E2M1, który koduje 16 wartości (0, ±0,5, ±1, ±1,5, ±2, ±3, ±4, ±6). Mnożenia macierzy wykonują rdzenie Tensor, które natywnie mnożą wartości FP4 i uwzględniają współczynniki blokowe, a akumulacja odbywa się w wyższej precyzji. Ze względu na skrajnie niską precyzję FP4, jakość silnie zależy od doboru współczynnika skali i algorytmu zaokrąglania.

Rozwiązany problem

Klasyczna kwantyzacja 4-bitowa z jednym współczynnikiem na tensor traci zbyt dużo dokładności przy tak małej liczbie bitów. MXFP4 przydziela osobny współczynnik skali każdemu 32-elementowemu blokowi, co pozwala drastycznie zmniejszyć zużycie pamięci i przepustowości (np. uruchomić model MoE na jednym GPU) przy akceptowalnej utracie jakości.

Komponenty

Blok mikroskalowania (32 elementy)Jednostka grupowania dla wspólnego skalowania.

Grupa 32 kolejnych wartości tensora dzielących jeden współczynnik skali.

Współdzielony wykładnik skali (E8M0)Skalowanie zakresu wartości bloku przy niskim koszcie sprzętowym.

8-bitowy wykładnik bez mantysy reprezentujący współczynnik skali jako potęgę dwójki dla całego bloku.

Element FP4 (E2M1)Reprezentacja pojedynczych elementów po przeskalowaniu.

4-bitowa wartość zmiennoprzecinkowa: 1 bit znaku, 2 bity wykładnika, 1 bit mantysy; koduje 16 poziomów, maksimum ±6.

Implementacja

Pułapki implementacyjne
Dobór współczynnika skali E8M0 (tylko potęgi dwójki)Wysoka

Współdzielony współczynnik skali może przyjmować wyłącznie potęgi dwójki. Wyznaczanie go z maksimum bezwzględnego bloku i zaokrąglanie potrafi marnować część zakresu dynamicznego oraz zwiększać błąd kwantyzacji; jakość silnie zależy od strategii doboru skali i zaokrąglania elementów.

Rozwiązanie:Stosować staranne kalibrowanie skali (np. wyszukiwanie optymalnej potęgi dwójki) oraz zaawansowane zaokrąglanie (stochastic rounding / round-to-nearest-even).
Skrajnie niska precyzja FP4 (16 poziomów, maks. ±6)Wysoka

FP4 E2M1 koduje tylko 16 wartości, więc kwantyzacja wszystkich wag i aktywacji zwykle degraduje jakość. W praktyce (np. gpt-oss) do MXFP4 kwantyzuje się głównie wagi warstw Mixture-of-Experts, a wrażliwe warstwy pozostawia w wyższej precyzji.

Rozwiązanie:Kwantyzować selektywnie (mixed precision): tylko odporne warstwy (np. MoE), pozostawiając embeddingi, normalizacje i warstwy wrażliwe w BF16/FP16/FP8.
Brak natywnego wsparcia poza NVIDIA BlackwellŚrednia

Natywne mnożenia MXFP4 są dostępne dopiero w rdzeniach Tensor architektury Blackwell. Na starszym sprzęcie MXFP4 trzeba dekwantyzować lub emulować, co znosi przewagę przepustowości i może spowolnić inferencję.

Rozwiązanie:Na sprzęcie bez natywnego wsparcia dekwantyzować wagi do BF16/FP16 przy ładowaniu albo używać dedykowanych kerneli (np. Triton) świadomych formatu.

Ewolucja

Oryginalny paper · 2023 · arXiv 2023 (OCP Microscaling Formats) · Bita Darvish Rouhani
Microscaling Data Formats for Deep Learning
Bita Darvish Rouhani, Ritchie Zhao, Ankit More, Mathew Hall
2023
Specyfikacja OCP MX v1.0 definiuje MXFP4
Punkt przełomowy

Konsorcjum OCP (AMD, Arm, Intel, Meta, Microsoft, NVIDIA, Qualcomm) publikuje standard MX, definiujący m.in. 4-bitowy format MXFP4 (E2M1) ze skalą E8M0 na blok 32 elementów.

2024
Natywne wsparcie MXFP4 w rdzeniach Tensor NVIDIA Blackwell
Punkt przełomowy

Architektura NVIDIA Blackwell wprowadza sprzętowe wsparcie mikroskalowania (MXFP8, MXFP6, MXFP4) bezpośrednio w rdzeniach Tensor.

2025
OpenAI wydaje gpt-oss z wagami MoE w MXFP4
Punkt przełomowy

OpenAI publikuje otwartowagowe modele gpt-oss-20b i gpt-oss-120b z natywną kwantyzacją MXFP4 wag Mixture-of-Experts, dzięki czemu 20b mieści się w 16 GB pamięci, a 120b na pojedynczym GPU 80 GB.

Hiperparametry (konfigurowalne osie)

Rozmiar blokuKrytyczna

Liczba elementów dzielących jeden współczynnik skali. W standardzie MX ustalona na 32.

32Wartość zdefiniowana w OCP MX v1.0.
Format elementuKrytyczna

Format elementu w MXFP4 to FP4 E2M1 (2 bity wykładnika, 1 bit mantysy).

E2M1Jedyny wariant elementu dla FP4 w standardzie MX.
Format skaliWysoka

Format współdzielonego współczynnika skali; w MX to E8M0 (potęgi dwójki).

E8M08-bitowy wykładnik bez mantysy.

Złożoność obliczeniowa

Złożoność przestrzenna: ~4 bity/element + 8 bitów na 32 elementy (E8M0).

Wąskie gardło obliczeniowe

Przepustowość pamięci i dekwantyzacja

Głównym celem MXFP4 jest odciążenie przepustowości i pojemności pamięci dzięki 4-bitowemu przechowywaniu wag. Wąskie gardło przesuwa się ku przepustowości arytmetycznej rdzeni Tensor oraz — na sprzęcie bez natywnego wsparcia — ku kosztowi dekwantyzacji bloków przy każdym użyciu.

Zależy od
Natywne wsparcie sprzętowe (Blackwell)Obsługa skalowania blokowego

Paradygmat wykonania

Tryb główny
Gęsty

MXFP4 to format numeryczny stosowany w mnożeniach macierzy na rdzeniach Tensor; skalowanie działa na poziomie bloku, a akumulacja odbywa się w wyższej precyzji.

Równoległość

Poziom równoległości
W pełni równoległy

Skalowanie blokowe i mnożenia MXFP4 są w pełni równoległe na rdzeniach Tensor GPU.

Zakres
InferencjaPomiędzy urządzeniami

Wymagania sprzętowe

Podstawowe

Rdzenie Tensor NVIDIA Blackwell natywnie obsługują mnożenia MXFP4 ze skalowaniem blokowym.

Możliwe

Format można emulować programowo (np. biblioteka microxcaling), ale bez akceleracji sprzętowej.

Ograniczony

CPU nie ma natywnych mnożeń MXFP4; użycie ogranicza się do emulacji lub dekwantyzacji do wyższej precyzji.