dp-zp-agent/tools/graphrag/evaluation/results/final_v4_2026-10-25/REPORT.md

12 KiB
Raw Permalink Blame History

GraphRAG v4 — širšia evaluácia, 25. 10. 2026

Finálne generované odpovede cez OpenWebUI API: 281/300 = 93,67 %, cieľ ≥92 % splnený. Grafové vyhľadávanie splnilo očakávania v 320/320 otázkach; doplnková kontrola všetkých kontextových faktov má 319/320 (99,69 %). DEV/regresia grafu 722/722. Ide o správnosť podľa deklarovaných kritérií benchmarku; nie o univerzálnu pravdivosť ľubovoľnej odpovede.

Korpus a protokol

Zdroj: používateľom zadaný repozitár jp170na/zpwiki, predvolená vetva master, commit 3e892a1d49e9bce118cd03478ce15e01c2bebb4e. Lokálny checkout bol overený cez git ls-remote --symref origin HEAD. Korpus má 114 README dokumentov a 72 osôb. Indexové JSON a klasický RAG sa nemenili.

Nový TEST má 320 nových otázok / logických skupín, 288 kladných a 32 záporných prípadov. Samostatný DEV má 602 historicky odhalených otázok a 120 nových prípadov. Všetky otázky boli pripravené z pôvodného Markdownu bez načítania výstupov vyhľadávania. Používajú sa formulácie otázok v niekoľkých variantoch. Výber je deterministický, seed 20261025, kvóty sú určené v generátore.

Všetkých 72 profilov už bolo odhalených v predchádzajúcich verziách. Preto je v4 holdout nových otázok a kombinácií faktov nad známym korpusom, nie experiment s novými osobami. DEV/TEST majú nulový prekryv normalizovaných logických skupín a otázok; profily, slovník a rodiny šablón sa prekrývajú. Freeze tento rozdiel výslovne uvádza a kontroluje. Starší režim profilovo oddeleného holdoutu ostáva prísny.

Zdrojové očakávania

  • Pôvodných 137 nesúladov ostáva zdokumentovaných v historickom audite a opravných záznamoch v2/v3. V4 nevydáva chybný predpoklad otázky za nájdený pozitívny fakt.
  • Pred prvým TESTom v4 prebehla ďalšia kontrola názvov: pokyny, organizačné poznámky, odkazy na repozitár a súvisiace práce sa nesmú stať názvom. Výslovný názov má prednosť pred všeobecnou témou. Názov môže byť v Markdown odkaze. Projekt sa rozlišuje od záverečnej práce.
  • Pri školskom roku sa použije explicitný nadpis, rozsah sa rozbalí. Kategória môže vybrať rok v rámci rozsahu, ale nesmie ho prepísať na nesúvisiaci rok; Vedecký projekt 2022/23 s vp2021 má rok 2023.
  • V4 eviduje 45 zmien alebo rozšírení historických väzieb oproti v3. Originálne súbory v1–v3 sa neprepisujú. question_lineage.json mapuje pôvodné ID na v4 regresiu.
  • Audit má 0 zdrojových nesúladov. Priama kontrola 616 zdrojových dôkazových záznamov TESTu overila SHA, hodnoty frontmatter a riadky názvov. Navyše sa kontrolovali názvy a surové ukážky v stratifikovanej 20-otázkovej vzorke. Záznam je v ../v4_preparation/source_review.json.
  • Oracle číta pôvodný Markdown oddelene od grafového buildera; zostáva pravidlový. Toto nie je úplná nezávislá ľudská anotácia všetkých 320 otázok. Rok práce je rok doložený nadpisom/metadátami akademického záznamu, nie automaticky rok obhajoby či vydania.

Čo sa skutočne vyhodnocuje

Strict kontroluje hodnoty pri správnej osobe a konkrétnej práci, rozdiel year/start_year, názvy a typy, prepojené grafové dôkazy, kategóriu a autora toho istého dokumentu, skutočné zdrojové URL, presné množiny, počty a nenájdené prípady. Neúplný alebo orezaný výsledok neuspeje. Výstupy aj s prípadnými chybami zostávajú v menovateli.

Opravy v4 cielili DEV a pôvodné dokumenty. DEV pred kontrolou zdrojov mal 716/722, priebežný DEV po rozšírení anotácií 709/722, konečný DEV 722/722. Až potom vznikol ../../frozen_v4.json a spustil sa jediný finálny grafový TEST. Po jeho odhalení sa grafový Python kód ani benchmark nemenili.

