Skip to content
BotServBotServ
OllamaGeschwindigkeitPerformanceFlash AttentionKV-Cache

Ollama-Geschwindigkeit optimieren

Ollama schneller machen. Flash Attention, KV-Cache, Quantisierung, GPU-Nutzung und Parameter-Tuning.

S

schutzgeist

2 min read
Ollama-Geschwindigkeit optimieren

Ollama-Geschwindigkeit optimieren

Was dieser Artikel über Ollama-Geschwindigkeit behandelt

  • Faktoren, die Ollama verlangsamen.
  • Flash Attention und ggml-Optimierungen.
  • KV-Cache und seine Auswirkungen.
  • Quantisierung und Modellgrösse.
  • Praktische Konfiguration und Befehle.

Einleitung: Ollama-Geschwindigkeit optimieren

Ollama ist einfach zu bedienen, aber wer maximale Geschwindigkeit aus der Hardware herausholen möchte, muss einige Details verstehen. Langsame Tokens pro Sekunde entstehen oft durch suboptimale Quantisierung, unnötig grosse Kontexte, CPU- statt GPU-Betrieb oder fehlende Optimierungen wie Flash Attention. Mit der richtigen Konfiguration lassen sich in vielen Fällen deutliche Steigerungen erzielen.

Dieser Artikel zeigt, welche Hebel es gibt, um Ollama schneller zu machen.

Wichtige Begriffe

  • Flash Attention: Speicher-effiziente Attention-Berechnung.
  • KV-Cache: Zwischenspeicher für Schlüssel-Werte-Paare.
  • Quantisierung: Reduktion der Modellpräzision.
  • num_gpu: Anzahl GPU-Layers, die auf GPU ausgeführt werden.
  • num_thread: CPU-Threads.
  • batch_size: Anzahl Tokens, die gleichzeitig verarbeitet werden.
  • mlock: RAM-Reservierung verhindern Swapping.
  • f16_kv: KV-Cache im halb-float-Format.

Wichtigste Hebel

GPU statt CPU nutzen

ollama run llama3.1

Falls Ollama auf CPU läuft, prüfen:

nvidia-smi

oder

rocm-smi

Ollama muss mit CUDA oder ROCm erkannt werden.

Mehr GPU-Layer erzwingen

ollama run llama3.1 --verbose

Im API-Call:

{
  "options": {
    "num_gpu": 50
  }
}

num_gpu definiert, wie viele Modell-Layer auf die GPU geladen werden.

Flash Attention aktivieren

Ollama nutzt Flash Attention, wenn es unterstützt wird. Einige Modelle brauchen spezielle Kompilierung oder ggml-Build mit Flash-Attention-Unterstützung. Neuere Ollama-Versionen aktivieren es oft automatisch.

Quantisierung reduzieren

Kleinere Quantisierung bedeutet weniger VRAM und schnellere Berechnung:

  • Q4_0: schnell, geringe Qualität.
  • Q4_K_M: guter Kompromiss.
  • Q5_K_M: bessere Qualität.
  • Q8_0: grosse Datei, hohe Qualität.
ollama run llama3.1:8b-instruct-q4_K_M

Kontext reduzieren

PARAMETER num_ctx 4096

Mehr Kontext = langsamer. Nicht grösser als nötig.

num_predict begrenzen

PARAMETER num_predict 512

Das verhindert überlange Antworten und begrenzt die Berechnungszeit.

CPU-Threads anpassen

Für reinen CPU-Betrieb:

ollama run llama3.1

Oder per Modelfile:

PARAMETER num_thread 8

mlock verwenden

Verhindert, dass Ollama ausgelagert wird:

PARAMETER use_mlock true

Speicher messen

Während der Ausführung beobachten:

watch -n 1 nvidia-smi

Falls VRAM voll ist, reduziert man Modellgrösse, Quantisierung oder Kontext.

Batch-Size

Längere Eingaben werden schneller, wenn num_batch erhöht wird:

PARAMETER num_batch 512

Aber nicht alle Modelle und Backends profitieren gleich.

Temperatur auf 0

Für reproduzierbare und etwas schnellere Tests:

PARAMETER temperature 0

Ollama aktualisieren

ollama -v

Neue Versionen enthalten oft Geschwindigkeitsverbesserungen.

Praxisbeispiel Modelfile

FROM llama3.1:8b-instruct-q4_K_M

PARAMETER num_ctx 4096
PARAMETER num_gpu 50
PARAMETER num_predict 512
PARAMETER use_mlock true
PARAMETER num_batch 512
PARAMETER temperature 0.7

Tipps

  • Immer zuerst GPU-Nutzung prüfen.
  • Kleinste passende Quantisierung wählen.
  • Kontext nicht überdimensionieren.
  • Ollama auf neueste Version halten.
  • Benchmarks vor und nach der Optimierung fahren.
  • Hardware-Temperatur beobachten.

Typische Stolpersteine

  • Auf CPU statt GPU: Treiber oder Ollama-Installationsproblem.
  • Zu hoher num_ctx: Speicher läuft voll, Geschwindigkeit sinkt.
  • Nicht unterstützte Quantisierung: Modell fällt auf CPU zurück.
  • Zuviel KV-Cache: Langsamer Prompt-Eval.
  • Alte Ollama-Version: Flash Attention fehlt.
  • Thermische Drosselung: Nach langer Last langsamer.

FAQ: Ollama-Geschwindigkeit

Warum ist Ollama langsam? Meist CPU-Betrieb, zu grosses Modell, hoher Kontext oder thermische Drosselung.

Was ist der beste Weg, Ollama schneller zu machen? GPU nutzen, kleinere Quantisierung, Kontext reduzieren, Ollama aktuell halten.

Bringt Flash Attention viel? Ja, besonders bei langen Kontexten, aber nicht immer verfügbar.

Soll ich num_gpu ändern? Bei Problemen mit der automatischen Verteilung kann es helfen.

Hilft mehr RAM der CPU? Nur, wenn auf CPU gerechnet wird. Für GPU ist VRAM wichtiger.

Quellen und weiterführende Literatur

Zusammenfassung: Ollama-Geschwindigkeit optimieren

Die Ollama-Geschwindigkeit lässt sich durch GPU-Nutzung, passende Quantisierung, Reduzierung des Kontexts und Cache-Optimierungen deutlich verbessern. Flash Attention und aktuelle Ollama-Versionen helfen zusätzlich. Wer regelmässig benchmarkt und Parameter wie num_ctx, num_predict und num_batch anpasst, findet die optimale Balance für eigene Hardware und Anwendungsfall.

Zurück zum KI Blog
Share:

Ähnliche Beiträge