llama.cpp: KV-Cache-Invalidierung bei langen Prompts mit opencode/pi.dev
Ein Reddit-Nutzer (u/No_Algae1753) beschreibt ein reproduzierbares Problem beim Einsatz von llama-swap mit llama.cpp in Kombination mit den Coding-Agenten opencode und pi.dev: Obwohl der LCP-Similarity-Score zwischen aufeinanderfolgenden Anfragen regelmäßig bei 0.99 oder höher liegt, fällt der interne KV-Cache-Zeiger n_past gelegentlich auf rund 4.000–5.000 Tokens zurück. Das erzwingt ein vollständiges Reprocessing von über 40.000 Tokens, was die Time-to-First-Token (TTFT) von typischerweise unter einer Sekunde auf über 222 Sekunden (222.411 ms für 44.016 Tokens) ansteigen lässt. Die verwendete Konfiguration setzt auf einen Kontext von 150.000 Tokens, 32 Context-Checkpoints, 2.500 MiB RAM-Cache und deaktiviertem Context-Shift. Als mögliche Ursachen nennt der Nutzer Cache-Invalidierung durch frühe Token-Änderungen seitens opencode, fehlerhaftes KV-Reuse oder Speicherlimits (beobachteter Cache-Zustand: 4.676 MiB bei einem Limit von 2.500 MiB). Der Post löste eine Community-Diskussion über optimale llama.cpp-Einstellungen für Long-Context-Coding-Agents aus.
- sim_best = 0.996, aber n_past fällt auf 4.750 Tokens zurück — 44.016 Tokens werden neu verarbeitet (222.411 ms)
- Normales KV-Reuse funktioniert: prompt eval time = 473 ms / 19 Tokens
- Cache überschreitet Limit: 4.676 MiB bei gesetztem Limit von 2.500 MiB (cache-ram 2500)
- Konfiguration: --ctx-size 150000, --ctx-checkpoints 32, --cache-reuse 256, -no-kvu, --no-context-shift
- Verdacht: opencode verändert frühe System-Prompt-Tokens zu häufig und invalidiert damit den gesamten KV-Cache
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
llama.cpp: KV-Cache-Invalidierung bei langen Prompts mit opencode/pi.dev
Ein Reddit-Nutzer (u/No_Algae1753) beschreibt ein reproduzierbares Problem beim Einsatz von llama-swap mit llama.cpp in Kombination mit den Coding-Agenten opencode und pi.dev: Obwohl der LCP-Similarity-Score zwischen aufeinanderfolgenden Anfragen regelmäßig bei 0.99 oder höher liegt, fällt der interne KV-Cache-Zeiger n_past gelegentlich auf rund 4.000–5.000 Tokens zurück. Das erzwingt ein vollständiges Reprocessing von über 40.000 Tokens, was die Time-to-First-Token (TTFT) von typischerweise unter einer Sekunde auf über 222 Sekunden (222.411 ms für 44.016 Tokens) ansteigen lässt. Die verwendete Konfiguration setzt auf einen Kontext von 150.000 Tokens, 32 Context-Checkpoints, 2.500 MiB RAM-Cache und deaktiviertem Context-Shift. Als mögliche Ursachen nennt der Nutzer Cache-Invalidierung durch frühe Token-Änderungen seitens opencode, fehlerhaftes KV-Reuse oder Speicherlimits (beobachteter Cache-Zustand: 4.676 MiB bei einem Limit von 2.500 MiB). Der Post löste eine Community-Diskussion über optimale llama.cpp-Einstellungen für Long-Context-Coding-Agents aus.
- sim_best = 0.996, aber n_past fällt auf 4.750 Tokens zurück — 44.016 Tokens werden neu verarbeitet (222.411 ms)
- Normales KV-Reuse funktioniert: prompt eval time = 473 ms / 19 Tokens
- Cache überschreitet Limit: 4.676 MiB bei gesetztem Limit von 2.500 MiB (cache-ram 2500)
- Konfiguration: --ctx-size 150000, --ctx-checkpoints 32, --cache-reuse 256, -no-kvu, --no-context-shift
- Verdacht: opencode verändert frühe System-Prompt-Tokens zu häufig und invalidiert damit den gesamten KV-Cache
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.