OSVauco/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md
chris a50834eb1e
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 20:49:04 +00:00

5.8 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:47 CEST

FASE 05 — FERDIG (se tidligere logg)

FASE 6 CPU-optimalisering — PÅGÅR

Låste parametere:

  • OLLAMA_KEEP_ALIVE=-1
  • OLLAMA_MAX_LOADED_MODELS=2
  • num_ctx=2048, num_batch=256
  • OLLAMA_NUM_THREADS = ikke satt

Testrekkefølge:

  1. Kaldstart / keep_alive baseline — FERDIG
  2. Resident modell-strategi — FERDIG
  3. Parameter-matrise — FERDIG
  4. Full Emma MCoT end-to-end — FERDIG 2026-07-21
  5. Belastningstest med samtidig Gitea + agent-last

Exit-kriterium:

  • keep_alive-strategi bevist effektiv
  • resident modellvalg låst
  • optimal parameterkombinasjon dokumentert
  • full Emma-loop latency akseptert: 42.51s per varm turn (5 kall)
  • 2-timers belastningstest bestått uten OOM og uten swap

FASE 6.1 KALDSTART / KEEP_ALIVE BASELINE — FERDIG

Test Modell load_s tok/s Status
1.1 Kaldstart gemma3:4b 117.69s 4.9
1.2 Kaldstart qwen2.5:3b 71.13s 6.4
1.5 Varme kall ×5 gemma3:4b ~1.0s ~5

Konklusjon: keep_alive=-1 eliminerer 117s kaldstart fra kall 2+.


FASE 6.2 RESIDENT MODELL-STRATEGI — FERDIG

Konfigurasjon Resultat
MAX=1 Bytte 59s × 46 kall = 2054s ekstra per turn
MAX=2 + KEEP_ALIVE=-1 0s bytte, begge Forever, 6.8 GB, Swap=0

Låst: OLLAMA_MAX_LOADED_MODELS=2 + OLLAMA_KEEP_ALIVE=-1 i systemd.


FASE 6.3 PARAMETER-MATRISE — FERDIG

num_ctx num_batch avg tok/s Delta
1024 256 4.9 baseline
2048 256 5.0 +0.1 VINNER
4096 256 4.3 -14% ⚠️
2048 128 4.9 -0.1
2048 512 4.8 -0.2

Threads (2/3/4 vCPU): alle 4.84.9 tok/s — ingen forskjell, ikke sett.

Låst: num_ctx=2048, num_batch=256 (default), OLLAMA_NUM_THREADS ikke satt.


FASE 6.4 FULL EMMA MCOT END-TO-END — FERDIG 2026-07-21

Kjørt på: gitea-cpu-vm (34.67.252.59) — gemma3:4b, 5 sekvensielle kall (simulert Emma MCoT)

Test 4a — første turn etter systemd-restart (kaldstart kall 1)

Kall load_s eval_s Type
1 55.6s 1.95s embed (boot-kaldstart)
2 1.06s 6.5s think
3 1.0s 6.3s choose_action
4 1.01s 7.23s choose_action
5 1.06s 13.0s execute_action
Total 102.34s

Rotårsak kall 1: modellen ikke i RAM etter systemd-restart — engangs boot-kostnad.

Test 4b — varm turn (modell allerede i RAM, UNTIL=Forever)

Kall load_s eval_s Type
1 1.03s 1.96s embed
2 1.06s 6.18s think
3 1.01s 6.15s choose_action
4 1.01s 6.5s choose_action
5 1.07s 13.08s execute_action
Total 42.51s

EMMA MCOT LATENCY LÅST

Varm Emma-turn (5 kall):  42.51s
Load-overhead per kall:   ~1.0s  (uunngåelig på CPU)
Eval-tid per kall:        213s  (avh. av num_predict)
Boot-kaldstart (1 gang):  ~56s ekstra første turn

Konklusjoner:

  1. 42.51s per varm turn er akseptabelt for asynkron/agent-bruk — ikke interaktiv chat
  2. Boot-warming er nødvendig — legg inn oppvarmingskall i Ollama-oppstartskript etter systemd start
  3. load_s ~1.0s per kall er fast overhead på CPU — ikke reduserbar med parameterjustering
  4. Ingen RAM-degradering — 6.8 GB used, Swap=0 etter full sekvens
  5. qwen2.5:3b ble ikke testet i MCoT — Emma bruker primært gemma3:4b; qwen2.5:3b er reserve

RAM etter Fase 6.4

NAME          SIZE      PROCESSOR    UNTIL
gemma3:4b     2.9 GB    100% CPU     Forever
qwen2.5:3b    2.2 GB    100% CPU     Forever
Mem: 15Gi | 6.8Gi used | 8.8Gi available | Swap: 0B

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

  • GITEA_URL satt runtime — må legges permanent inn i opax-mcp.yaml og rebuildes
  • git.vauco.no er planlagt permanent domene for Gitea — erstatter IP når DNS er oppe
  • Gitea-commits er ikke GPG-signert — vurder om dette skal fikses
  • Boot-warming: legg til oppvarmingskall i Ollama systemd ExecStartPost eller egen service

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.5 gjenstår

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, num_batch=256, NUM_THREADS ikke satt
2026-07-21 FASE 6.4 Emma MCoT end-to-end: varm turn=42.51s (5 kall), boot-warming nødvendig, RAM OK