GGUF vs AWQ vs GPTQ vs FP8 vs NF4: LLM-Quantization auswählen

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Wählen Sie die LLM-Quantization anhand von Runtime, Hardware und der auszuführenden Aufgabe. GGUF verpackt Model-Tensoren und Metadaten. AWQ und GPTQ reduzieren die Präzision der Weights nach dem Training. FP8 verwendet Acht-Bit-Gleitkommawerte. NF4 speichert Weights in vier Bit und wird häufig beim Training von QLoRA-Adaptern verwendet. Diese Namen beschreiben unterschiedliche Teile des Ladens und Ausführens eines Models.

Wählen Sie zuerst Runtime und Hardware. Wählen Sie anschließend eine Repräsentation, die die festgelegte Runtime für die konkrete Architektur unterstützt. Führen Sie Benchmarks für die Qualität auf den Aufgaben, Speicherbedarf, Zeit bis zum ersten Token, Throughput und gleichzeitige Anfragen durch, bevor Sie die kleineren Model-Dateien akzeptieren.

Prüfen Sie die Kompatibilität, bevor Sie Dateigröße oder Bitbreite vergleichen.

Entscheidungstabelle

ZielAusgangspunktVor der Verwendung prüfen
Lokale Inference auf CPU, Metal oder portabler llama.cpp-RuntimeGGUF mit dokumentierter QuantizationArchitekturunterstützung, Chat-Template, Kontextverhalten, Quantization-Einstellungen und Quellrevision.
GPU-Inference mit kalibrierter Weight-QuantizationAWQ oder GPTQServing-Engine, GPU, Bitbreite, Gruppengröße, Kernels und Model-Architektur.
Serving auf unterstützten Data-Center-GPUsFP8Hardwarefähigkeiten, Runtime-Implementierung, Calibration-Modus und End-to-End-Qualität.
Parametereffizientes Training mit eingefrorenen 4-Bit-WeightsNF4 über bitsandbytesArithmetische Präzision, Speicher für das Training und die Frage, ob das Deployment einen Adapter oder zusammengeführte Weights verwendet.
Einfacher Transformers-Prototypbitsandbytes mit 8 Bit oder 4 BitBackend-Unterstützung und ob der Prototyp-Pfad dem Produktionsserver entspricht.

GGUF legt keine einzelne Quantization fest

Eine .gguf-Dateiendung gibt an, wie Tensoren und Metadaten verpackt sind, nicht die Präzision jedes einzelnen Tensors. Namen wie Q4_K_M identifizieren llama.cpp-Quantization-Rezepte; diese Rezepte können Tensorgruppen unterschiedlich behandeln. Halten Sie den ursprünglichen Checkpoint, die Konverterversion, den Quantization-Befehl und die Datei-Hashes fest. Bei der Calibration werden repräsentative Eingaben verwendet, um Quantization-Parameter auszuwählen. Falls die Konvertierung diese Eingaben verwendet hat, sollte auch das Dataset dokumentiert werden.

AWQ und GPTQ benötigen einen passenden Serving-Pfad

AWQ- und GPTQ-Model-Dateien verwenden üblicherweise Safetensors sowie Einstellungen, die die Quantization-Methode beschreiben. Ein Model kann erfolgreich heruntergeladen werden und dennoch auf einen langsamen Kernel zurückfallen oder bei einer nicht unterstützten Architektur fehlschlagen. Prüfen Sie vor der Auswahl der Model-Dateien die aktuelle Support-Matrix für Transformers, vLLM oder die tatsächlich verwendete Server-Version.

FP8 und NF4 lösen unterschiedliche Probleme

FP8 ist attraktiv, wenn Beschleuniger und Serving-Stack das Format effizient implementieren. NF4 wird hauptsächlich verwendet, um eingefrorene Model-Weights während des Trainings kleiner Adapter in QLoRA-ähnlichen Workflows zu speichern. In bitsandbytes legt der Compute-Dtype die für die Arithmetik verwendete Präzision fest; sie kann sich von den gespeicherten Vier-Bit-Weights unterscheiden. Optionale Nested Quantization komprimiert zusätzlich die Konstanten, die zur Darstellung dieser Weights verwendet werden. Keine der beiden Bezeichnungen garantiert über verschiedene Models und Hardware hinweg dieselbe Qualität, Geschwindigkeit oder denselben Speicherbedarf.

Eval-Checkliste

Vier-Bit-Speicherung bedeutet nicht, dass der gesamte Prozess vier Bit pro Parameter benötigt. Quantization-Metadaten, Tensoren mit höherer Präzision, temporäre Puffer und der Attention-Cache benötigen zusätzlichen Speicher. Testen Sie die Prompt-Länge und die gleichzeitigen Anfragen, die Sie bedienen möchten.

  • Vergleichen Sie denselben ursprünglichen Checkpoint und dasselbe Prompt-Set.
  • Beziehen Sie Anfragen mit langem Kontext und gleichzeitige Anfragen ein.
  • Messen Sie die Korrektheit der Schemas und Tool Calls zusätzlich zur Perplexity.
  • Erfassen Sie den maximalen Geräte- und Host-Speicherbedarf.
  • Überprüfen Sie die Zeit bis zum ersten Token und den Ausgabe-Throughput.
  • Untersuchen Sie seltene oder besonders kostenintensive Teilmengen der Qualitätsauswertung.
  • Bewahren Sie Lizenz, Quellrevision, Konverter, Rezept und Hash zusammen mit den Model-Dateien auf.

Weiterführende Lektüre

Referenzen