Files
ubuntu-bare-metal/stacks/localai/coding-agent/KV-CACHE.md
T
tomasz-syn-grzegorza 359afb3a59 Initial import: bare-metal stacks, Server UI, GPU fan, tutorials.
Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI,
control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 12:02:04 +00:00

2.2 KiB
Raw Blame History

KV cache w LocalAI (llama-cpp)

Problem

Przy inference LLM pamięć KV rośnie z długością kontekstu. Domyślnie LocalAI/llama.cpp używa f16 dla K i V — pełna precyzja, najwięcej VRAM.

Na RTX 3090 Ti (24 GB) przy modelu Q4 + mmproj (Gemma 4 12B) kwantyzacja KV zwalnia miejsce na dłuższy context_size lub większy model.

Gdzie konfigurować

Miejsce KV cache?
docker-compose.yml nie
.env stacku nie
models/<nazwa>.yamlparameters: tak

Pola YAML (llama-cpp)

Pole Typ Domyślnie Opis
cache_type_k string f16 Kwantyzacja cache kluczy (-ctk w llama.cpp)
cache_type_v string f16 Kwantyzacja cache wartości (-ctv)
flash_attention bool/string off Wymagane przy skwantyzowanym cache_type_v
context_size int niski / auto Maks. tokenów kontekstu (wpływa na rozmiar KV)

Dozwolone typy (cuda13-llama-cpp)

f16, f32, q8_0, q4_0, q4_1, q5_0, q5_1

Rekomendacja dla tego serwera (q8_0)

parameters:
  cache_type_k: q8_0
  cache_type_v: q8_0
  flash_attention: true
  context_size: 8192

Po teście VRAM można podnieść context_size do 16384.

Szacunek VRAM (Gemma 4 12B Q4_0 + mmproj)

Składnik Orientacyjnie
Wagi + mmproj ~810 GB
KV @ f16, ctx 8k ~24 GB
KV @ q8_0, ctx 8k ~12 GB

TurboQuant (odłożone)

Backend turboquant + typy turbo2/turbo3/turbo4 dają większą kompresję (~34×), ale wymagają:

docker exec localai /local-ai backends install turboquant

oraz backend: turboquant w YAML. Nie wdrożone w bieżącej sesji.

Zastosowanie profilu

cd stacks/localai
./scripts/apply-kv-profile.sh gemma-4-12b-it-qat-q4_0
docker compose --profile localai restart localai

Weryfikacja

# modele
curl -s http://localhost:8070/v1/models -H "Authorization: Bearer $KEY"

# VRAM
nvidia-smi

# logi backendu
docker compose --profile localai logs localai 2>&1 | grep -iE 'cache|ctk|ctv|flash' | tail -20

Źródła