Skip to content
BotServBotServ
OllamaQuantisierungGGUFllama.cppModell kleiner machen

Quantisierung in der Praxis mit Ollama

Modelle quantisieren mit llama.cpp und Ollama. Q4_K_M, Q5_K_M, Q8_0 und Eigenbau eigener GGUF-Dateien.

S

schutzgeist

3 min read
Quantisierung in der Praxis mit Ollama

Quantisierung in der Praxis mit Ollama

Was dieser Artikel über Ollama-Quantisierung behandelt

  • Welche Quantisierungsmethoden es gibt.
  • Wie man Modelle mit llama.cpp zu GGUF quantisiert.
  • Unterschiede zwischen Q4_K_M, Q5_K_M, Q8_0 und anderen Methoden.
  • Wie man eigene GGUF-Dateien in Ollama importiert.
  • Tipps für Qualität, Geschwindigkeit und Speicherbedarf.

Einleitung: Quantisierung in der Praxis mit Ollama

Ollama bietet viele Modelle bereits in unterschiedlichen Quantisierungen. Manchmal möchte man aber ein spezielles Modell aus Hugging Face selbst in ein passendes Format bringen, zum Beispiel weil die Standard-Tags nicht passen oder man die Dateigrösse genau abstimmen will. Dafür kann man das Modell zu GGUF konvertieren und dann quantisieren. Das passende Verfahren bestimmt dabei, wie viel Speicher man spart und wie stark die Qualität sinkt.

Dieser Artikel zeigt die wichtigsten Quantisierungsstufen und den praktischen Ablauf mit llama.cpp.

Wichtige Begriffe

  • Quantisierung: Reduktion der Bit-Tiefe von Modellgewichten.
  • GGUF: Format von llama.cpp für gespeicherte Modelle.
  • Q4_K_M: 4-Bit-Quantisierung, K-Quant-Medium, guter Kompromiss.
  • Q5_K_M: 5-Bit-Quantisierung, höhere Qualität als Q4.
  • Q8_0: 8-Bit-Quantisierung, fast Originalqualität.
  • F16: Halbpräzision, 16 Bit pro Parameter.
  • FP32: Volle 32-Bit-Flieskommapräzision.
  • imatrix: Importance Matrix, verbesserte Quantisierung.
  • KLD: Perplexity-Verfahren zur Qualitätsbewertung.

Warum quantisieren?

  • Grössere Modelle passen in weniger VRAM.
  • Mehrere Modelle können gleichzeitig im Speicher gehalten werden.
  • Ladezeiten werden kürzer.
  • CPUs können Modelle überhaupt erst nutzen.
  • Speicherplatz auf der Festplatte sinkt.

Nachteilig ist ein möglicher Qualitätsverlust. Bei 4-Bit ist der Unterschied bei vielen Modellen gering, bei sehr komplexen Aufgaben kann er spürbar sein.

Übliche Quantisierungsstufen

StufeBitsSpeicherbedarfQualitätEinsatz
Q2_K2sehr geringniedrigNotfall-CPU
Q3_K_S / Q3_K_M3geringmässigSehr wenig VRAM
Q4_K_M4gutgutStandard für Consumer
Q5_K_M5höhersehr gutBessere Qualität
Q8_08hochfast identischWenn Platz vorhanden
F1616sehr hochOriginalFine-Tuning oder Training

Voraussetzungen

Eine Möglichkeit ist die Nutzung von llama.cpp oder unsloth:

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

Alternativ gibt es vorkompilierte Binaries oder Docker-Images.

Modell zu GGUF konvertieren

Für Modelle aus Hugging Face kann convert_hf_to_gguf.py genutzt werden:

python convert_hf_to_gguf.py /pfad/zum/modell \
  --outfile mein-modell-f16.gguf \
  --outtype f16

Das Ergebnis ist ein F16-GGUF, das noch nicht quantisiert wurde.

Quantisieren mit llama-quantize

./llama-quantize mein-modell-f16.gguf mein-modell-q4_k_m.gguf Q4_K_M

Weitere Stufen:

./llama-quantize mein-modell-f16.gguf mein-modell-q5_k_m.gguf Q5_K_M
./llama-quantize mein-modell-f16.gguf mein-modell-q8_0.gguf Q8_0

Importance Matrix verwenden

