diff --git a/docs/kb/eval/retrieval-pilot-2026-07-16.md b/docs/kb/eval/retrieval-pilot-2026-07-16.md new file mode 100644 index 0000000..9e80d00 --- /dev/null +++ b/docs/kb/eval/retrieval-pilot-2026-07-16.md @@ -0,0 +1,30 @@ +# Eval-set: pilot retrieval (faza 2, krok 7) — 2026-07-16 + +Stan bazy: document_chunk = 2683 chunki (bge-m3, dim 1024), 160 dokumentów z 186 kopert paperless. +Metoda: embed zapytania (bge-m3, Ollama SOLARIA) → `ORDER BY embedding <=> query_vector` → top-5. +Helper: /tmp/kbq.sh (curl /api/embeddings + psql przez ssh piha). + +## Skalibrowane progi (cosine distance) +- **< 0.45** — trafienie +- **0.45–0.55** — szara strefa (na temat, nieprecyzyjne) +- **> 0.55** — brak odpowiedzi w korpusie + +## Zapytania i wyniki (baseline dla bramki kaskady, faza 3 §6) + +| # | Zapytanie | top-1 dist | top-1 envelope | Werdykt | +|---|-----------|-----------|----------------|---------| +| 1 | polisa ubezpieczeniowa PZU warunki odpowiedzialności | 0.3418 | paperless:14 (OWU PZU Auto) | trafienie; ujawnił dup 14≡74 | +| 2 | faktura za usługi telekomunikacyjne kwota do zapłaty | 0.3447 | paperless:192 (faktura P4) | trafienie; poz. 3/5 = chunki z OCR-śmieciem (kody kreskowe) | +| 3 | zasady punktacji FLL Challenge robot game (PL) | 0.4154 | paperless:5 | szara strefa — rodzina dokumentów OK, sedno nie | +| 4 | FLL robot game mission scoring points table (EN) | 0.4114 | paperless:5; poz.2+ = paperless:119 (scoresheet, mojibake) | trafienie; cross-lingual > PL; mojibake ≠ śmieć — trafia mimo zniszczonego OCR | +| 5 | innovation project scoring | 0.3869 | paperless:3 (arkusz ocen IP) | najlepszy wynik: top-5 spójnie z jednego właściwego dokumentu | +| N | przepis na sernik z rodzynkami (negatywna kontrola) | 0.6210 | — | poprawny brak; separacja od trafień wyraźna | +| N2 | piaskownica plastikowa (kontrola graniczna) | 0.5533 | — | poprawnie na granicy "brak" — semantycznie sąsiednie dokumenty wspólnoty, nie odpowiedź | + +## Kryterium bramki kaskady (faza 3 §6) +Kaskada summary→chunk na tych samych zapytaniach: żaden płaski hit nie degraduje, hit@3 ≥ baseline, negatywne kontrole > 0.55. + +## Findings (adresowane w fazie 3 §3) +- Chunki z binarnym OCR-szumem (zmielone kody kreskowe) rankują się przez doklejony realny tekst → filtr `ocr_junk` +- paperless:14 ≡ paperless:74 (duplikat dokumentu) → dedup +- Mojibake (paperless:119) NIE wykluczać — niesie sygnał (patrz zapytanie 4)