M3 Bake-off abgeschlossen: qwen3.8:27b als Antwortmodell fixiert (D7)

Alle 5 Kandidaten auf dem Goldset (35 Fragen, Antwortmodus) gemessen.
Protokoll Zitier-Praezision > Verweigerungskorrektheit > Latenz:

  qwen3.8:27b   100% / 94,3% / 80,6%  32s  -> Sieger, fixiert
  gemma4:26b    100% / 91,4% / 67,7%  7,9s -> Latenz-Kandidat (4x schneller)
  gemma4:12B    94,3% / 91,4% / 77,4%  21s
  qwen3.6:27B   94,3% / 85,7% / 80,6%  43s
  mistral-small3.1:24b 100% / 71,4% / 58,1%  20s

mistral-Deutsch-Hypothese praktisch widerlegt (71,4% Verweigerungs-
korrektheit). q-008/q-031 verweigern beide Finalisten -> Prompt-/
Retrieval-Tuning, nicht modellspezifisch. Tabelle in planung.md 13,
README und MEMORY aktualisiert.
This commit is contained in:
2026-09-14 23:30:36 +02:00
parent 0281d8fa24
commit d156da205d
3 changed files with 63 additions and 33 deletions
+24 -24
View File
@@ -5,10 +5,10 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md`
## Current focus ## Current focus
M1 und M2 sind **fertig und gegen den echten Ollama validiert**. M1, M2 und **M3 (Bake-off) sind abgeschlossen**`qwen3.8:27b` ist als
Offen: Modell-Bake-off (M3) mit den bereits installierten Kandidaten Antwortmodell fixiert (D7). Offen: Fehlverweigerungs-Tuning (q-008,
und Prompt-Tuning der Fehlverweigerungen. Odoo-Integration (M4) separat q-031 — beide Finalisten betreffend) und Odoo-Integration (M4, separat
zu planen. zu planen).
## Completed (2026-09-14) ## Completed (2026-09-14)
@@ -35,19 +35,19 @@ zu planen.
einen eigenen, fast leeren Ollama auf localhost:11434 (dorthin ging der einen eigenen, fast leeren Ollama auf localhost:11434 (dorthin ging der
erste bge-m3-Pull — auf die GPU-Maschine neu gepullt). Ziel-Instanz ist erste bge-m3-Pull — auf die GPU-Maschine neu gepullt). Ziel-Instanz ist
ausschließlich `http://100.103.83.12:11435`. ausschließlich `http://100.103.83.12:11435`.
- **Bake-off M3, Zwischenstand** (Antwortmodus, 35 Fragen): - **Bake-off M3 — abgeschlossen (D7)**: alle 5 Kandidaten gemessen
- `qwen3.8:27b` (Baseline): Zitier-Präzision **100 %**, Verweigerung (Tabelle in `planung.md` Abschnitt 13). **`qwen3.8:27b` gewinnt**
korrekt 94,3 %, erwartete Quelle 80,6 %, mean 32 s/p95 53 s, (100 % Zitier-Präzision, 94,3 % Verweigerung korrekt, 80,6 % erwartete
4 Regenerierungen (`data/eval-qwen38.json`). Quelle, 32 s mean). `gemma4:26b` = dokumentierter Latenz-Kandidat
- `qwen3.6:27B`: Zitier-Präzision 94,3 % (2 dauerhafte Verstöße), (7,9 s mean, 100 % Zitier-Präzision, aber 67,7 % Quellentreue, 3
Verweigerung 85,7 %, mean 43 s/p95 89 s, 10 Regenerierungen — Fehlverweigerungen). mistral-small3.1: 71,4 % Verweigerungskorrektheit
klar schwächer (`data/eval-qwen36.json`). — Deutsch-Hypothese praktisch widerlegt. qwen3.6:27B: 2 dauerhafte
- `gemma4:26b`: Lauf abgebrochen (GPU-Maschine crashte mitten im Lauf). Zitierverletzungen, 10 Regenerierungen. gemma4:12B: 2 Verletzungen.
- `mistral-small3.1:24b`, `gemma4:12B`: ausstehend (Server-Neustart). Reports: `data/eval-*.json`. q-008/q-031 verweigern beide Finalisten —
- Kandidaten sind installiert; Pro-Kandidat-Befehl: Prompt-/Retrieval-Tuning (nicht modellspezifisch).
`PV_ANSWER_MODEL=<tag> python3 -u -m agent.cli eval --answers --json-out data/eval-<name>.json` - **Remote-GPU-Maschine**: nach `systemctl restart ollama` (User-Aktion)
(vor jedem Lauf vorheriges Modell entladen: `/api/generate` mit liefen alle Läufe stabil; zwischen Kandidaten wurde per `keep_alive: 0`
`keep_alive: 0`; `python3 -u` gegen Buffering bei Absturz). entladen (Crash-Ursache war der Modell-Swap-Stress beim gemma4-Lauf).
## Open issues / blockers ## Open issues / blockers
@@ -62,13 +62,9 @@ zu planen.
Hebel: weniger Kontextblöcke (aktuell 8+6), schnellere Kandidaten. Hebel: weniger Kontextblöcke (aktuell 8+6), schnellere Kandidaten.
- **Cloud-Modelle** (`*:cloud` auf der Ollama-Instanz) sind für Antworten - **Cloud-Modelle** (`*:cloud` auf der Ollama-Instanz) sind für Antworten
tabu (Anforderung: lokal). Nicht versehentlich konfigurieren. tabu (Anforderung: lokal). Nicht versehentlich konfigurieren.
- **Bake-off M3 — Remote-GPU-Maschine neu starten**: seit ~22:45 sterben - **Bake-off M3 — erledigt** (siehe Completed; Entscheidung D7 in
dort ALLE llama-server-Loads (auch bge-m3), der Ollama-Hauptprozess `planung.md`). Nach Tuning von Prompt/Retrieval: erneuter kurzer
antwortet noch (API-Requests 500 „llama-server process has terminated: Bestätigungslauf nur mit dem Sieger.
exit status 1"). Ursache vermutlich GPU-/Runner-Crash beim gemma4:26b-
Lauf. **Auf der GPU-Maschine ausführen:** `sudo systemctl restart ollama`
(ggf. vorher freien RAM prüfen; Ollama läuft dort auf Port 11435).
Danach laufen die restlichen Kandidaten ohne weiteres Zutun.
- **M4 Odoo**: native LLM-Module des konkreten Odoo-19-Stands verifizieren - **M4 Odoo**: native LLM-Module des konkreten Odoo-19-Stands verifizieren
(keine API-Annahmen); Option A (dünnes Custom-Modul + Service-API) ist (keine API-Annahmen); Option A (dünnes Custom-Modul + Service-API) ist
Default. Default.
@@ -87,6 +83,10 @@ zu planen.
- **D5:** Vektoren-Tabelle ist Cache (Content-Hash × Modell), Rebuild - **D5:** Vektoren-Tabelle ist Cache (Content-Hash × Modell), Rebuild
löscht sie nicht; `--no-embed` setzt `embed_off` im Config-Copy. löscht sie nicht; `--no-embed` setzt `embed_off` im Config-Copy.
- **D6:** Leeres Retrieval → deterministische Verweigerung ohne LLM-Call. - **D6:** Leeres Retrieval → deterministische Verweigerung ohne LLM-Call.
- **D7 (Bake-off 2026-09-14):** `qwen3.8:27b` ist das fixierte Antwortmodell
(100 % Zitier-Präzision, 94,3 % Verweigerung korrekt). `gemma4:26b` als
dokumentierter Latenz-Kandidat; ein Modellwechsel läuft nur erneut über
das dokumentierte Protokoll (Skill).
- **Bake-off-Protokoll** (Skill): Modellwechsel nur über dokumentierten - **Bake-off-Protokoll** (Skill): Modellwechsel nur über dokumentierten
Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs- Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs-
korrektheit > Latenz. korrektheit > Latenz.
+18 -4
View File
@@ -78,10 +78,24 @@ python -m agent.cli eval --answers --json-out data/eval-report.json # Zitier-P
MRR 0,690 — M1-Ziel >0,9 erreicht (BM25-only war 0,855; die vier MRR 0,690 — M1-Ziel >0,9 erreicht (BM25-only war 0,855; die vier
BM25-Fehltreffer behebt die Dense-Suche alle). BM25-Fehltreffer behebt die Dense-Suche alle).
**Antworten** (qwen3.8:27b, Thinking aus, Temperatur 0,1): **Zitier-Präzision **Antworten** (Bake-off-Sieger qwen3.8:27b, Thinking aus, Temperatur 0,1):
100 %** (4 Zitierverletzungen wurden von der Post-Validierung abgefangen und **Zitier-Präzision 100 %** (4 Zitierverletzungen wurden von der
regeneriert) · Verweigerung korrekt 94,3 % · erwartete Quelle zitiert 80,6 % Post-Validierung abgefangen und regeneriert) · Verweigerung korrekt
· Latenz mean 32 s / p95 53 s. 94,3 % · erwartete Quelle zitiert 80,6 % · Latenz mean 32 s / p95 53 s.
**Modell-Bake-off (M3, 2026-09-14)** — Entscheidung: **qwen3.8:27b**
(Protokoll: Zitier-Präzision → Verweigerungskorrektheit → Latenz):
| Kandidat | Zitier-Präz. | Verweig. korrekt | Erw. Quelle | mean/p95 |
|---|---|---|---|---|
| **qwen3.8:27b** | **100 %** | **94,3 %** | **80,6 %** | 32 s / 53 s |
| gemma4:26b | 100 % | 91,4 % | 67,7 % | **7,9 s** / 12 s |
| gemma4:12B | 94,3 % | 91,4 % | 77,4 % | 21 s / 40 s |
| qwen3.6:27B | 94,3 % | 85,7 % | 80,6 % | 43 s / 89 s |
| mistral-small3.1:24b | 100 % | 71,4 % | 58,1 % | 20 s / 43 s |
`gemma4:26b` bleibt als dokumentierter Latenz-Kandidat für späteres
interaktives Tuning.
Bekannte Fehlverweigerungen: q-008 (Abfertigung Verfügungsmöglichkeiten), Bekannte Fehlverweigerungen: q-008 (Abfertigung Verfügungsmöglichkeiten),
q-031 (Mindestlohngesetz) — breite Fragen, Retrieval erfolgreich, Modell q-031 (Mindestlohngesetz) — breite Fragen, Retrieval erfolgreich, Modell
+21 -5
View File
@@ -107,6 +107,9 @@ Verbindliche Entscheidung erst nach Bake-off auf dem Goldset — Kriterium
bleibt Zitier-Präzision vor Latenz; liegt `qwen3:14b` bei gleicher bleibt Zitier-Präzision vor Latenz; liegt `qwen3:14b` bei gleicher
Zitierqualität auf, gewinnt Latenz. Zitierqualität auf, gewinnt Latenz.
> **Bake-off-Ergebnis (2026-09-14, Abschnitt 13):** `qwen3.8:27b` hat
> gewonnen und ist als Antwortmodell fixiert.
## 5. Grounding-Konzept (der kritische Teil) ## 5. Grounding-Konzept (der kritische Teil)
1. **Systemprompt (deutsch):** antworte ausschließlich aus den 1. **Systemprompt (deutsch):** antworte ausschließlich aus den
@@ -245,11 +248,24 @@ tests/ # pytest: Ingest-, Retrieval-, Grounding-Unit-Tests
Validierung → Regenerierung, alle geheilt), Verweigerung korrekt 94,3 %, Validierung → Regenerierung, alle geheilt), Verweigerung korrekt 94,3 %,
Latenz mean 32 s / p95 53 s. ATZ-Konfliktfall wird korrekt beidseitig Latenz mean 32 s / p95 53 s. ATZ-Konfliktfall wird korrekt beidseitig
mit ⚠ beantwortet; harte Verweigerungsfälle (UStVA) funktionieren. mit ⚠ beantwortet; harte Verweigerungsfälle (UStVA) funktionieren.
- **M3 teilweise:** qwen3.8:27b-Baseline gemessen (`data/eval-qwen38.json`). - **M3 erledigt — Bake-off (2026-09-14, Goldset 35 Fragen, Thinking aus):**
Bake-off-Kandidaten sind bereits installiert: qwen3.6:27B, gemma4:26b,
mistral-small3.1:24b, gemma4:12B (Latenz-Untergrenze). Bekannte | Kandidat | Zitier-Präzision | Verweigerung korrekt | Erw. Quelle | mean/p95 | Regen |
Fehlverweigerungen (q-008, q-031) und Latenz sind Tuning-Kandidaten — |---|---|---|---|---|---|
Prompt für den Bake-off vorher einfrieren. | **qwen3.8:27b** ✅ | **100 %** | **94,3 %** | **80,6 %** | 32 s / 53 s | 4 |
| gemma4:26b | 100 % | 91,4 % | 67,7 % | 7,9 s / 12 s | 4 |
| gemma4:12B | 94,3 % | 91,4 % | 77,4 % | 21 s / 40 s | 8 |
| qwen3.6:27B | 94,3 % | 85,7 % | 80,6 % | 43 s / 89 s | 10 |
| mistral-small3.1:24b | 100 % | 71,4 % | 58,1 % | 20 s / 43 s | 2 |
**Entscheidung (D7):** `qwen3.8:27b` ist das Antwortmodell (Protokoll:
Zitier-Präzision → Verweigerungskorrektheit → Latenz). `gemma4:26b`
wird als dokumentierter Latenz-Kandidat für späteres interaktives Tuning
geführt (4× schneller bei 100 % Zitier-Präzision, aber schwächere
Quellentreue und 3 statt 2 Fehlverweigerungen). mistral-small3.1
(Deutsch-Hypothese) ist praktisch widerlegt: 71,4 % Verweigerungs-
korrektheit. q-008 und q-031 verweigern beide Finalisten —
Prompt-/Retrieval-Tuning-Thema, kein Modellthema.
- **M4 offen:** Odoo-Integration (separater Plan nach Verifikation der - **M4 offen:** Odoo-Integration (separater Plan nach Verifikation der
Odoo-19-LLM-Module). Odoo-19-LLM-Module).
- Betrieb: `agent/README.md`. - Betrieb: `agent/README.md`.