Für bessere Q4- und Q5-Ergebnisse kann eine imatrix berechnet werden:

./llama-imatrix -m mein-modell-f16.gguf -f trainingsdaten.txt --output-file mein-modell.imatrix
./llama-quantize --imatrix mein-modell.imatrix mein-modell-f16.gguf mein-modell-q4_k_m.gguf Q4_K_M

Eine imatrix hilft, wichtige Gewichte präziser zu quantisieren.

Modell in Ollama importieren

Ein Modelfile erstellen:

FROM ./mein-modell-q4_k_m.gguf

SYSTEM """
Du bist ein präziser Assistent.
"""

PARAMETER temperature 0.7

Dann importieren:

ollama create mein-modell -f Modelfile

Mehrere Quantisierungen anbieten

Man kann ein Modell in verschiedenen Stufen importieren:

ollama create mein-modell:q4 -f Modelfile.q4
ollama create mein-modell:q5 -f Modelfile.q5
ollama create mein-modell:q8 -f Modelfile.q8

Qualität prüfen

Nach dem Quantisieren sollte das Modell an bekannten Aufgaben getestet werden. Wichtige Bereiche sind:

  • Zusammenfassungen
  • Coding-Aufgaben
  • Mathematik
  • Mehrsprachigkeit
  • Logisches Schlussfolgern

Ein Vergleich mit dem F16-Original zeigt, wie stark die Qualität sinkt.

Grösse und Geschwindigkeit

  • Kleinere Quantisierte Modelle sind schneller, weil weniger Speicherbandbreite benötigt wird.
  • Bei Q2_K und Q3_K_S kann die Qualität stark einbrechen.
  • Q4_K_M ist der Standard-Kompromiss für Consumer-GPUs.
  • Q8_0 ist fast verlustfrei, braucht aber deutlich mehr Speicher.

Tipps

  • Q4_K_M für den Alltag nutzen.
  • Q5_K_M für Coding oder komplexe Aufgaben.
  • Q8_0 verwenden, wenn genug VRAM vorhanden ist.
  • F16 nur für Training oder Spezialfälle.
  • Imatrix für wichtige Modelle berechnen.
  • Ergebnisse mit dem Original vergleichen.

Typische Stolpersteine

  • Falsches Format: Hugging Face Modelle müssen erst zu GGUF konvertiert werden.
  • Falsche Architektur: Nicht jedes Modell wird von llama.cpp unterstützt.
  • Zu starke Quantisierung: Q2_K oder Q3_K_M zerstört oft die Qualität.
  • Fehlende Tokenizer-Dateien: Konvertierung braucht vollständige Modelldateien.
  • VRAM trotzdem zu klein: Modell passt nicht, obwohl quantisiert.
  • Korrupte GGUF: Prüfsumme oder Testlauf durchführen.

FAQ: Quantisierung in der Praxis

Welche Quantisierung ist der beste Kompromiss? Für die meisten Anwendungen Q4_K_M.

Verliert man viel Qualität? Bei Q4_K_M meist wenig, bei Q8_0 fast nichts.

Kann ich Modelle aus Hugging Face in Ollama nutzen? Ja, über Konvertierung zu GGUF und Import in Ollama.

Brauche ich Linux? llama.cpp läuft auch unter Windows und macOS, Linux ist aber am gebräuchlichsten.

Wie lange dauert das Quantisieren? Je nach Modellgrösse und CPU Minuten bis Stunden.

Quellen und weiterführende Literatur

Zusammenfassung: Quantisierung in der Praxis mit Ollama

Quantisierung ist unverzichtbar, um grosse Modelle auf Consumer-Hardware laufen zu lassen. Mit llama.cpp lassen sich Hugging Face Modelle zu GGUF konvertieren und in Stufen wie Q4_K_M, Q5_K_M oder Q8_0 quantisieren. Für bestmögliche Ergebnisse bei geringem Speicher hilft eine Importance Matrix. Nach dem Import über ein Ollama-Modelfile kann das quantisierte Modell wie jedes andere Ollama-Modell genutzt werden. Wichtig ist, Qualität und Speicherbedarf abzuwägen und die passende Stufe für die eigene Hardware und Aufgabe zu wählen.

Zurück zum KI Blog
Share:

Ähnliche Beiträge