Meranie Správne Úspešnosť Runtime chyby Priemer Medián p95
Graf DEV v4 722/722 100,00 % 0 42,12 ms 40,65 ms 54,14 ms
Graf TEST v4 320/320 100,00 % 0 43,01 ms 42,94 ms 50,86 ms
Kategória grafového TESTu Správne Úspešnosť
Spoločné kľúčové slovo 40/40 100 %
Spoločné roky práce 40/40 100 %
Spoločný začiatok štúdia 32/32 100 %
Názov a rok práce 24/24 100 %
Názov a kľúčové slovo 32/32 100 %
Osoba, kategória a autor dokumentu 24/24 100 %
Úplná množina kategórií 24/24 100 %
Výber a počet kandidátov 32/32 100 %
Tag a rok pri tej istej osobe 40/40 100 %
Nenájdené údaje/osoby 32/32 100 %

Graf má 447 uzlov a 879 vzťahov. Pred zmenou bol uložený snapshot aj archív projektu v /tmp/zp-agent-graphrag-v4-backup-20261025T013116Z/. Záverečná kompletná automatizovaná sada: 448 passed, 4 skipped vrátane Neo4j integračných rollback testov a nových testov LLM hodnotenia.

Historické merania ostávajú zachované

Verzia TEST Význam
v1 152/214 (71,03 %) Pôvodný benchmark s neskôr zistenými nesúladmi
v2 67/80 (83,75 %) Profilovo oddelený širší TEST pred poslednými opravami
v3 13/13 (100 %) Malý doplnkový TEST na posledných dvoch nových profiloch
v4 320/320 (100 %) Nové otázky/logické skupiny nad všetkými známymi profilmi

Verzie majú odlišné otázky, anotácie a pravidlá; percentá nie sú kontrolovaným priamym porovnaním rovnakého testu. Historické klasické RAG DEV/TEST, retrieval baseline a podklady pre diplomovku zostávajú zachované.

Reprodukcia grafového merania

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

Treba zodpovedajúci kód, pôvodnú wiki, JSON vstupy a graf podľa manifestu. Pre opakovanie sa vyžaduje nový adresár. Reprodukcia nie je ďalší nezávislý TEST. Ak sa podľa v4 TESTu bude ďalej ladiť, jeho otázky sa stanú DEV a treba nový testovací protokol.

Finálne odpovede modelu cez OpenWebUI

Na používateľovu otázku o spôsobe testovania sa interné meranie doplnilo skutočným externým generovaním. Prvých 20 otázok sa najprv použilo na diagnostiku (pôvodné hodnotenie 16/20). Potom zostali výhradne DEV. Samostatné opätovné hodnotenie pod rovnakými finálnymi kritériami má 15/20; pôvodný súbor sa neprepisuje. Spresnil sa význam polí a odstránila sa zámena profilových/úložiskových metadát s akademickými faktami. Nepovinné null sa pri hodnotení nepovažuje za pozitívne tvrdenie. Na týchto istých DEV otázkach nový prompt dosiahol 19/20.

Zostávajúcich 300 otázok tvorí nový TEST generovania. Ich grafové výsledky sa už predtým merali, ale odpovede tohto modelu na tieto otázky neboli pred ladením generovania pozorované. Pred prvou TEST odpoveďou sa uložili presné ID, model, temperature=0, tri súbežné požiadavky, SHA promptu/adaptéra/HTTP klienta a odkaz na zmrazený graf. Počas ani po tomto TESTe sa prompt či hodnotenie neladili. Vyhodnotilo sa všetkých 300 vrátane zlyhaní; prvý finálny beh splnil cieľ.

Meranie generovania Správne Strict úspešnosť Chyba spracovania
DEV, 20 už odhalených otázok 19/20 95,00 % 0
TEST, 300 nových LLM výstupov 281/300 93,67 % 7

Model ID je model120-fast, server vrátil Qwen3.5-122B-A10B-Q4_K_M. Priemerná latencia externého požiadavku bola 7,62 s, medián 7,58 s, p95 11,52 s pri troch súbežných požiadavkách. JSON aj CSV obsahujú všetky výsledky; surové odpovede, tokeny a kontrolné príznaky zostali uložené. ../answers_v4_test_2026-10-25/frozen_answers.json deklaruje protokol a answers_test.json je úplné meranie.

