Zapis czterobitowy daje szesnaście możliwych wartości na parametr. Nie szesnaście tysięcy — szesnaście. Pierwsza reakcja każdego, kto to słyszy, jest taka sama: to nie ma prawa działać.
Działa, ale tylko dzięki jednej decyzji inżynierskiej.
Czym jest kwantyzacja grupowa
Kwantyzacja grupowa to sposób redukcji precyzji wag, w którym nie stosuje się jednego współczynnika skalującego dla całego modelu ani nawet dla całej warstwy, lecz dzieli wagi na małe grupy sąsiadujących liczb — najczęściej po 32, 64 lub 128 — i każda z nich dostaje własną skalę wyznaczoną z zakresu wartości w tej grupie.
Dlaczego to konieczne
Wyobraź sobie, że masz zapisać ceny wszystkich produktów w sklepie, ale wolno ci użyć tylko szesnastu etykiet cenowych. Jeśli sprzedajesz warzywa i wszystko kosztuje między dwa a dwanaście złotych, szesnaście etykiet wystarczy. Ale jeśli w tym samym sklepie stoi jedna butelka wina za cztery tysiące, skala musi się do niej rozciągnąć i wszystkie warzywa wylądują na jednej etykiecie.
Grupowanie to osobny cennik na każdą półkę. Wino przestaje psuć marchewkę.
Podatek od skal
Każda grupa musi gdzieś zapisać swoją skalę, zwykle w szesnastu bitach. Im mniejsze grupy, tym lepsza dokładność i tym większy narzut.
Przy grupach po 128 wag narzut jest znikomy. Przy grupach po 32 model opisany jako czterobitowy zajmuje realnie około czterech i pół bitu na parametr. Przy grupach po osiem — ponad sześć.
Dlatego etykieta „4 bity” mówi tyle, co „samochód benzynowy”, a uczciwą miarą jest efektywna liczba bitów na parametr, liczona razem ze skalami.
Co z tego wynika
Dwa pliki z identycznym oznaczeniem wariantu mogą różnić się jakością i rozmiarem, bo różnią się rozmiarem grupy, doborem chronionych warstw i tym, czy przed kwantyzacją przepuszczono przez model dane kalibracyjne.