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:
+24
-24
@@ -5,10 +5,10 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md`
|
||||
|
||||
## Current focus
|
||||
|
||||
M1 und M2 sind **fertig und gegen den echten Ollama validiert**.
|
||||
Offen: Modell-Bake-off (M3) mit den bereits installierten Kandidaten
|
||||
und Prompt-Tuning der Fehlverweigerungen. Odoo-Integration (M4) separat
|
||||
zu planen.
|
||||
M1, M2 und **M3 (Bake-off) sind abgeschlossen** — `qwen3.8:27b` ist als
|
||||
Antwortmodell fixiert (D7). Offen: Fehlverweigerungs-Tuning (q-008,
|
||||
q-031 — beide Finalisten betreffend) und Odoo-Integration (M4, separat
|
||||
zu planen).
|
||||
|
||||
## Completed (2026-09-14)
|
||||
|
||||
@@ -35,19 +35,19 @@ zu planen.
|
||||
einen eigenen, fast leeren Ollama auf localhost:11434 (dorthin ging der
|
||||
erste bge-m3-Pull — auf die GPU-Maschine neu gepullt). Ziel-Instanz ist
|
||||
ausschließlich `http://100.103.83.12:11435`.
|
||||
- **Bake-off M3, Zwischenstand** (Antwortmodus, 35 Fragen):
|
||||
- `qwen3.8:27b` (Baseline): Zitier-Präzision **100 %**, Verweigerung
|
||||
korrekt 94,3 %, erwartete Quelle 80,6 %, mean 32 s/p95 53 s,
|
||||
4 Regenerierungen (`data/eval-qwen38.json`).
|
||||
- `qwen3.6:27B`: Zitier-Präzision 94,3 % (2 dauerhafte Verstöße),
|
||||
Verweigerung 85,7 %, mean 43 s/p95 89 s, 10 Regenerierungen —
|
||||
klar schwächer (`data/eval-qwen36.json`).
|
||||
- `gemma4:26b`: Lauf abgebrochen (GPU-Maschine crashte mitten im Lauf).
|
||||
- `mistral-small3.1:24b`, `gemma4:12B`: ausstehend (Server-Neustart).
|
||||
- Kandidaten sind installiert; Pro-Kandidat-Befehl:
|
||||
`PV_ANSWER_MODEL=<tag> python3 -u -m agent.cli eval --answers --json-out data/eval-<name>.json`
|
||||
(vor jedem Lauf vorheriges Modell entladen: `/api/generate` mit
|
||||
`keep_alive: 0`; `python3 -u` gegen Buffering bei Absturz).
|
||||
- **Bake-off M3 — abgeschlossen (D7)**: alle 5 Kandidaten gemessen
|
||||
(Tabelle in `planung.md` Abschnitt 13). **`qwen3.8:27b` gewinnt**
|
||||
(100 % Zitier-Präzision, 94,3 % Verweigerung korrekt, 80,6 % erwartete
|
||||
Quelle, 32 s mean). `gemma4:26b` = dokumentierter Latenz-Kandidat
|
||||
(7,9 s mean, 100 % Zitier-Präzision, aber 67,7 % Quellentreue, 3
|
||||
Fehlverweigerungen). mistral-small3.1: 71,4 % Verweigerungskorrektheit
|
||||
— Deutsch-Hypothese praktisch widerlegt. qwen3.6:27B: 2 dauerhafte
|
||||
Zitierverletzungen, 10 Regenerierungen. gemma4:12B: 2 Verletzungen.
|
||||
Reports: `data/eval-*.json`. q-008/q-031 verweigern beide Finalisten —
|
||||
Prompt-/Retrieval-Tuning (nicht modellspezifisch).
|
||||
- **Remote-GPU-Maschine**: nach `systemctl restart ollama` (User-Aktion)
|
||||
liefen alle Läufe stabil; zwischen Kandidaten wurde per `keep_alive: 0`
|
||||
entladen (Crash-Ursache war der Modell-Swap-Stress beim gemma4-Lauf).
|
||||
|
||||
## Open issues / blockers
|
||||
|
||||
@@ -62,13 +62,9 @@ zu planen.
|
||||
Hebel: weniger Kontextblöcke (aktuell 8+6), schnellere Kandidaten.
|
||||
- **Cloud-Modelle** (`*:cloud` auf der Ollama-Instanz) sind für Antworten
|
||||
tabu (Anforderung: lokal). Nicht versehentlich konfigurieren.
|
||||
- **Bake-off M3 — Remote-GPU-Maschine neu starten**: seit ~22:45 sterben
|
||||
dort ALLE llama-server-Loads (auch bge-m3), der Ollama-Hauptprozess
|
||||
antwortet noch (API-Requests 500 „llama-server process has terminated:
|
||||
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.
|
||||
- **Bake-off M3 — erledigt** (siehe Completed; Entscheidung D7 in
|
||||
`planung.md`). Nach Tuning von Prompt/Retrieval: erneuter kurzer
|
||||
Bestätigungslauf nur mit dem Sieger.
|
||||
- **M4 Odoo**: native LLM-Module des konkreten Odoo-19-Stands verifizieren
|
||||
(keine API-Annahmen); Option A (dünnes Custom-Modul + Service-API) ist
|
||||
Default.
|
||||
@@ -87,6 +83,10 @@ zu planen.
|
||||
- **D5:** Vektoren-Tabelle ist Cache (Content-Hash × Modell), Rebuild
|
||||
löscht sie nicht; `--no-embed` setzt `embed_off` im Config-Copy.
|
||||
- **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
|
||||
Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs-
|
||||
korrektheit > Latenz.
|
||||
|
||||
+18
-4
@@ -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
|
||||
BM25-Fehltreffer behebt die Dense-Suche alle).
|
||||
|
||||
**Antworten** (qwen3.8:27b, Thinking aus, Temperatur 0,1): **Zitier-Präzision
|
||||
100 %** (4 Zitierverletzungen wurden von der Post-Validierung abgefangen und
|
||||
regeneriert) · Verweigerung korrekt 94,3 % · erwartete Quelle zitiert 80,6 %
|
||||
· Latenz mean 32 s / p95 53 s.
|
||||
**Antworten** (Bake-off-Sieger qwen3.8:27b, Thinking aus, Temperatur 0,1):
|
||||
**Zitier-Präzision 100 %** (4 Zitierverletzungen wurden von der
|
||||
Post-Validierung abgefangen und regeneriert) · Verweigerung korrekt
|
||||
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),
|
||||
q-031 (Mindestlohngesetz) — breite Fragen, Retrieval erfolgreich, Modell
|
||||
|
||||
+21
-5
@@ -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
|
||||
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)
|
||||
|
||||
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 %,
|
||||
Latenz mean 32 s / p95 53 s. ATZ-Konfliktfall wird korrekt beidseitig
|
||||
mit ⚠ beantwortet; harte Verweigerungsfälle (UStVA) funktionieren.
|
||||
- **M3 teilweise:** qwen3.8:27b-Baseline gemessen (`data/eval-qwen38.json`).
|
||||
Bake-off-Kandidaten sind bereits installiert: qwen3.6:27B, gemma4:26b,
|
||||
mistral-small3.1:24b, gemma4:12B (Latenz-Untergrenze). Bekannte
|
||||
Fehlverweigerungen (q-008, q-031) und Latenz sind Tuning-Kandidaten —
|
||||
Prompt für den Bake-off vorher einfrieren.
|
||||
- **M3 erledigt — Bake-off (2026-09-14, Goldset 35 Fragen, Thinking aus):**
|
||||
|
||||
| Kandidat | Zitier-Präzision | Verweigerung korrekt | Erw. Quelle | mean/p95 | Regen |
|
||||
|---|---|---|---|---|---|
|
||||
| **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
|
||||
Odoo-19-LLM-Module).
|
||||
- Betrieb: `agent/README.md`.
|
||||
|
||||
Reference in New Issue
Block a user