Kategória LLM TESTu Správne Strict úspešnosť
Spoločné kľúčové slovo 38/38 100.00 %
Spoločné roky práce 37/38 97.37 %
Spoločný začiatok štúdia 29/30 96.67 %
Názov a rok práce 21/22 95.45 %
Názov a kľúčové slovo 21/30 70.00 %
Osoba, kategória a autor dokumentu 20/22 90.91 %
Úplná množina kategórií 21/22 95.45 %
Výber a počet kandidátov 27/30 90.00 %
Tag a rok pri tej istej osobe 37/38 97.37 %
Nenájdené údaje/osoby 30/30 100.00 %

Devätnásť zlyhaní sa výlučne rozdelilo takto: 7 neplatných JSON výstupov, 6 chýbajúcich alebo rozdelených väzieb, 3 chýbajúce povinné hodnoty v prirodzenom texte a 3 nepodporené tvrdenia alebo zamenené osoby. Všetky zostali v menovateli. Pri neplatnom JSON server odpovedal, nešlo o transportný výpadok. Časť vecne správnych odpovedí stratila strict bod pre formát alebo pre neúplný predpísaný výstup; výsledok preto nie je percentom výlučne faktických nepravdivých viet. Príklady sú v ../answers_v4_test_2026-10-25/failures.json.

Najslabšia kategória je názov + tag (21/30). Napríklad tag z dcérskeho dokumentu patrí podľa benchmarku tej istej osobe, ale model niekedy požaduje neprávom ten istý dokument ako pri názve práce. Niekedy uvedie správny tag a názov v dvoch claims namiesto požadovanej spojenej väzby. Pri autorovi dokumentu sa v dvoch prípadoch správny autor v texte omylom stal aj person v štruktúrovanom tvrdení. Zaznamenané obmedzenia zostávajú predmetom ďalšieho vývoja; 93,67 % nie je zárukou bezchybného agenta.

Doplnková kontrola všetkých vrátených grafových faktov

Po meraní sa navyše porovnali všetky normalizované grafové fakty použité v 320 kontextoch s pôvodným zdrojovým oracle, vrátane nadbytočných hodnôt. V 319/320 kontextoch (99,69 %) boli všetky takto kontrolované fakty zdrojovo podporené. V wide-080 splnenie požadovaných očakávaní prešlo, ale graf navyše vrátil pri Dominikovi Nagyovi rok 2021, ktorý oracle nepotvrdzuje. Tento nadbytočný údaj sa dostal aj do odpovede modelu a LLM hodnotenie ho správne odmietlo.

Preto 320/320 strict retrieval neznamená 100 % pravdivosť každej nadbytočnej grafovej hodnoty. Pôvodný strict skóruje splnenie očakávaných otázok a dôkazov; doplnková kontrola odhaľuje aj túto zvyšnú odchýlku. Obe čísla sú uložené bez prepísania pôvodných výsledkov. Táto doplnková metrika je post-hoc audit, nie náhrada primárneho predregistrovaného výsledku ani ďalší TEST.

Stav bodu 3 a praktické hranice

Podbod Stav v4
3.1 Audit a benchmark Uzavretý pre deklarovaný korpus: 320 nových TEST skupín, 722 DEV, opravy a zdrojové dôkazy uložené.
3.2 Evaluator Funkčný, typované a spojené dôkazy, roly/roky/počty/zdroje, negatívne regresie; LLM skóruje aj predpísaný formát a úplnosť.
3.3 DEV ladenie Ukončené pred TEST: graf 722/722, generovanie 19/20.
3.4 Zmrazenie Odtlačky grafu/kódu/dát/otázok/auditu a osobitne promptu/generovania uložené pred TESTom.
3.5 Finálny TEST Celých 320 grafových otázok a 300 externých LLM odpovedí; všetky zlyhania započítané.
3.6 Metriky a vyhodnotenie JSON, CSV, rozpis kategórií, chýb a historických experimentov uložený; cieľ ≥92 % splnený.

Bod 3 je uzavretý pre túto verziu a deklarovaný protokol, s uvedenými chybami a hranicami. Neznamená to dokončenie celého projektu ani všeobecnú 100 % správnosť kódu. Nasleduje bod 4: samostatne inštalovateľné nástroje a natívna integrácia/hodnotenie hlavného OpenWebUI agenta.

Externý beh používa školské chat API s kontextom dodaným lokálnym skriptom; netestuje prehliadač ani autonómny výber nainštalovaného grafového nástroja. Hodnotí štruktúrované zdrojovo podporené tvrdenia, povinné textové hodnoty a citácie; nie ľubovoľnú sémantiku každej vety. Modelové váhy na externom serveri nie sú lokálne zmrazené a budúca reprodukcia nemusí vrátiť tie isté texty ani pri temperature=0. Uložené pôvodné odpovede umožňujú audit merania.