GGUF ist ein binäres Dateiformat, das für eine effiziente Speicherung und das schnelle Laden großer Sprachmodelle (LLM) mit GGML, einer C-basierten Tensorbibliothek für maschinelles Lernen, entwickelt wurde.
GGUF kapselt alle notwendigen Komponenten für die Inferenz, einschließlich Tokenizer und Code, in einer einzigen Datei. Es unterstützt die Konvertierung verschiedener Sprachmodelle wie Llama 3, Phi und Qwen2. Darüber hinaus erleichtert es die Modellquantisierung auf niedrigere Genauigkeiten, um die Geschwindigkeit und Speichereffizienz auf CPUs zu verbessern.
Wir schreiben oft „GGUF-Quantisierung“, aber GGUF selbst ist nur ein Dateiformat, keine Quantisierungsmethode. In llama.cpp sind mehrere Quantisierungsalgorithmen implementiert, um die Modellgröße zu reduzieren und das resultierende Modell im GGUF-Format zu serialisieren.
In diesem Artikel erfahren Sie, wie Sie ein LLM mithilfe einer Wichtigkeitsmatrix (imatrix) und der Okay-Quantisierungsmethode genau quantisieren und in GGUF konvertieren. Ich stelle den GGUF-Konvertierungscode für Gemma 2 Instruct unter Verwendung einer imatrix bereit. Dies funktioniert genauso mit anderen von llama.cpp unterstützten Modellen: Qwen2, Llama 3, Phi-3 usw. Wir werden auch sehen, wie Sie die Genauigkeit der Quantisierung und den Inferenzdurchsatz der resultierenden Modelle bewerten.