diff --git a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md index 4d44658..48e455a 100644 --- a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md +++ b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md @@ -7,7 +7,7 @@ Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal L --- -## FREMDRIFT – OPPDATERT 2026-07-22 03:29 CEST +## FREMDRIFT – OPPDATERT 2026-07-22 03:55 CEST ### ✅ FASE 0–5 — FERDIG ### ✅ FASE 6 – CPU-optimalisering — FERDIG @@ -16,8 +16,8 @@ Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal L ### ✅ OPAX-MCP – GITEA_URL permanent + deploy — FERDIG 2026-07-21 23:53 CEST ### ✅ SMOKE-TEST – Alle 37 tools — FERDIG 2026-07-22 00:25 CEST ### ✅ FASE 6.5 – VM-oppgradering + modellarkitektur — VERIFISERT 2026-07-22 +### 🟡 FASE 7 – 14B-validering utført, arkitektur justeres — PÅGÅR ### ⏳ GPG-SIGNERING – Commits verified — PÅGÅR -### ⏳ FASE 7 – Lokal hjerne / derivat-modell — PLANLAGT ### ⏳ FASE 8 – Backup / snapshot-strategi — PLANLAGT --- @@ -32,54 +32,69 @@ Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal L - Ollama svarer på port `11434` ### Bekreftet ressursstatus -- Disk: ca. 99 GB total, ca. 74 GB ledig -- Ollama-modeller bruker ca. 13 GB -- Systemet er komfortabelt i idle og har god RAM-headroom for videre modelltesting +- Disk: ca. 99 GB total +- Ny modellstack etter 14B-nedlasting: ca. 29 GB modeller totalt +- Systemet har fortsatt god diskmargin, men CPU er nå den reelle begrensningen ### Faktisk modeller lokalt per 2026-07-22 - `gemma3:4b` - `gemma3:12b` - `qwen2.5:3b` +- `qwen2.5:14b` +- `qwen2.5-coder:14b` -### Ny anbefalt modellarkitektur +### Verifisert ytelsesfunn +- `gemma3:4b` holder ca. `4.9–5.0 tok/s` varm og fungerer interaktivt +- `qwen2.5:14b` målte ca. `1.4 tok/s` varm på faktisk VM +- Kort prompt ga ca. `249s` eval-duration på varm modell ved `stream: false` +- Konklusjon: `qwen2.5:14b` er for treg som standard interaktiv agent på nåværende CPU-VM + +### Revidert anbefalt modellarkitektur - **Frontmodell:** `gemma3:4b` - Brukes for raske svar, enkel resonnering og billig default -- **Standard agent/tool-modell:** `qwen2.5:14b` - - Brukes når oppgaven trenger tool calling, bedre struktur og høyere kvalitet -- **Kode-/repo-modell:** `qwen2.5-coder:14b` - - Brukes for repo-forståelse, patching, refaktorering, debugging og tyngre dev-assistanse -- **Valgfri tung resonneringsmodell later:** `gemma3:27b` - - Kun ved behov, etter praktisk validering av RAM, lastetid og latency +- **Lett tool-/agentmodell:** `qwen2.5:3b` + - Brukes for tool calling som må være responsivt nok i praksis +- **Neste kandidat for mellomlag:** `qwen2.5:7b` + - Skal testes som mulig erstatning for `qwen2.5:14b` som standard Qwen-lag +- **Kode-/repo batch-modell:** `qwen2.5-coder:14b` + - Beholdes for repo-forståelse, patching, refaktorering og tyngre asynkrone kodeoppgaver +- **Ikke anbefalt nå:** `qwen2.5:14b` som interaktiv standardmodell + - For treg på CPU til primær bruk +- **Ikke anbefalt nå:** `gemma3:27b` + - Uaktuell før videre CPU-/ytelsesløft; forventes tregere enn 14B-laget ### Operativ ruting 1. Start med `gemma3:4b` -2. Eskaler til `qwen2.5:14b` når tools, struktur eller mer resonnering trengs -3. Eskaler til `qwen2.5-coder:14b` når oppgaven er tydelig kode- eller repo-orientert -4. Test `gemma3:27b` kun som valgfri tung modell, ikke som default +2. Eskaler til `qwen2.5:3b` når oppgaven trenger tools og respons fortsatt må være praktisk +3. Bruk `qwen2.5-coder:14b` kun når oppgaven er tydelig kode-/repo-orientert og kan tåle høy latency +4. Test `qwen2.5:7b` som mulig nytt mellomlag før eventuell fjerning av `qwen2.5:14b` +5. Ikke last ned `gemma3:27b` nå ### Viktige vurderinger -- `qwen2.5-coder:32b` vurderes foreløpig som mulig for tung på nåværende oppsett og utsettes -- Nåværende strategi er gradvis oppskalering av modellstack, ikke ny VM-oppgradering -- Fokus er å validere praktisk responstid, RAM-bruk og stabilitet før større modellvalg fryses +- CPU, ikke RAM eller disk, er nå flaskehalsen +- `qwen2.5:14b` ga svak praktisk interaktiv ytelse til tross for vellykket installasjon +- `qwen2.5-coder:14b` beholdes foreløpig fordi use casen er batch/dev-assistanse, ikke chat-latency +- `qwen2.5:7b` er neste rasjonelle kandidat for bedre balanse mellom kvalitet og fart +- `qwen2.5-coder:32b` og `gemma3:27b` utsettes ### Neste konkrete steg -- Last ned: - - `qwen2.5:14b` - - `qwen2.5-coder:14b` -- Test: +- Test / vurder: + - `ollama rm qwen2.5:14b` + - `ollama pull qwen2.5:7b` +- Test deretter: - enkel chat-latency - tool calling - - repo-/kodeoppgaver - RAM- og diskpåvirkning + - om `qwen2.5:7b` kan overta rollen som standard Qwen-lag ```bash -# Last ned neste lag -ollama pull qwen2.5:14b -ollama pull qwen2.5-coder:14b +# Foreslått neste endring +ollama rm qwen2.5:14b +ollama pull qwen2.5:7b -# Bekreft etter nedlasting +# Bekreft etterpå curl http://localhost:11434/api/tags -df -h / +free -h du -sh /usr/share/ollama/.ollama/models ``` @@ -172,7 +187,7 @@ NS-bytte: Proisp → Google Cloud DNS **23:44 CEST** --- -## FASE 7 – LOKAL HJERNE / DERIVAT-MODELL (planlagt) +## FASE 7 – LOKAL HJERNE / DERIVAT-MODELL (pågår) ### Mål Erstatte stor API-modell (Gemini/Claude/Perplexity) med lokal modell som hjerne i OPAX-arkitekturen. Redusere API-avhengighet på sikt. @@ -194,24 +209,34 @@ Lokal stor modell ← Hjerne (lokal, gratis) Emma gemma3:4b ← Lokal inferens (rask) ``` -### Kandidatmodeller for e2-highmem-4 (32 GB RAM) — oppdatert 2026-07-22 +### Kandidatmodeller for e2-highmem-4 (32 GB RAM) — oppdatert 2026-07-22 03:55 | Modell | RAM | Tok/s CPU | Agentevne | Vurdering | |---|---|---|---|---| | `gemma3:4b` (nå) | 2.9 GB | ~5 | Svak | Front/hurtig default | -| `gemma3:12b` | ~8 GB | ~1.5–2 | God | Allsidig | -| `qwen2.5:14b` | ~9 GB | ~1.5 | Sterk | **Standard agent/tool — last ned nå** | -| `qwen2.5-coder:14b` | ~9 GB | ~1.5 | Kode-sterk | **Kode/repo — last ned nå** | -| `gemma3:27b` | ~17 GB | <1 | Tilnærmet god | Valgfri tung — test etter 14B-laget | -| `qwen2.5-coder:32b` | ~20 GB | <1 | Svært sterk | Utsatt — mulig for tung | +| `qwen2.5:3b` | ~2.0–2.5 GB | ~3–4 | God | **Beste raske tool-kandidat nå** | +| `gemma3:12b` | ~8 GB | ~1.5–2 | God | Allsidig, men ikke tool-modell | +| `qwen2.5:7b` | ~5.5–6 GB | forventet ~2.5–3 | God | **Neste kandidat som mellomlag** | +| `qwen2.5:14b` | ~9 GB | målt ~1.4 | Sterk | **For treg som interaktiv agent** | +| `qwen2.5-coder:14b` | ~9 GB | forventet ~1.4 | Kode-sterk | Batch / async kodebruk | +| `gemma3:27b` | ~17 GB | forventet <1 | Tilnærmet god | Ikke aktuell nå | +| `qwen2.5-coder:32b` | ~20 GB | <1 | Svært sterk | Utsatt — for tung | + +### Validerte funn +- `qwen2.5:14b` installert og verifisert +- Varm enkel chat-test ga ca. `249.3s` eval-duration og `1.4 tok/s` +- Resultatet vurderes som for tregt for interaktiv standardbruk +- Dette flytter `qwen2.5:14b` fra planlagt standardmodell til mulig batch-/asynkronmodell +- `qwen2.5:7b` er neste kandidat som må testes før modellstack fryses ### Exit-kriterier Fase 7 -- [ ] `qwen2.5:14b` installert og testet -- [ ] `qwen2.5-coder:14b` installert og testet -- [ ] Ytelsesmåling: tok/s, RAM-bruk, swap=0 -- [ ] Kvalitetstest: tool calling, kode- og repo-oppgaver +- [x] `qwen2.5:14b` installert og testet +- [ ] `qwen2.5:7b` installert og testet +- [ ] Beslutning tatt: fjern eller behold `qwen2.5:14b` +- [ ] `qwen2.5-coder:14b` testet på konkret kode-/repo-oppgave +- [ ] Ytelsesmåling: RAM-bruk, swap=0 +- [ ] Endelig ruting besluttet for fast / light / coder / batch - [ ] GEMINI.md-lignende systemd-prompt/konfig for Emma laget -- [ ] Beslutning: erstatter eller komplementerer? ### Derivat-strategi Emma skal få eget identitetsdokument (tilsvarende GEMINI.md for Jason) med: @@ -283,11 +308,13 @@ gcloud compute disks create gitea-restore \ ## ÅPNE PUNKTER 1. GPG-signering — få commits verified (pågår) 2. `git.vauco.no` — verifiser propagering -3. **Fase 6.5/7: Last ned `qwen2.5:14b` + `qwen2.5-coder:14b`** ← neste steg -4. Test: tool calling, kode-/repo-oppgaver, RAM/disk-påvirkning -5. Emma derivat-dokument (tilsvarende GEMINI.md) -6. Fase 8: Snapshot-policy aktiveres -7. Gitea passord byttes (eksponert i chat) +3. Test `qwen2.5:7b` som nytt mellomlag +4. Beslutt om `qwen2.5:14b` skal fjernes etter 7B-test +5. Test `qwen2.5-coder:14b` på konkret kode-/repo-oppgave +6. Mål RAM/swap under modell-last +7. Emma derivat-dokument (tilsvarende GEMINI.md) +8. Fase 8: Snapshot-policy aktiveres +9. Gitea passord byttes (eksponert i chat) ## FASTE SANNHETER - Gitea er source of truth @@ -295,6 +322,7 @@ gcloud compute disks create gitea-restore \ - Gitea-VM (34.67.252.59) er permanent målmaskin - Dev-snap (34.170.51.84) er Jason sin arbeidsstasjon — kan ikke stenges før lokal hjerne er verifisert - Denne handoffen overstyrer alt annet +- CPU er nå primær flaskehals for tyngre lokale modeller på denne VM-en ## DEFINITION OF DONE - ✅ Lokale modeller lever og kan brukes lokalt @@ -307,10 +335,13 @@ gcloud compute disks create gitea-restore \ - ✅ DNS migrert til Google Cloud DNS - ✅ Smoke-test alle 37 tools — FERDIG - ✅ VM oppgradert til e2-highmem-4 (32 GB RAM) — FERDIG +- ✅ `qwen2.5:14b` installert og ytelsestestet — FERDIG - ⏳ `git.vauco.no` live — propagering pågår - ⏳ GPG-signering verified — pågår -- ⏳ `qwen2.5:14b` + `qwen2.5-coder:14b` lastet ned og testet — planlagt -- ⏳ Fase 7: lokal hjerne verifisert — planlagt +- ⏳ `qwen2.5:7b` testet og vurdert — planlagt +- ⏳ Endelig mellomlag valgt (`qwen2.5:7b` vs behold `qwen2.5:14b`) — planlagt +- ⏳ `qwen2.5-coder:14b` verifisert i konkret kodeflyt — planlagt +- ⏳ Fase 7: lokal hjerne verifisert — pågår - ⏳ Fase 8: daglig snapshot-backup — planlagt ## OPPDATERINGSLOGG @@ -323,3 +354,4 @@ gcloud compute disks create gitea-restore \ | 2026-07-22 00:25 | Smoke-test fullført — alle kategorier grønne | | 2026-07-22 00:55 | Fase 8 (backup/snapshot) lagt inn, GPG-signering pågår | | 2026-07-22 03:29 | FASE 6.5 lagt inn: e2-highmem-4 verifisert, ny modellarkitektur (Gemma4b → Qwen14b → Qwen-coder-14b → Gemma27b), neste steg: pull qwen2.5:14b + qwen2.5-coder:14b | +| 2026-07-22 03:55 | Handoff oppdatert etter 14B-validering: qwen2.5:14b målt til ~1.4 tok/s varm og vurdert for treg som interaktiv standardmodell; qwen2.5:7b satt som neste kandidat; gemma3:27b og coder32b utsatt |