65 lines
5.4 KiB
Markdown
65 lines
5.4 KiB
Markdown
# GraphRAG evaluácia
|
||
|
||
Aktuálna zmrazená verzia je **v4**. [Finálna správa](results/final_v4_2026-10-25/REPORT.md) obsahuje protokol, výsledky a obmedzenia.
|
||
|
||
| Meranie grafového vyhľadávania | Správne | Úspešnosť |
|
||
|---|---:|---:|
|
||
| DEV/regresia v4 | 722/722 | 100,00 % |
|
||
| Širší TEST v4 | 320/320 | 100,00 % |
|
||
|
||
Cieľ ≥92 % grafového vyhľadávania bol splnený v prvom finálnom behu. TEST má desať kategórií, 288 kladných a 32 záporných otázok, bez runtime chýb. Osoby aj korpus sú známe; nové sú otázky a kombinácie faktov. Logické skupiny ani normalizované otázky sa medzi DEV a TEST neprekrývajú. Výsledok neznamená všeobecnú 100 % správnosť na ľubovoľnom vstupe.
|
||
|
||
Generovanie odpovedí dosiahlo **281/300 (93,67 %)** na novom externom TESTe; 20 DEV otázok malo 19/20. Všetkých 19 zlyhaní vrátane 7 neplatných JSON odpovedí ostáva započítaných. Doplnkový audit všetkých vrátených grafových kontextových faktov má **319/320 (99,69 %)**; strict 320/320 neznamená pravdivosť každej nadbytočnej hodnoty. Najslabšia LLM kategória je názov + tag (21/30).
|
||
|
||
Samostatne sa hodnotí generovanie odpovedí cez školské OpenWebUI API po dodaní skutočného grafového kontextu. [Protokol generovania](../../answer_evaluation/README.md) oddeľuje 20 DEV a 300 nových LLM TEST výstupov. Natívny výber nástrojov hlavným agentom je ďalší blok projektu.
|
||
|
||
## Reprodukcia zmrazeného grafu
|
||
|
||
Použi zodpovedajúci kód, rovnakú pôvodnú wiki, JSON vstupy a obsah Neo4j podľa manifestu. Súkromné kľúče ostávajú v `.env`.
|
||
|
||
```bash
|
||
set -a
|
||
source .env
|
||
set +a
|
||
python -m tools.graphrag.evaluation.evaluate_graphrag \
|
||
--split test \
|
||
--audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
|
||
--freeze-manifest tools/graphrag/evaluation/frozen_v4.json \
|
||
--output-dir /tmp/graphrag-v4-reproduction
|
||
```
|
||
|
||
Existujúce finálne výstupy a manifesty sa neprepisujú. Opakované spustenie rovnakého TESTu je reprodukcia, nie nové nezávislé overenie. Ak sa podľa odhalených TEST chýb ladí ďalšia verzia, tieto otázky sú od tej chvíle DEV.
|
||
|
||
## Zdrojový benchmark a história
|
||
|
||
- `graphrag_questions.json`: pôvodných 500 otázok. V2 opravila 137 nesúladov (128 tagových predpokladov a 9 neúplných množín kategórií). Zmeny sú v `results/v2_preparation/legacy_corrections.json`.
|
||
- V2: 509 DEV a 80 profilovo oddelených TEST otázok; finálny TEST 67/80 (83,75 %). Po odhalení sa stal regresiou.
|
||
- V3: 589 DEV a 13 **nových** doplnkových otázok vytvorených z pôvodných dokumentov posledných dvoch neodhalených profilov. Nešlo o výber trinástich z pôvodných 500. Meranie prebehlo interným skriptom nad Neo4j bez OpenWebUI či LLM. DEV 589/589, malý TEST 13/13; obmedzené pokrytie neumožňovalo tvrdiť všeobecnú 100 % presnosť.
|
||
- V4: 722 DEV (602 historických + 120 nových), 320 nových TEST skupín nad všetkými známymi profilmi. `source_oracle.py` číta raw Markdown oddelene od buildera. `benchmark_v4.py` nepoužíva výsledky vyhľadávania pri tvorbe očakávaní ani výbere otázok. Kontrola surových zdrojov doplnila 45 zmien/rozšírení historických väzieb názvov; záznamy a mapovanie ID sú v `results/v4_preparation/`.
|
||
|
||
V1–v3 ostávajú v pôvodných adresároch s manifestmi a tagmi `graphrag-v1-frozen`, `graphrag-v2-frozen`, `graphrag-v3-frozen`. Na reprodukciu treba ich pôvodný kód a graf. Percentá rôznych verzií nie sú kontrolovaným porovnaním identických otázok. Klasický RAG a jeho referenčné experimenty ostávajú samostatné.
|
||
|
||
## Strict a zmrazenie
|
||
|
||
Správne hodnoty patria tej istej osobe/práci a majú prepojené typované dôkazy. Overuje sa význam roku, názov a typ práce, relácie, kategória a autor toho istého dokumentu, zdrojové alternatívy a URL, presné množiny a počet, explicitné no-answer a neorezaný výsledok. Rozpoznaná hodnota z otázky sama nie je dôkazom. Schema3 overuje strojové vzory ciest, nie iba textový zoznam očakávaných trás.
|
||
|
||
Freeze vyžaduje kompletný DEV, nulové runtime chyby, platný zdrojový audit a odtlačky kódu, otázok, pôvodných súborov, JSON vstupov, grafu a parametrov. V4 explicitne deklaruje prekryv 72 profilov a nulový prekryv logických skupín. Starší režim profilovo oddeleného holdoutu zostáva zachovaný.
|
||
|
||
Oracle aj evaluator sú pravidlové. Priama kontrola pôvodných riadkov a stratifikovaná kontrola anotácií nie sú náhradou nezávislej ľudskej anotácie celého datasetu.
|
||
|
||
## Vývoj ďalšej verzie
|
||
|
||
Generátory historických v1–v4 neregeneruj na pôvodných miestach. Nové dáta, manifesty a merania potrebujú nové cesty/verziu. `benchmark_v4 --extra-exposed` vie vyradiť ďalšie odhalené skupiny, ale množstvo nových zdrojových prípadov je konečné a kvóty sa nesmú meniť podľa úspechu vyhľadávania.
|
||
|
||
```bash
|
||
python -m tools.graphrag.evaluation.evaluate_graphrag \
|
||
--split dev --audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
|
||
--output-dir /tmp/graphrag-next
|
||
python -m tools.graphrag.evaluation.freeze_graphrag \
|
||
--dev-results /tmp/graphrag-next/graphrag_dev.json \
|
||
--audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
|
||
--output /tmp/graphrag-next/frozen.json
|
||
```
|
||
|
||
Záverečná kompletná automatizovaná sada: **448 passed, 4 skipped** (vrátane nových testov generovania). Neo4j integračné testy používajú izolovaný scope a rollback. Výsledky obsahujú úplné JSON/CSV a odtlačky pre reprodukciu.
|