Strona główna / Rozdział 7 · Model na produkcji
    Ostatnia zmiana · 5 min czytania

    Użyj z AI

    Kwantyzacja

    Kwantyzacja zapisuje wagi, a czasem też aktywacje i KV cache, mniejszą liczbą bitów, zaokrąglając je do rzadszej siatki wartości. Model zajmuje 2–4 razy mniej pamięci, a generowanie przyspiesza, bo decode czyta z pamięci mniej bajtów.

    Po ludzkuZdjęcie zapisane jako JPEG zamiast w pełnej jakości: waży kilka razy mniej i na ekranie telefonu wygląda tak samo. Artefakty widać dopiero przy mocnej kompresji i najpierw w drobnych detalach. U modelu tymi detalami są długie rozumowanie, kod i rzadsze języki.

    Zmniejszaj liczbę bitów, dodaj wartość odstającą, a potem włącz osobną skalę dla bloków. Patrz na błąd zaokrągleń

    poziomów na siatce
    błąd zaokrągleń względem wielkości wag
    reguła kciuka dla jakości

    40 wag z rozkładu normalnego, siatka symetryczna wokół zera, blok to 8 wag. Błąd liczony bez samej wartości odstającej, żeby było widać, co dzieje się z resztą.

    Wybierz rozmiar modelu i zobacz, na czym zmieszczą się same wagi. Liczbę bitów zmieniasz w widżecie powyżej

    na same wagi
    w 16 bitach

    Liczone jako wagi plus 15% zapasu, co wystarcza na krótki kontekst jednej osoby. Obsługa wielu rozmów wymaga dużo więcej pamięci na KV cache. Skale bloków dokładają kilka procent.

    Jak działa kwantyzacja

    Formaty kwantyzacji i co przyspieszają

    Co się traci i jak wybrać format

    Sprawdź się

    Co daje kwantyzacja, co się traci i jaki format wybierzesz?

    Wagi zapisuje się mniejszą liczbą bitów, z 16 do 8 albo 4, ze skalą liczoną dla małych bloków, bo pojedyncze wartości odstające rozciągają siatkę. Model zajmuje 2–4 razy mniej pamięci, a decode przyspiesza, bo czyta mniej bajtów. Kwantyzacja samych wag, jak W4A16, pomaga przy małym batchu. FP8 dla wag i aktywacji przyspiesza też liczenie, więc na Hopperze wygrywa przy dużym ruchu; na Blackwellu jeszcze szybsze jest NVFP4 dla wag i aktywacji. 8 bitów to praktycznie brak straty, 4 bity to niewielka strata, niżej jakość szybko spada, najpierw w rozumowaniu i kodzie. Rozstrzygają własne ewaluacje.

    In English

    The weights are stored in fewer bits, from 16 down to 8 or 4, with a scale computed per small block, because a single outlier stretches the grid. The model needs 2–4 times less memory, and decode gets faster because it reads fewer bytes. Weight-only quantisation such as W4A16 helps at small batch sizes. FP8 for weights and activations also speeds up the maths, so on Hopper it wins under heavy traffic; on Blackwell, NVFP4 for weights and activations is faster still. 8 bits is practically lossless, 4 bits costs a little, and below that quality drops fast, first in reasoning and code. Your own evals decide.

    Pytania pogłębiające (4)
    PTQ a QAT?
    PTQ kwantyzuje gotowy model w minuty lub godziny, na małej próbce danych kalibracyjnych (GPTQ, AWQ). QAT symuluje kwantyzację w treningu, więc model uczy się ją znosić i lepiej trzyma jakość w 4 bitach i niżej. Kosztem jest trening, więc QAT robi zwykle autor modelu.
    Czemu aktywacje kwantyzuje się trudniej niż wagi?
    Wagi są znane z góry i można je starannie przeskalować offline. Aktywacje zależą od wejścia i mają duże wartości odstające w kilku kanałach. Pomagają metody przenoszące trudność na wagi (SmoothQuant) i FP8, które ma większy zakres niż INT8.
    Po kwantyzacji do 4 bitów benchmarki są w normie, a użytkownicy skarżą się na kod. Co robisz?
    Średnia z benchmarków ukrywa straty w długich łańcuchach rozumowania i kodzie. Porównaj obie wersje na własnym zestawie z tego obszaru. Jeśli strata jest realna, wróć do 8 bitów albo zostaw wrażliwe warstwy w wyższej precyzji.
    Kiedy kwantyzacja KV cache’u daje więcej niż kwantyzacja wag?
    Przy długich kontekstach i dużym batchu, gdy cache wszystkich rozmów zajmuje więcej pamięci niż wagi. Cache w FP8 mieści dwa razy więcej tokenów, czyli dwa razy więcej rozmów albo dwa razy dłuższy kontekst.

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę