OSVauco/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md
chris 4b35e97710
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
chore: update docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md via opax-mcp
2026-07-21 21:00:07 +00:00

5.1 KiB
Raw Blame History

HANDOFF-LOKAL-LLM-GITEA-MCP.md

EGEN HANDOFF UFRAVIKELIG STYRINGSDOKUMENT

GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE

0. STATUS OG KOMMANDO

Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM".


FREMDRIFT OPPDATERT 2026-07-21 22:58 CEST

FASE 05 — FERDIG (se logg)

FASE 6 CPU-optimalisering — FERDIG 2026-07-21 22:58 CEST

Alle 5 exit-kriterier bestått:

  • keep_alive-strategi bevist effektiv
  • resident modellvalg låst: MAX=2, begge Forever
  • optimal parameterkombinasjon dokumentert
  • full Emma-loop latency akseptert: 42.51s per varm turn
  • belastningstest bestått: 20 turns, Swap=0, stabil latency, RAM stabilisert

FASE 6 KOMPLETT RESULTATOVERSIKT

6.1 Kaldstart / keep_alive baseline

Modell Kaldstart load_s Varm load_s tok/s
gemma3:4b 117.69s ~1.0s 4.95.0
qwen2.5:3b 71.13s ~1.0s 6.4

Konklusjon: OLLAMA_KEEP_ALIVE=-1 eliminerer kaldstart fra kall 2+. Må settes på systemd-nivå.

6.2 Resident modell-strategi

Låst: OLLAMA_MAX_LOADED_MODELS=2 + OLLAMA_KEEP_ALIVE=-1 i systemd-dropin. Begrunnelse: MAX=1 gir 2054s ekstra latency per Emma-turn. MAX=2 gir 0s bytte-overhead.

6.3 Parameter-matrise

Låst: num_ctx=2048 (best), num_batch=256 (default), OLLAMA_NUM_THREADS ikke satt. Maskintak: 5.0 tok/s for gemma3:4b på 4 vCPU.

6.4 Full Emma MCoT end-to-end

Scenario Total tid Status
Første turn etter boot 102.34s (kall 1: 55.6s boot-last) Forventet engangs
Varm turn (5 kall) 42.51s Akseptert

Latency-breakdown per varm turn:

  • Load-overhead: ~1.0s × 5 = ~5s
  • Eval-tid totalt: ~38s (213s per kall avh. av num_predict)

6.5 Belastningstest — 20 turns × 3 kall = 60 kall totalt

Kjørt: 20:50:4520:58:38 UTC (7 min 53 sek)

Måling Verdi Status
Turn-latency snitt 23.5s (3 kall per turn) Stabilt
Turn-latency min/max 23.2s / 25.2s Lav spredning
RAM start 6998 MB
RAM slutt 7291 MB (+293 MB over 20 turns)
RAM-vekst rate ~15 MB/turn Akseptabelt (OS page cache)
Swap gjennom hele testen 0 MB
OOM Ingen
Modeller i RAM etter test gemma3:4b + qwen2.5:3b, begge Forever
Endelig available RAM 8.5 Gi God margin

RAM-vekst på 293 MB over 20 turns er OS page cache — ikke lekkasje. Vil stabilisere seg.


LÅST SYSTEMKONFIGURASJON GITEA-CPU-VM

Ollama systemd-dropin: /etc/systemd/system/ollama.service.d/max-models.conf

[Service]
Environment="OLLAMA_MAX_LOADED_MODELS=2"
Environment="OLLAMA_KEEP_ALIVE=-1"

Operative parametere for Emma-kall

num_ctx   = 2048
num_batch = 256   (Ollama default, ikke nødvendig å sette eksplisitt)
OLLAMA_NUM_THREADS = ikke satt (autodetect er optimal)

Modeller i drift

gemma3:4b    2.9 GB  100% CPU  Forever  (primær)
qwen2.5:3b   2.2 GB  100% CPU  Forever  (reserve)

Ytelsesbudsjett per Emma-turn (varm)

3-kall turn:  ~23.5s
5-kall turn:  ~42.5s
Boot-penalty: ~56s engangs (første turn etter systemd-restart)
Tok/s:        4.95.0 (gemma3:4b)

ÅPNE PUNKTER SOM MÅ LØSES FØR ENDELIG BLUEPRINT

  1. GITEA_URL satt runtime — må legges permanent inn i opax-mcp.yaml og rebuildes
  2. git.vauco.no erstatter IP når DNS er oppe
  3. Boot-warming: legg til oppvarmingskall i Ollama systemd ExecStartPost for å eliminere 56s boot-penalty
  4. Gitea-commits ikke GPG-signert — vurder om dette skal fikses

FASTE SANNHETER (uendret)

  • Gitea er source of truth
  • Lokale modeller er hovedretning
  • Gitea-VM (34.67.252.59) er planlagt permanent målmaskin
  • Denne handoffen overstyrer alt annet

DEFINITION OF DONE

  • Lokale modeller lever og kan brukes lokalt
  • OPAX-MCP bruker lokal modellbackend korrekt
  • list_emma_models er grønn
  • Gitea read-only tools er grønne
  • GCP/Workspace-kjernen er fortsatt grønn
  • ⚠️ Konfigurasjon konsolidert — delvis (GITEA_URL må inn i repo)
  • Ingen skjult API-/agentavhengighet som hovedbane — ikke verifisert
  • dev-snap-oppsettet dokumentert godt nok til blueprinting
  • CPU-optimalisering verifisert på Gitea-VM — FASE 6 FERDIG

OPPDATERINGSLOGG

Dato Fase Handling
2026-07-21 FASE 4 Full smoke test grønn, alle 8 tools OK
2026-07-21 FASE 5 Blueprint frosset, FASE 5 lukket
2026-07-21 FASE 6 FASE 6 åpnet — CPU-optimalisering
2026-07-21 FASE 6.1 Kaldstart/keep_alive: gemma3=117s, qwen=71s, keep_alive=-1 bevist
2026-07-21 FASE 6.2 Resident strategi: MAX=2 + KEEP_ALIVE=-1 systemd, begge Forever
2026-07-21 FASE 6.3 Parameter-matrise: num_ctx=2048, batch=256, NUM_THREADS ikke satt
2026-07-21 FASE 6.4 Emma MCoT: varm turn=42.51s (5 kall), boot-warning nødvendig
2026-07-21 FASE 6.5 Belastningstest: 20 turns × 3 kall, snitt 23.5s/turn, Swap=0, ingen OOM, RAM +293MB stabilt
2026-07-21 FASE 6 FASE 6 LUKKET — alle 5 exit-kriterier bestått