BlogModele
Sprawdzanie jakości modelu po kwantyzacji
Zanim skwantyzowany model zastąpi oryginał, powtórz te same testy zadania, na podstawie których zatwierdziłeś oryginał, i dodaj testy tego, co kwantyzacja psuje najczęściej: ustrukturyzowane odpowiedzi, najdłuższe wejścia, rzadkie kategorie i języki oraz reguły zachowania, których model musi przestrzegać. Zmierz wydajność serwowania przy docelowym opóźnieniu na własnym ruchu. Zmieniaj model tylko wtedy, gdy jakość utrzymuje się w każdym ważnym wycinku, a oszczędność widać jako mniej GPU albo więcej zapytań na GPU.
Co zmienia kwantyzacja
Kwantyzacja zapisuje wagi, a czasem też aktywacje lub KV cache, na mniejszej liczbie bitów, żeby zmniejszyć zużycie pamięci, starając się przy tym zachować dokładność. Dokumentacja Hugging Face Transformers wymienia wiele metod: niektóre wymagają danych kalibracyjnych, inne kwantyzują w locie, a obsługa zależy od sprzętu. vLLM publikuje tabelę zgodności według generacji GPU, więc format działający na jednej karcie może nie działać na innej.
Kurtic i współautorzy przeprowadzili ponad 500 000 ewaluacji na rodzinie Llama 3.1. Wyszło im, że 8-bitowy format zmiennoprzecinkowy dla wag i aktywacji jest praktycznie bezstratny, dobrze dostrojone 8-bitowe formaty całkowitoliczbowe tracą od 1 do 3 procent, a 4-bitowa kwantyzacja samych wag jest bardziej konkurencyjna, niż się spodziewano. To średnie z benchmarków akademickich i zadań praktycznych dla jednej rodziny modeli. Twój model, zadanie i format mogą zachowywać się inaczej, zwłaszcza na brzegach.
Testy do powtórzenia
Uruchom oryginał i model skwantyzowany obok siebie na identycznych wejściach, z tymi samymi promptami, ustawieniami dekodowania i kodem oceniającym.
- Odłożony zbiór zadania z pierwotnego zatwierdzenia, oceniany dla każdej klasy i każdego krytycznego wycinka, a nie tylko ogółem
- Ustrukturyzowane odpowiedzi: odsetek poprawnie parsowanych wyników, zgodność ze schematem i argumenty wywołań narzędzi, gdzie jeden zły token psuje wynik
- Najdłuższe prawdziwe wejścia, zwłaszcza jeśli kwantyzowany jest też KV cache
- Rzadkie kategorie i mniej popularne języki, w których drobne przesunięcia prawdopodobieństw zmieniają odpowiedź
- Testy zachowania, które robisz dla oryginału, na przykład odmowy i pierwszeństwo instrukcji
- Test zgodności: odsetek przypadków, w których oba modele dają tę samą odpowiedź, przy czym każdą rozbieżność w krytycznym wycinku czyta człowiek
Publiczne benchmarki odsiewają, decydują twoje testy
lm-evaluation-harness od EleutherAI uruchamia dziesiątki standardowych benchmarków i może korzystać z vLLM jako backendu, więc porównanie oryginalnego i skwantyzowanego checkpointu na kilku z nich jest tanie. Wyraźny spadek traktuj jako powód, by wcześnie przerwać. Brak spadku traktuj jako zgodę na uruchomienie własnych testów, a nie jako zatwierdzenie. Standardowe benchmarki rzadko zawierają twoje formaty dokumentów, kategorie czy schemat odpowiedzi.
Przykładowe porównanie z kosztem na GPU
Kwantyzacja się opłaca tylko wtedy, gdy zmienia liczbę GPU albo to, ile każde z nich obsługuje przy docelowym opóźnieniu. Kurtic i współautorzy stwierdzili, że najbardziej opłacalny format zależał od wdrożenia: 4-bitowe wagi przy serwowaniu synchronicznym, 8 bitów dla wag i aktywacji przy ciągłym batchowaniu. Mierz, nie zakładaj. Hipotetyczne zestawienie dla modelu do ekstrakcji:
- Oryginał, 16 bitów, dwa GPU na replikę: F1 dla pól 0,871, poprawny JSON 99,9 procent, 6 zapytań na sekundę w ramach celu, czyli 3 na GPU
- 8 bitów dla wag i aktywacji, jedno GPU na replikę: F1 dla pól 0,868, poprawny JSON 99,8 procent, 4 zapytania na sekundę w ramach celu, czyli 4 na GPU
- Krytyczny wycinek, dane bankowe na zeskanowanych fakturach: w obu przypadkach 97 na 100 poprawnie
Pojemność na GPU rośnie o jedną trzecią, krytyczny wycinek się nie zmienia, a ogólny spadek F1 o 0,003 mieści się w tolerancji 0,005 uzgodnionej przed testem. Według tych kryteriów skwantyzowany model trafia do trybu cienia na ruchu produkcyjnym, a oryginał czeka gotowy do wycofania zmiany. Gdyby przy danych bankowych pomylił się choćby w dwóch przypadkach więcej, odpowiedź brzmiałaby nie, niezależnie od oszczędności.
Kiedy porównanie trzeba powtórzyć
Skwantyzowany checkpoint to nowy model. Powtarzaj porównanie po każdej nowej wersji dostrojonego modelu, po zmianie metody kwantyzacji lub danych kalibracyjnych oraz po aktualizacji serwera inferencji lub jego kerneli, bo vLLM pozwala wybierać backendy kerneli dla skwantyzowanych warstw. Wersjonuj razem zbiór testowy, kod oceniający i wyniki, żeby kolejne porównanie korzystało z tego samego zestawu, zamiast budować go od nowa.
Pytania
Czy 8-bitowa kwantyzacja zmiennoprzecinkowa jest zawsze bezpieczna?
Kurtic i współautorzy w badaniu, które sami określają jako najobszerniejsze tego typu, opisują ją jako praktycznie bezstratną dla rodziny Llama 3.1. To mocny dowód, ale nie dotyczy twojego modelu ani zadania, a obsługa FP8 zależy od generacji GPU. Porównanie i tak zrób. Zwykle szybko potwierdza wynik.
Czy kwantyzować także KV cache?
To zwalnia pamięć na więcej równoczesnych lub dłuższych zapytań, a vLLM oferuje kilka typów danych KV cache o niższej precyzji. Traktuj to jako osobną zmianę z osobnym przebiegiem testów, nastawionym na najdłuższe wejścia, żeby wiedzieć, która zmiana spowodowała ewentualną stratę.
Kto powinien zatwierdzić skwantyzowany model?
Ta sama osoba, która zatwierdziła oryginał, według tych samych kryteriów akceptacji. Cloudsail może przeprowadzić porównanie obu modeli w twoim środowisku i przekazać zbiór testowy oraz skrypty, ale decyzja zostaje po stronie twojego zespołu.
Powiązane usługi
Trenowanie własnych modeli
Mały model open-weight wytrenowany do jednego zadania i porównany z twoim obecnym modelem pod względem kosztu i dokładności.
Inżynieria i architektura AI
Asystenci, interfejsy głosowe i agenci w produktach, które sprzedajesz, razem z serwowaniem modeli i wyszukiwaniem pod spodem.
Więcej z bloga
Ocena dostrojonego modelu
Jak wykazać, że dostrojony model powinien zastąpić obecny: kryteria akceptacji spisane z góry, uczciwe porównanie na odłożonych przypadkach oraz koszt i opóźnienie w tej samej tabeli.
Planowanie mocy GPU do inferencji
Jak dobrać moc GPU dla modelu serwowanego samodzielnie: co ogranicza replikę, jak ją przetestować przy docelowym opóźnieniu, ile replik potrzebuje ruch szczytowy i jak nie płacić za bezczynne godziny.
Budżet opóźnień LLM
Jak ustalić, dlaczego funkcja AI działa wolno: rozbij każde zapytanie na kolejkę, retrieval, model i narzędzia, popraw największy element, na który masz wpływ, i mierz ogon rozkładu pod obciążeniem.
Porozmawiaj z inżynierem
Przyjdź z jednym zadaniem, które chcesz usprawnić. Rozmowa trwa 30 minut i nie wymaga dostępu do twoich systemów ani danych.
Rezerwacja odbywa się w Kalendarzu Google.
Wolisz najpierw napisać? Zostaw adres e-mail i kilka zdań, a odpowiemy, proponując terminy.
Sprawdź wersję roboczą w swoim programie pocztowym
Wyślij ją stamtąd, a inżynier odpowie ci osobiście, proponując terminy 30-minutowej rozmowy. Jeśli wersja robocza się nie otworzyła, napisz do nas na adres miki@cloudsail.com.