Robocikowo>ROBOCIKOWO
Wnioskowanie

INT8

2017AktywnyOpublikowano: 29 sierpnia 2026Aktualizacja: 29 sierpnia 2026Opublikowany
Kwantyzacja do 8-bitowych liczb całkowitych: reprezentowanie wag i aktywacji w INT8 zamiast FP16/FP32, aby zmniejszyć pamięć ~4× i przyspieszyć inferencję.
Kluczowa innowacja
Zamiana zmiennoprzecinkowych wag i aktywacji sieci neuronowej na 8-bitowe liczby całkowite ze skalą i punktem zerowym, co pozwala prowadzić inferencję na arytmetyce całkowitoliczbowej — ~4× mniej pamięci i wyższa przepustowość przy niewielkiej utracie dokładności.
Kategoria
Wnioskowanie
Poziom abstrakcji
Wzorzec
Poziom operacji
Element architekturyModel
Zastosowania
Inferencja na urządzeniach brzegowych i mobilnychAkceleracja modeli na GPU z Tensor Cores (INT8)Wdrożenia na NPU/TPU i akceleratorach o ograniczonej mocyRedukcja kosztów inferencji LLM i modeli wizyjnychKompresja modeli do zastosowań w czasie rzeczywistym

Jak działa

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).

Rozwiązany problem

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.

Implementacja

Pułapki implementacyjne
Zła kalibracja aktywacjiWysoka

Niereprezentatywny zbiór kalibracyjny lub naiwne min/max prowadzi do przycięcia wartości odstających i dużego spadku dokładności.

Rozwiązanie:Użyj reprezentatywnych danych i metod percentylowych lub minimalizacji KL; rozważ QAT.
Per-tensor tam, gdzie potrzebne per-channelŚrednia

Warstwy z dużą zmiennością zakresów między kanałami tracą dokładność przy jednej wspólnej skali.

Rozwiązanie:Stosuj kwantyzację per-channel dla wag warstw konwolucyjnych i liniowych.
Wartości odstające w aktywacjach LLMWysoka

Duże aktywacje odstające w transformerach psują naiwną kwantyzację INT8 aktywacji.

Rozwiązanie:Zastosuj techniki typu SmoothQuant / mieszaną precyzję dla kanałów odstających.

Ewolucja

Oryginalny paper · 2017 · CVPR 2018 · Benoit Jacob
Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference
Benoit Jacob, Skirmantas Kligys, Bo Chen, Menglong Zhu, Matthew Tang, Andrew Howard, Hartwig Adam, Dmitry Kalenichenko
2017
Integer-arithmetic-only inference (Jacob et al.)
Punkt przełomowy

Praca Google definiująca schemat kwantyzacji INT8 z QAT, wdrożony w TensorFlow Lite / gemmlowp.

2020
Integer Quantization white paper (NVIDIA)

Systematyzacja PTQ i QAT dla INT8 na GPU (Wu et al.), w tym kalibracja i per-channel.

2022
LLM.int8() i SmoothQuant

Metody INT8 dostosowane do dużych modeli językowych z obsługą wartości odstających.

Hiperparametry (konfigurowalne osie)

Metoda kwantyzacjiKrytyczna

PTQ (po treningu) vs QAT (świadoma kwantyzacji). QAT zwykle daje wyższą dokładność kosztem dodatkowego treningu.

PTQSzybka, bez ponownego treningu
QATWyższa dokładność, wymaga treningu
Ziarnistość skalowaniaWysoka

Per-tensor (jedna skala na tensor) vs per-channel (skala na kanał). Per-channel jest dokładniejsze dla wag konwolucyjnych.

per-tensor
per-channel
Metoda kalibracjiWysoka

Sposób szacowania zakresów aktywacji podczas PTQ.

min/max
percentile
KL / entropyStosowane m.in. w TensorRT
Schemat odwzorowaniaŚrednia

Symetryczny (zero-point = 0) vs afiniczny/asymetryczny (z punktem zerowym).

symmetric
asymmetric / affine

Paradygmat wykonania

Tryb główny
Gęsty

INT8 to technika reprezentacji liczb stosowana do inferencji; przepływ obliczeń pozostaje gęsty, zmienia się precyzja arytmetyki.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

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

Operacje INT8 są w pełni równoległe na jednostkach macierzowych (Tensor Cores, NPU).

Zakres
Inferencja

Wymagania sprzętowe

Podstawowe

Tensor Cores mają dedykowane ścieżki INT8 o wysokim TOPS.

Dobry fit

TPU/NPU natywnie wspierają arytmetykę całkowitoliczbową INT8.

Dobry fit

Instrukcje SIMD (AVX-512 VNNI) przyspieszają mnożenie-akumulację INT8 na CPU.

Dobry fit

Logika całkowitoliczbowa mapuje się efektywnie na zasoby DSP FPGA.