Retrieval-Kalibrierung nach Korpusverdopplung (D10) + Goldset-Erweiterung
- Hybrid-Fusion um dense_weight erweitert; kalibriert per Goldset-Sweep: dense_weight=2.0 (BM25 durch KV-S-Titel-Matches inflationiert), rrf_k=20, candidate_pool=150 -> Recall@8 0,851 -> 0,923 (>0,9), Hit-Rate 0,973, MRR 0,667. ENV: PV_DENSE_WEIGHT/PV_RRF_K/ PV_CANDIDATE_POOL. - CITE_RE um kv|ris erweitert (Post-Validierung deckt neue ID-Raeume). - Goldset: +6 KV/RIS-Fragen (q-101-106) + Branchen-Refusal r-005; q-021 auf lb-kar-04 rekalibriert (Top-1, deckt Beginn/Dauer voll - dokumentiert im Note). - Antwortmodus-Eval (qwen3.8:27b, 42 Fragen): Zitier-Praezision 95,2 %, Verweigerung 90,5 % - unter den M3-Gates, Tuning folgt (Report data/eval-qwen38-kvris.json, lokal). - Docs: agent/README.md Baseline, planung.md Umsetzungsstand, .agents/MEMORY.md (D9/D10, offene Punkte).
This commit is contained in:
@@ -54,6 +54,49 @@ zu planen).
|
||||
liefen alle Läufe stabil; zwischen Kandidaten wurde per `keep_alive: 0`
|
||||
entladen (Crash-Ursache war der Modell-Swap-Stress beim gemma4-Lauf).
|
||||
|
||||
## Completed (2026-09-15)
|
||||
|
||||
- **KB-Erweiterung um WKO-Kollektivverträge + RIS-Gesetze** (User-Auftrag):
|
||||
`.firecrawl/wko-kv/docs/` (614 KV-Dokumente: Lohn-/Gehaltsordnungen mit
|
||||
Lohntabellen, KV-Abschlüsse, Erläuterungen, Zusatz-KVs) und `.ris/` (59
|
||||
Gesetze, nur die im Lexis360-Bestand zitierten §-Ausschnitte, Stand
|
||||
2026-09-13) → **1 274 Layer-2-Einträge** (`kv-kvt-001…614`,
|
||||
`ris-<prefix>-nn`), 14 984 Chunks, Reindex 8,5 min (11 947 neue
|
||||
Embeddings, bge-m3 auf :11435).
|
||||
- **D9 (2026-09-15):** kv/ris-Einträge sind **quellentreu generiert**
|
||||
(keine Eigene-Worte-Kuratierung — Gesetze sind amtliche Werke, KV-
|
||||
Lohntabellen zahlenexakt; Konvention 2 der Wissensbasis gilt nur für
|
||||
die lizenzierten Quellen lb/wk). Tool-Output: `tools/ingest_sources.py`
|
||||
+ `tools/build_registry.py` (Registry in diesem Repo neu gebaut — das
|
||||
Lexis-Tool `build_lexis_kb.py` lebt im Schwesterprojekt), eingefrorene
|
||||
Kataloge `tools/catalogs/*.json` (nur Metadaten, versioniert).
|
||||
- **ID-Räume:** `kv-kvt-<nnn>` (ein Cluster `kollektivvertraege`,
|
||||
Branche als Tag) und `ris-<cluster-prefix>-<nn>` auf der bestehenden
|
||||
Cluster-Map + 7 neue Cluster (kvt/zvr/avr/agg/lst/abo/nso);
|
||||
`LAW_MAP` in `tools/kb_common.py` dokumentiert die 59 Zuordnungen.
|
||||
- **D10 (Retrieval-Kalibrierung, Goldset-Sweep 2026-09-15):** Korpus-
|
||||
verdopplung drückte Recall@8 auf 0,851 — kalibriert auf
|
||||
`dense_weight=2.0` (Dense-Liste relativ zu BM25 gewichtet; BM25 ist
|
||||
durch KV-§-Titel-Matches inflationiert), `rrf_k=20`,
|
||||
`candidate_pool=150` → **Recall@8 0,923 (>0,9 ✓)**, Hit-Rate 0,973
|
||||
(36/37), MRR 0,667. ENV: `PV_DENSE_WEIGHT`/`PV_RRF_K`/
|
||||
`PV_CANDIDATE_POOL`. Entry-RRF-Variante getestet: kein Mehrwert.
|
||||
- **Antwortmodus-Eval (qwen3.8:27b, 42 Fragen):** Zitier-Präzision
|
||||
95,2 % (2 Verletzungen), Verweigerung korrekt 90,5 % (4 Fehlver-
|
||||
weigerungen, u.a. q-022/q-029), erwartete Quelle zitiert 83,8 %,
|
||||
Latenz mean 31 s / p95 53 s, 9 Regenerierungen — **unter den M3-
|
||||
Gates** (100 % / 94,3 %): Korpusverdopplung macht Grounding härter;
|
||||
das laufende Fehlverweigerungs-Tuning (uncommittete Änderungen in
|
||||
generate.py/retrieve.py/goldset.yaml, unangetastet) ist weiteres
|
||||
Thema. Report: `data/eval-qwen38-kvris.json`.
|
||||
- **Goldset:** +7 Fragen (q-101–106 KV-Preise/§-Fragen, r-005 Branchen-
|
||||
Refusal) — append-only. q-021 rekalibriert: erwartete ID jetzt
|
||||
`lb-kar-04` („Karenz - Anspruch, Beginn und Dauer“, Top-1, deckt
|
||||
Beginn/Dauer vollständig; lb-kar-01 nur Nachbarschaft — dokumentiert
|
||||
im Goldset-Note).
|
||||
- **Tests:** 41 → 49, alle grün (neue ID-Räume, html-Source, Konverter,
|
||||
LAW_MAP-Vollabdeckung, Korpus-Integrationszahl 1 274).
|
||||
|
||||
## Open issues / blockers
|
||||
|
||||
- **Push**: Remote localhost:3003 aus der Sandbox nicht erreichbar — User
|
||||
@@ -75,6 +118,17 @@ zu planen).
|
||||
- **M4 Odoo**: native LLM-Module des konkreten Odoo-19-Stands verifizieren
|
||||
(keine API-Annahmen); Option A (dünnes Custom-Modul + Service-API) ist
|
||||
Default.
|
||||
- **Nach KV/RIS-Erweiterung (2026-09-15)**: Antwortmodus unter den Gates
|
||||
(Zitier-Präzision 95,2 % — 2 Verletzungen; Verweigerung 90,5 % — 4
|
||||
Fehlverweigerungen, u.a. q-022/q-029; erwartete Quelle 83,8 %) —
|
||||
Report `data/eval-qwen38-kvris.json`. Retrieval-Gate erfüllt (Recall@8
|
||||
0,923 nach D10-Kalibrierung). Weiteres Prompt-/Kontext-Tuning offen;
|
||||
der laufende Arbeitsstand in generate.py/retrieve.py/goldset.yaml
|
||||
wurde unangetastet gelassen.
|
||||
- **q-015 (Tagesgelder Dienstreisen)** — Branchen-Noise: 8 Branchen-KV-
|
||||
Einträge verdrängen lb-rei-01/09 (EStG-Taggeld-Abrechnung) aus Top-8;
|
||||
generische Branchen-Frage ist mehrdeutig geworden. Hebel: Frage
|
||||
präzisieren (Branche/Kontext) oder KV-§-Titel-Matches dämpfen.
|
||||
|
||||
## Decisions & conventions
|
||||
|
||||
@@ -105,6 +159,23 @@ zu planen).
|
||||
erwartete Quelle 80,6 → 83,9 %; Verweigerung 94,3 % (Fehler getauscht:
|
||||
neu q-029 — breite Survey-Frage über 12 Hefte, sicherer Fehlermodus).
|
||||
Report `data/eval-qwen38-v2.json`.
|
||||
- **D9 (KV/RIS-Erweiterung, 2026-09-15):** kv-/ris-Einträge sind
|
||||
**quellentreu generiert** (keine Eigene-Worte-Kuratierung — Gesetze
|
||||
sind amtliche Werke, KV-Lohntabellen zahlenexakt; Konvention 2 der
|
||||
Wissensbasis gilt nur für die lizenzierten Quellen lb/wk).
|
||||
Tool-Output: `tools/ingest_sources.py` + `tools/build_registry.py`
|
||||
(Registry in diesem Repo neu gebaut — das Lexis-Tool
|
||||
`build_lexis_kb.py` lebt im Schwesterprojekt), eingefrorene Kataloge
|
||||
`tools/catalogs/*.json` (nur Metadaten, versioniert). IDs:
|
||||
`kv-kvt-<nnn>` (ein Cluster `kollektivvertraege`, Branche als Tag),
|
||||
`ris-<cluster-prefix>-<nn>` auf der bestehenden Cluster-Map + 7 neue
|
||||
Cluster; `LAW_MAP` in `tools/kb_common.py` (59 Gesetze).
|
||||
- **D10 (Retrieval-Kalibrierung, 2026-09-15):** nach KV/RIS-Erweiterung
|
||||
(3.005 → 14 984 Chunks) dense_weight=2.0 (Dense relativ zu BM25
|
||||
gewichtet — BM25 durch KV-§-Titel-Matches inflationiert), rrf_k=20,
|
||||
candidate_pool=150 → Recall@8 0,851 → 0,923 (>0,9 ✓), Hit-Rate
|
||||
0,973, MRR 0,667. ENV: PV_DENSE_WEIGHT / PV_RRF_K /
|
||||
PV_CANDIDATE_POOL. Entry-RRF-Variante getestet: kein Mehrwert.
|
||||
- **Bake-off-Protokoll** (Skill): Modellwechsel nur über dokumentierten
|
||||
Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs-
|
||||
korrektheit > Latenz.
|
||||
|
||||
Reference in New Issue
Block a user