Melatih model dalam 4 bit: pengaman numerik di balik NVFP4
Pretraining 8-bit sudah umum. Turun ke 4 bit menjanjikan throughput GEMM dua sampai tiga kali lipat, tetapi hanya bisa konvergen bila sebagian perkalian matriks dibiarkan tetap presisi tinggi dan kuantisasinya diberi beberapa pengaman numerik. Tulisan ini membedah pengaman tersebut dan memisahkan angka puncak dari angka terukur.
Key takeaways
- NVFP4 menyimpan nilai 4-bit (E2M1, magnitudo maksimum ±6) dengan dua tingkat skala: skala blok FP8 E4M3 untuk setiap 16 elemen dan satu skala FP32 untuk seluruh tensor.
- Yang dikuantisasi ke 4 bit hanya tiga GEMM di lapisan MLP; QKV, proyeksi keluaran attention, dan perkalian skor tetap di presisi lebih tinggi karena softmax memperkuat derau kuantisasi.
- Empat pengaman inti: Random Hadamard Transform pada masukan wgrad, skala bobot dua dimensi 16x16, pembulatan stokastik khusus gradien, dan pemilihan lapisan presisi tinggi.
- Angka vendor pada pengukuran JAX/MaxText (Juni 2026): 1,31x sampai 1,73x terhadap baseline FP8, dengan selisih rerata loss +0,026 nat pada Llama 3 8B.
- Latih-dalam-4-bit berbeda dari kuantisasi-setelah-latih; checkpoint NVFP4 Nemotron 3.5 Super dihasilkan dari PTQ agresif 4,82 bit per elemen plus distilasi sadar-kuantisasi, bukan dari pretraining 4-bit.
- Abstrak sesi PyTorch Conference 21 Oktober 2026 menyebut celah kualitas terhadap BF16 masih ada pada ukuran model yang lebih kecil, jadi hasil pada model besar tidak otomatis berlaku untuk model kecil.
Presisi sebagai tombol throughput
Pada pretraining skala besar, sebagian besar waktu per langkah habis di perkalian matriks. Format angka yang dipakai untuk GEMM karena itu menjadi tombol paling berpengaruh: memotong lebar bit memperbesar jumlah operasi per satuan waktu di Tensor Core dan memperkecil lalu lintas data, tanpa mengubah arsitektur model.
Pretraining dengan FP8 sudah menjadi praktik umum. Langkah berikutnya, 4-bit floating point, menjanjikan tambahan kecepatan yang besar tetapi membawa persoalan baru: pada 4 bit hanya tersisa belasan nilai yang bisa diwakili, sehingga stabilitas pelatihan, konvergensi, dan implementasinya jauh lebih rapuh ketimbang pada 8 bit, terutama untuk model besar yang dilatih pada triliunan token.
Abstrak sesi "Efficient Pretraining of LLMs in NVFP4" di PyTorch Conference North America, 21 Oktober 2026, menyatakan GEMM NVFP4 menawarkan throughput puncak 2x sampai 3x lipat dibandingkan FP8 pada GB200 dan GB300 — namun pada kalimat yang sama menyebut celah kualitas terhadap BF16 masih bertahan pada ukuran model yang lebih kecil. Dua pernyataan itu perlu dibaca bersamaan: angka puncak adalah batas atas perangkat keras, bukan hasil pelatihan.
Anatomi NVFP4: empat bit dengan dua tingkat skala
Menurut dokumentasi resep Transformer Engine, satu elemen NVFP4 adalah angka E2M1: satu bit tanda, dua bit eksponen, satu bit mantisa, dengan magnitudo maksimum plus-minus 6. Rentang sesempit itu tidak mungkin mewakili tensor nyata sendirian, jadi nilai sebenarnya direkonstruksi dari perkalian tiga komponen: nilai 4-bit, skala blok, dan skala global.
Skala blok adalah angka FP8 E4M3 yang dibagi bersama oleh 16 elemen berurutan, sedangkan skala global adalah satu angka FP32 untuk seluruh tensor. Skala global dihitung dari amax tensor dibagi hasil kali nilai maksimum FP8 E4M3 (448,0) dan nilai maksimum E2M1 (6,0), sehingga seluruh rentang dinamis tensor dipetakan ke kombinasi dua format sempit tersebut.
Biaya penyimpanan skala bisa dihitung sendiri sebagai turunan, bukan benchmark. Dengan skala satu dimensi, satu blok 16 elemen memerlukan 4 bit data per elemen ditambah 8 bit skala yang dibagi 16, yaitu 4,5 bit per elemen. Untuk bobot, Transformer Engine memakai skala dua dimensi per blok 16x16, sehingga 8 bit skala terbagi ke 256 elemen dan biayanya turun ke sekitar 4,03 bit per elemen. Perbandingannya dengan MXFP4 yang memakai blok 32 elemen dan skala pangkat-dua E8M0 adalah 4,25 bit per elemen — lebih murah dari NVFP4 satu dimensi, tetapi dengan blok dua kali lebih besar sehingga satu outlier memengaruhi lebih banyak nilai.
Empat pengaman yang membuat 4 bit bisa konvergen
Pengaman pertama adalah Random Hadamard Transform (RHT), rotasi ortogonal yang diterapkan sebelum kuantisasi untuk meratakan outlier. Transformasi ini dipasang hanya pada operan kuantisasi kolom untuk GEMM wgrad — GEMM gradien bobot — karena jalur itu paling sensitif terhadap galat kuantisasi. Karena H dikalikan dengan transposnya menghasilkan matriks identitas, rotasi tersebut saling membatalkan di dalam perkalian titik sehingga hasil akhirnya tidak berubah.
Pengaman kedua adalah skala dua dimensi untuk bobot. Dengan satu skala per blok 16x16, tensor bobot yang dikuantisasi menurut baris dan menurut kolom menjadi ekuivalen secara numerik, sehingga jalur maju dan jalur gradien aktivasi memakai nilai yang sama persis. Tanpa konsistensi itu, hasil transpos bobot akan berbeda dari aslinya dan galat tersebut menumpuk sepanjang pelatihan.
Pengaman ketiga adalah pembulatan stokastik. Alih-alih selalu membulatkan ke nilai terdekat, nilai dibulatkan secara probabilistik ke salah satu dari dua nilai NVFP4 terdekat dengan peluang berbanding terbalik dengan jaraknya, sehingga nilai harapan tensor terkuantisasi sama dengan nilai aslinya. Dokumentasi Transformer Engine menyebut pembulatan ini hanya diaktifkan untuk gradien, sebab pada bobot dan aktivasi ia justru memperbesar galat; instruksinya tersedia langsung di perangkat keras Blackwell.
Pengaman keempat adalah pemilihan lapisan yang tetap presisi tinggi. Hanya tiga GEMM di lapisan MLP — jalur maju, gradien aktivasi, dan gradien bobot — yang dikuantisasi ke NVFP4, sementara QKV, proyeksi keluaran attention, dan perkalian skor-konteks tetap di presisi lebih tinggi. Alasannya teknis: softmax memperkuat derau kuantisasi pada skor secara eksponensial, dan aktivasi attention memuat outlier terpusat yang tidak terwakili baik dalam 4 bit. Karena MLP menyumbang sebagian besar FLOP pelatihan, sebagian besar percepatan tetap didapat tanpa mengorbankan konvergensi.
Angka yang dilaporkan, dan cara membacanya
Bukti skala terbesar yang dipublikasikan ada di makalah NVIDIA "Pretraining Large Language Models with NVFP4" (arXiv:2509.25149, terbit 29 September 2025, revisi 4 Maret 2026). Makalah itu melatih model 12 miliar parameter pada 10 triliun token dan menyebutnya sebagai pelatihan presisi 4-bit terpanjang yang terdokumentasi publik sampai saat itu, dengan loss pelatihan dan akurasi tugas hilir yang sebanding terhadap baseline FP8.
Pengukuran throughput yang lebih rinci ada di blog teknis NVIDIA tanggal 8 Juni 2026 tentang resep NVFP4 di JAX dan MaxText — tanggal itu perlu disebut karena materinya sering muncul kembali sebagai kabar baru. Pada konfigurasi Llama 3 8B dengan FSDP=4, panjang sekuens 8.192, dan 50 langkah, NVIDIA melaporkan 2.017 TFLOP/s per GPU untuk NVFP4 melawan 1.497 TFLOP/s untuk FP8 di GB200 (1,35x) dan 2.301 melawan 1.759 di GB300 (1,31x). Pada Llama 3.1 405B di 128 GPU, angkanya 2.241 melawan 1.557 (1,44x) di GB200 dan 3.633 melawan 2.103 (1,73x) di GB300. Semua ini klaim vendor.
Yang membuat deret angka itu bisa dinilai adalah syaratnya: model, hiperparameter, paralelisme, dan ukuran batch global dibuat identik, sehingga perbedaan hanya datang dari presisi GEMM. Untuk sisi akurasi, NVIDIA melaporkan kurva loss Llama 3 8B sepanjang sekitar 10.000 langkah turun dari sekitar 12,2 nat ke sekitar 3,9 nat pada kedua presisi, dengan selisih rerata +0,026 nat di rezim konvergen. Pada eksperimen 8B/1T token, NVIDIA juga menyebut MXFP4 memerlukan sekitar 36 persen token lebih banyak untuk mencapai loss akhir yang sama.
Latih dalam 4 bit bukan hal yang sama dengan kuantisasi setelah latih
Dua hal yang sering tertukar: melatih dengan GEMM 4-bit, dan memampatkan model yang sudah terlatih menjadi checkpoint 4-bit untuk inferensi. Keduanya memakai nama format yang sama, tetapi risikonya berbeda. Yang pertama menyentuh dinamika optimisasi selama triliunan token; yang kedua hanya memengaruhi akurasi pada bobot akhir dan bisa diukur langsung dengan benchmark.
Rilis Nemotron 3.5 Super dan Lightning (halaman riset NVIDIA, terbit 14 Oktober 2026; checkpoint menyusul di Hugging Face dan build.nvidia.com pada 15 Oktober 2026) adalah contoh kategori kedua. Dokumentasi resepnya menyatakan checkpoint NVFP4 yang dirilis memakai resep PTQ "aggressive" sebesar 4,82 bit per elemen, lalu 200 iterasi distilasi sadar-kuantisasi berbasis SFT, dan dideploy sebagai W4A4 pada Blackwell serta W4A16 pada GPU lain. Jadi angka 4,82 bit per elemen itu lebih besar dari 4,5 bit teoretis karena sebagian tensor sengaja ditinggalkan pada presisi lebih tinggi.
Pemulihan akurasinya dilaporkan tinggi, tetapi dua dokumen NVIDIA sendiri menyebut angka yang sedikit berbeda: halaman riset menulis 99,62 persen pemulihan akurasi median relatif terhadap BF16 pada 36 benchmark, sedangkan dokumentasi resep menulis 99,52 persen pada 35 benchmark. Selisih itu kecil dan kemungkinan berasal dari cakupan benchmark yang berbeda, namun layak dicatat ketimbang dipilih satu angka tanpa penjelasan. Klaim throughput penyajian 2,43x BF16 pada halaman riset juga klaim vendor dan terikat pada kondisi penyajian interaktif yang mereka evaluasi.
Apa yang belum bisa disimpulkan
Pertama, celah kualitas pada model kecil belum tertutup secara publik. Abstrak sesi PyTorch Conference menyebut perbaikan resep sudah diunggah ke TorchAO dan TorchTitan untuk pretraining NVFP4 native di PyTorch, tetapi besaran celah setelah perbaikan itu tidak dicantumkan dalam abstraknya, dan belum ada laporan pihak ketiga yang mengukurnya ulang.
Kedua, angka-angka di atas tidak bisa dibandingkan satu sama lain. Baseline 1,31x sampai 1,73x adalah NVFP4 melawan FP8 pada TFLOP/s terukur; 2x sampai 3x adalah throughput puncak GEMM; 2,43x adalah throughput penyajian inferensi dari checkpoint terkuantisasi melawan BF16. Ketiganya berbeda metrik, berbeda fase, dan berbeda pembanding, sehingga menyusunnya menjadi satu deret peningkatan akan menyesatkan.
Ketiga, prasyarat perangkat keras dan kedewasaan implementasi masih membatasi. Pelatihan NVFP4 di Transformer Engine mensyaratkan arsitektur Blackwell, dan RHT hanya didukung untuk masukan BF16. Tumpukan perangkat lunaknya juga masih bergerak: catatan rilis Transformer Engine v2.20.2 pada 5 Oktober 2026 memuat instruksi pembulatan stokastik NVFP4 yang lebih lebar sekaligus perbaikan untuk kerusakan kuantisasi stokastik NVFP4 akibat tensor RNG yang tidak tertahan. Versi pustaka ikut menentukan hasil.
Cara memeriksa klaim presisi rendah
Empat pertanyaan cukup untuk menilai klaim percepatan presisi rendah. GEMM mana yang benar-benar dikuantisasi, dan lapisan mana yang dikecualikan? Angkanya puncak atau terukur, dan pada perangkat apa? Pembandingnya FP8 atau BF16? Dan apakah akurasinya diukur pada skala model yang mirip dengan rencana Anda, bukan hanya pada model terbesar di laporan.
Untuk tim yang menyusun anggaran pelatihan, konsekuensi praktisnya sederhana: percepatan presisi rendah berlaku pada bagian beban yang didominasi FLOP perkalian matriks, dan menyusut ketika langkah pelatihan dikuasai komunikasi kolektif, pemuatan data, atau attention berpanjang sekuens besar. Pengukuran NVIDIA sendiri memperlihatkan pola itu — perolehan relatif terbesar muncul pada konfigurasi 405B, tempat massa GEMM per langkah mendominasi overhead kolektif FSDP.
Karena itu keputusan presisi sebaiknya diuji pada beban kerja sendiri sebelum dijadikan asumsi kapasitas. Jalankan beberapa ratus langkah pada resep BF16, FP8, dan 4-bit dengan hiperparameter dan batch global identik, lalu putuskan dari waktu per langkah dan kurva loss, bukan dari satu angka pengali.
NVIDIA GPU evolution timeline
Makalah pretraining NVFP4
NVIDIA menerbitkan arXiv:2509.25149: model 12B dilatih pada 10 triliun token dalam presisi 4-bit, direvisi 4 Maret 2026.
Resep NVFP4 di JAX dan MaxText
Blog teknis NVIDIA memuat tabel TFLOP/s NVFP4 melawan FP8 pada GB200 dan GB300 serta kurva loss dengan selisih +0,026 nat.
Transformer Engine v2.20.2
Catatan rilis memuat instruksi pembulatan stokastik NVFP4 yang lebih lebar dan perbaikan kerusakan kuantisasi stokastik NVFP4.
Checkpoint NVFP4 Nemotron 3.5
Halaman riset terbit 14 Oktober; checkpoint NVFP4 Super VL 120B-A12B tercatat rilis 15 Oktober di Hugging Face dan build.nvidia.com.
Sesi pretraining NVFP4 di PyTorch Conference
Abstrak menyebut throughput puncak GEMM 2x-3x terhadap FP8 pada GB200/GB300, celah kualitas pada model kecil, dan unggahan resep ke TorchAO serta TorchTitan.
NVIDIA GPU architecture comparison
| Aspek | FP8 (E4M3) | MXFP4 | NVFP4 |
|---|---|---|---|
| Lebar data per elemen | 8 bit | 4 bit (E2M1) | 4 bit (E2M1) |
| Ukuran blok skala | Per tensor atau per blok, tergantung resep | 32 elemen | 16 elemen |
| Jenis skala blok | FP32 (per tensor pada resep klasik) | E8M0, pangkat dua | FP8 E4M3, ditambah skala FP32 per tensor |
| Biaya skala (turunan hitung sendiri) | Dapat diabaikan pada skala per tensor | 4,25 bit per elemen | 4,5 bit per elemen (1D); sekitar 4,03 bit (2D 16x16) |
| Catatan konvergensi dari laporan vendor | Sudah umum dipakai untuk pretraining | Perlu sekitar 36 persen token lebih banyak untuk menyamai loss akhir NVFP4 pada eksperimen 8B/1T | Memerlukan RHT, skala bobot 2D, pembulatan stokastik, dan lapisan presisi tinggi terpilih |
Sources and further reading
- Pretraining Large Language Models with NVFP4 — arXiv:2509.25149 (NVIDIA, 29 September 2025, revisi 4 Maret 2026)
- Train Models Faster with JAX and MaxText Using NVFP4 on NVIDIA Blackwell (NVIDIA Technical Blog, 8 Juni 2026)
- NVFP4 — dokumentasi resep presisi rendah Transformer Engine 2.17 (NVIDIA Docs)
- Open Research, Tooling & Optimization at PyTorch Conference North America 2026 (PyTorch Foundation)
- NVIDIA Nemotron 3.5 Super and Lightning (NVIDIA Research, terbit 14 Oktober 2026)
- Nemotron 3.5 Super Training Recipe, bagian Quantization (NVIDIA Docs)
- Transformer Engine v2.20.2 release notes (NVIDIA, 5 Oktober 2026)