1) Wybór schematu odwzorowania: afiniczny (asymetryczny, ze skalą i punktem zerowym) lub symetryczny (punkt zerowy = 0). 2) Wyznaczenie zakresu wartości dla każdego tensora — per-tensor (jedna skala na cały tensor) lub per-channel (osobna skala na kanał wag, dokładniejsza dla warstw konwolucyjnych). 3) Kalibracja: przepuszczenie reprezentatywnego zbioru danych, aby oszacować zakresy aktywacji (metody: min/max, percentyl, minimalizacja dywergencji KL/entropii). 4) Kwantyzacja: q = round(x / scale) + zero_point, z obcięciem do zakresu INT8. 5) Inferencja całkowitoliczbowa: mnożenia i akumulacje wykonywane w INT8/INT32, z rekwantyzacją między warstwami. Model można uzyskać przez PTQ (kwantyzacja gotowego modelu, szybka, bez ponownego treningu) lub QAT (wstawienie „fake quant" w graf treningu, aby sieć nauczyła się odporności na kwantyzację — wyższa dokładność kosztem dodatkowego treningu).
Modele w FP32/FP16 są duże i kosztowne w inferencji — zajmują dużo pamięci i przepustowości, co utrudnia wdrożenie na urządzeniach brzegowych, mobilnych i akceleratorach o ograniczonych zasobach. INT8 zmniejsza rozmiar modelu ~4× oraz zapotrzebowanie na przepustowość pamięci i moc obliczeniową, umożliwiając szybszą i tańszą inferencję przy akceptowalnej utracie dokładności.
Niereprezentatywny zbiór kalibracyjny lub naiwne min/max prowadzi do przycięcia wartości odstających i dużego spadku dokładności.
Warstwy z dużą zmiennością zakresów między kanałami tracą dokładność przy jednej wspólnej skali.
Duże aktywacje odstające w transformerach psują naiwną kwantyzację INT8 aktywacji.
Praca Google definiująca schemat kwantyzacji INT8 z QAT, wdrożony w TensorFlow Lite / gemmlowp.
Systematyzacja PTQ i QAT dla INT8 na GPU (Wu et al.), w tym kalibracja i per-channel.
Metody INT8 dostosowane do dużych modeli językowych z obsługą wartości odstających.
PTQ (po treningu) vs QAT (świadoma kwantyzacji). QAT zwykle daje wyższą dokładność kosztem dodatkowego treningu.
Per-tensor (jedna skala na tensor) vs per-channel (skala na kanał). Per-channel jest dokładniejsze dla wag konwolucyjnych.
Sposób szacowania zakresów aktywacji podczas PTQ.
Symetryczny (zero-point = 0) vs afiniczny/asymetryczny (z punktem zerowym).
INT8 to technika reprezentacji liczb stosowana do inferencji; przepływ obliczeń pozostaje gęsty, zmienia się precyzja arytmetyki.
Operacje INT8 są w pełni równoległe na jednostkach macierzowych (Tensor Cores, NPU).
Tensor Cores mają dedykowane ścieżki INT8 o wysokim TOPS.
TPU/NPU natywnie wspierają arytmetykę całkowitoliczbową INT8.
Instrukcje SIMD (AVX-512 VNNI) przyspieszają mnożenie-akumulację INT8 na CPU.
Logika całkowitoliczbowa mapuje się efektywnie na zasoby DSP FPGA.