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

CelPunkt wyjściaSprawdź przed użyciem
Lokalna inferencja na CPU, Metal lub przenośnym llama.cppGGUF z udokumentowaną kwantyzacjąObsługę architektury, szablon czatu, zachowanie kontekstu, ustawienia kwantyzacji i rewizję źródła.
Inferencja na GPU z kalibrowaną kwantyzacją wagAWQ lub GPTQSilnik serwujący, GPU, szerokość bitową, rozmiar grupy, kernele i architekturę modelu.
Serwowanie na obsługiwanym GPU w centrum danychFP8Moż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-bitowychNF4 przez bitsandbytesPrecyzję obliczeń, pamięć potrzebną do treningu oraz to, czy wdrożenie używa adaptera, czy scalonych wag.
Prosty prototyp Transformersbitsandbytes 8-bit lub 4-bitObsł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

Źródła