7.7 KiB
Uzavretie bodu 3 — GraphRAG v7, 26. 10. 2026
V7 opravuje konkrétne chyby z posledného auditu. Historické otázky,
manifesty, tagy a výsledky v1–v6 zostávajú zachované. Záloha projektu,
indexových súborov a grafu je v /tmp/zp-v7-backup-20261026/.
Opravy
- Dotaz rešpektuje ľubovoľný štvormiestny rok vrátane 1899, 1999, 2100
a 9999. Nepodporovaný zápis po „roku“, napríklad 10000 alebo 20xx,
sa odmieta cez
unsupported_year_constraint. Podmienka sa nepremení na vyhľadávanie bez časového obmedzenia. - Upozornenie na neúplnosť už nepovoľuje kladné tvrdenie o úplnom zozname v inej vete. Kontrola rozlišuje aj pravdivé popretie „Nie je to úplný zoznam“. Testy obsahujú obe možnosti aj skloňované „všetkých študentov“.
- Model vyberá štruktúrované
claims,source_urls,status,count;answerponecháva prázdne. Text pre používateľa zostavírender_graph_answer()z overených hodnôt, bez gold a bez nových faktov. Pôvodná HTTP odpoveď, parsované tvrdenia a vykreslená odpoveď ostávajú osobitne uložené. Voľná próza modelu sa nepoužíva ako doručený text. - Pri kontrole starého alebo neočakávaného voľného textu sa odmietajú nepodložené číselné údaje. URL a doslovné hodnoty overených titulov sa pred týmto porovnaním odlíšia od nových tvrdení. Prípad s dopísaným rokom 2099 tak neprejde. Samotné porovnávanie čísel nie je úplný sémantický analyzátor slovenčiny; doručený grafový text je preto deterministický a obsahuje iba overené polia.
countmusí mať podklad v úplnej agregácii. Pozitívna faktová odpoveď musí obsahovať tvrdenia a citácie; kontrolujú sa zdroje jednotlivých uvedených atribútov. Prázdna úplná agregácia s počtom 0 je platná.- Citácie sa kontrolujú v bežnom texte, inline a referenčnom Markdowne
aj HTML
href/src, vrátane relatívnych URL, HTML entít a vnorených zátvoriek v platnej URL. Povolené sú iba URL dodané pre konkrétny dotaz. - Ročník adresára sa prestal používať ako začiatok štúdia. Builder aj
nezávislý oracle vyžadujú explicitnú vetu v texte. Graf uvádza
start_year_basis=explicit_text|missingastart_year_confidence=documented|unknown. Oracle vediecohort_yearoddelene; táto hodnota sa nevydáva za začiatok štúdia. Pri chýbajúcom údaji nástroj vrátimissing_documented_start_year. - Hodnotenie mena povoľuje obmedzené gramatické prípony v prirodzenom texte, ale štruktúrovanú identitu naďalej porovnáva presne. „Martina NaN1“ sa nezamieňa za iného Martina. Pri deterministickom texte sú mená aj tak v pôvodnom tvare. Parser JSON neprepisuje neplatné hodnoty; jeden spoločný opravný požiadavok pre formát/kontext ostáva limitom.
- Evaluačné CLI vyžadujú explicitný dataset, audit a manifest. Odpovedný runner vyžaduje aj zoznam DEV; historická regresia navyše vlastné ID. Už nevyberajú v4 ako tichý predvolený benchmark. Hashované cesty kódu generovania sú relatívne voči projektu, aby sa dali overiť aj inde.
Benchmark a oddelenie meraní
Všetkých 1 042 odhalených v6 otázok prešlo do DEV. Pridali sa štyri
potrebné regresné otázky na roky mimo 20xx. DEV má 1 046 otázok.
Odstránenie odhadu štúdia opravilo 10 očakávaní; údaje, ktoré dokument
neuvádza, sa očakávajú ako nenájdené. ID ani text pôvodných otázok sa
nevymazali. Zmeny sú v v7_preparation/source_corrections.json.
Nový TEST má 80 otázok, 72 kladných a 8 záporných, vo všetkých desiatich kategóriách. Seed, kvóty a výber boli uložené pred vyhľadávaním. Žiadna logická query skupina sa neprekrýva s odhalenými otázkami ani DEV. Ide o nové kombinácie nad známou wiki, osobami a šablónami. Nie je to experiment s neznámymi osobami, novým korpusom alebo ľudskou anotáciou.
Počet otázok v kategóriách je obmedzený dostupnými novými skupinami:
spojenie autor–kategória má dve nové skupiny, výpis kategórií sedem.
Kvóty sa neurčovali podľa úspechu retrievera. Reprezentatívnu vzorku
20 otázok (dve z každej kategórie) skontrolovala AI priamo oproti
Markdownom pred meraním. source_review_packet.json obsahuje pôvodné
výňatky a dôkazy; source_review.csv závery. Človek ju neanotoval.
Odstránenie odhadu z adresára teda rieši neistotu z auditu; nenahrádza
nezávislú ľudskú anotáciu celého korpusu.
Graf sa zmrazí po kompletnom DEV. Generovanie má vopred deklarovaných 46 DEV otázok: predchádzajúcich 42 a štyri nové rokové regresie. Finálny nový TEST sa spustí raz po úspešnom DEV. Výsledky sa nepoužijú na ladenie tejto verzie. Všetkých 320 pôvodných historických otázok sa meria oddelene ako regresia; jej prekryv s modelovým DEV je priznaný.
Zmrazenie a nasadenie
frozen_v7.json viaže implementáciu, raw Markdown, dataset, JSON vstupy,
graf, publikačnú politiku a parametre. Deklarácia frozen_answers.json
navyše fixuje model, prompt, renderer a presné ID merania. Kompletný
frozen_release_v7.json pokrýva všetky runtime moduly a merané artefakty.
Docker sa overuje cez /health, reálne /rag, grafové pozitívne aj
negatívne dotazy, novú rokovú regresiu a chýbajúci začiatok štúdia.
JSON, SQLite a Neo4j majú spoločnú generáciu po /sync s pull_git=false.
Publikačná politika ostáva: iba explicitné published=false sa vylúči.
Príkazy
Konfiguráciu načítajte z prostredia bez jej vypisovania. Pri reprodukcii vždy používajte nové výstupné cesty; existujúce otázky a merania neprepisujte.
# Jednorazové vyhlásenie benchmarku; hotový dataset neregenerovať.
python -m tools.graphrag.evaluation.benchmark_v7
RUN_NEO4J_TESTS=1 RUN_LIVE_TESTS=1 RUN_LIVE_RAG_E2E=1 \
HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 python -m pytest -q
python -m tools.graphrag.evaluation.evaluate_graphrag \
--questions tools/graphrag/evaluation/graphrag_questions_v7.json --split dev \
--audit tools/graphrag/evaluation/results/v7_preparation/source_audit.json \
--output-dir NOVY_GRAF_DEV
python -m tools.graphrag.evaluation.freeze_graphrag \
--questions tools/graphrag/evaluation/graphrag_questions_v7.json \
--dev-results NOVY_GRAF_DEV/graphrag_dev.json \
--audit tools/graphrag/evaluation/results/v7_preparation/source_audit.json \
--purpose independent_holdout --output NOVY_MANIFEST.json
python -m tools.graphrag.evaluation.evaluate_graphrag \
--questions tools/graphrag/evaluation/graphrag_questions_v7.json --split test \
--audit tools/graphrag/evaluation/results/v7_preparation/source_audit.json \
--freeze-manifest NOVY_MANIFEST.json --output-dir NOVY_GRAF_DEV
python -m tools.answer_evaluation.evaluate_graph_answers \
--questions tools/graphrag/evaluation/graphrag_questions_v7.json \
--audit tools/graphrag/evaluation/results/v7_preparation/source_audit.json \
--freeze-manifest NOVY_MANIFEST.json \
--dev-ids tools/graphrag/evaluation/results/v7_preparation/generation_dev_ids.json \
--split dev --output-dir NOVY_LLM_DEV
Pre nový TEST použite tie isté parametre, --split test,
--dev-results NOVY_LLM_DEV/answers_dev.json a nový výstupný adresár.
Pri historickej regresii použite --split regression a navyše
--regression-ids tools/graphrag/evaluation/results/v7_preparation/regression_ids.json.
Opakovaný beh už odhaleného TESTu je reprodukcia/regresia, nie ďalší
nezávislý experiment. Po ladení podľa TESTu treba nový vopred deklarovaný TEST.
Kompletné výsledky a zostávajúce metodické obmedzenia sú v správe v7. Ďalší blok je natívna integrácia nástrojov a hlavného agenta v OpenWebUI.