GGUF vs AWQ vs GPTQ vs FP8 vs NF4: wybór kwantyzacji LLM
Tłumaczenie automatyczne
Ten artykuł został automatycznie przetłumaczony z angielskiego oryginału.
Wybierz kwantyzację LLM na podstawie runtime’u, sprzętu i zadania, które chcesz wykonać. GGUF pakuje tensory modelu i metadane. AWQ i GPTQ zmniejszają precyzję wag po treningu. FP8 wykorzystuje ośmiobitowe wartości zmiennoprzecinkowe. NF4 przechowuje wagi w czterech bitach i jest często używany podczas treningu adapterów QLoRA. Te nazwy opisują różne części procesu ładowania i wykonywania modelu.
Najpierw wybierz runtime i sprzęt. Następnie wybierz reprezentację obsługiwaną przez przypiętą wersję runtime’u dla konkretnej architektury. Przed zaakceptowaniem mniejszych plików modelu zmierz jakość wykonania zadań, zużycie pamięci, czas do pierwszego tokenu, przepustowość i współbieżność.
Sprawdź zgodność przed porównaniem rozmiaru plików lub liczby bitów.
Tabela decyzyjna
| Cel | Punkt wyjścia | Sprawdź przed użyciem |
|---|---|---|
| Lokalna inferencja na CPU, Metal lub przenośnym llama.cpp | GGUF z udokumentowaną kwantyzacją | Obsługę architektury, szablon czatu, zachowanie kontekstu, ustawienia kwantyzacji i rewizję źródła. |
| Inferencja na GPU z kalibrowaną kwantyzacją wag | AWQ lub GPTQ | Silnik serwujący, GPU, szerokość bitową, rozmiar grupy, kernele i architekturę modelu. |
| Serwowanie na obsługiwanym GPU w centrum danych | FP8 | Możliwości sprzętu, implementację w runtime, tryb kalibracji i jakość całego procesu. |
| Trening efektywny pod względem liczby parametrów przy zamrożonych wagach 4-bitowych | NF4 przez bitsandbytes | Precyzję obliczeń, pamięć potrzebną do treningu oraz to, czy wdrożenie używa adaptera, czy scalonych wag. |
| Prosty prototyp Transformers | bitsandbytes 8-bit lub 4-bit | Obsługę backendu oraz to, czy ścieżka prototypowa odpowiada serwerowi produkcyjnemu. |
GGUF nie określa jednej kwantyzacji
Rozszerzenie .gguf informuje, jak pakowane są tensory i metadane, a nie o precyzji każdego tensora. Nazwy takie jak Q4_K_M identyfikują receptury kwantyzacji llama.cpp, a receptury te mogą traktować różne grupy tensorów odmiennie. Zapisuj oryginalny checkpoint, wersję konwertera, polecenie kwantyzacji i hashe plików. Kalibracja używa reprezentatywnych danych wejściowych do wyboru parametrów kwantyzacji. Jeśli podczas konwersji użyto tych danych, zapisz również zbiór danych.
AWQ i GPTQ wymagają zgodnej ścieżki serwowania
Pliki modeli AWQ i GPTQ zwykle używają Safetensors oraz ustawień opisujących metodę kwantyzacji. Model może pobrać się poprawnie, a mimo to przełączyć się na wolny kernel albo nie działać na nieobsługiwanej architekturze. Przed wybraniem plików modelu sprawdź aktualną macierz obsługi dla Transformers, vLLM lub konkretnej wersji serwera.
FP8 i NF4 rozwiązują różne problemy
FP8 jest atrakcyjny, gdy akcelerator i stos serwujący implementują go wydajnie. NF4 służy przede wszystkim do przechowywania zamrożonych wag modelu podczas treningu małych adapterów w procesach treningowych typu QLoRA. W bitsandbytes typ danych obliczeniowych określa precyzję używaną do obliczeń; może różnić się od przechowywanych wag czterobitowych. Opcjonalna kwantyzacja zagnieżdżona dodatkowo kompresuje stałe używane do reprezentowania tych wag. Żadna z tych etykiet nie gwarantuje takiej samej jakości, szybkości ani zużycia pamięci w różnych modelach i na różnym sprzęcie.
Lista kontrolna ewaluacji
Przechowywanie w czterech bitach nie oznacza, że cały proces wykorzystuje cztery bity na parametr. Metadane kwantyzacji, tensory o wyższej precyzji, bufory tymczasowe i pamięć podręczna mechanizmu uwagi wymagają dodatkowej pamięci. Przetestuj długość promptów i współbieżne żądania, które planujesz obsługiwać.
- porównuj ten sam źródłowy checkpoint i ten sam zestaw promptów
- uwzględnij długi kontekst i żądania współbieżne
- mierz poprawność schematów i wywołań narzędzi obok perpleksji
- zapisuj szczytowe zużycie pamięci urządzenia i hosta
- weryfikuj czas do pierwszego tokenu i przepustowość generowania
- analizuj rzadkie lub kosztowne podzbiory ewaluacji jakości
- przechowuj wraz z plikami modelu licencję, rewizję źródła, konwerter, recepturę i hash
Dalsza lektura
- Przewodnik po inżynierii LLM: kwantyzacja omawia te wybory w kontekście pamięci, kerneli serwujących i doboru GPU.
- Przewodnik po kwantyzacji modeli omawia algorytmy, kalibrację, kernele i kompromisy związane z wdrażaniem.
- Warianty LLM z otwartymi wagami rozdziela rolę checkpointu, architekturę, kontener, kwantyzację, runtime i sprzęt.
- Lokalne LLMs na macOS pokazuje zastosowanie tych wyborów na Apple Silicon.