dp-zp-agent/docs/graphrag_v5_2026-10-25_worklog.md

5.7 KiB
Raw Blame History

GraphRAG v5.1 — dokončenie bodu 3 a história iterácie v5

Rozsah a protokol

Ide o nové meranie opravenej implementácie na historicky odhalených otázkach. Výsledky v1–v4, otázky ani pôvodné očakávania sa neprepisujú. Používa sa 722 DEV otázok a 320 historických grafových TEST otázok. Druhý split je vo v5 regresia, nie nový nezávislý holdout. Nezavádzajú sa nové otázky iba kvôli skóre.

Generovanie sa ladí na 39 vopred deklarovaných prípadoch: 20 pôvodných DEV výstupov a 19 zlyhaní historického LLM TESTu. Finálna regresia generovania má všetkých 320 historických otázok vrátane týchto 39 DEV; tento prekryv je výslovne uložený v protokole a vo výsledkoch. Žiadna otázka sa nevynecháva podľa úspechu vyhľadávania alebo modelu.

Záloha kódu, dát a spravovaného grafu je v /tmp/zp-bod3-v5-backup-20261025T155423Z/. Konfiguračné tajomstvá sa nearchivujú.

Opravy

  • Príprava na akademický projekt je organizačná poznámka. Sama nevytvára akademický záznam ani jeho rok. Tým sa rieši historický prípad wide-080.
  • Označenie „Návrh na zadanie BP“ samo nedokazuje názov práce. Pri doplnkovej kontrole DEV sa odhalili tri výstupy Martina Šarišského s takto odhadnutým názvom. Parser teraz používa explicitné názvy/témy alebo dovolený úvodný názvový odsek. Očakávania benchmarku sa kvôli predikciám nemenili.
  • Prvá zmrazená v5 mala regresiu 319/320. wide-275 odhalil konzultačnú poznámku nesprávne použitú ako názov projektu na hranici chunku. V5.1 vylučuje tieto organizačné vety; prvá iterácia a overený zdrojový patch ostávajú uložené.
  • Evaluator odmieta complete=false aj bez príznaku truncated a kontroluje všetky vrátené typované fakty proti nezávislému čítaniu raw Markdownov: osobu, dokument, URL, akademický názov/rok/typ, metadata na tom istom dokumente, zdieľané vlastnosti a porovnania rokov. Chybné nadbytočné fakty znižujú strict skóre. Nejde o všeobecný sémantický súd ľubovoľných viet.
  • Zmrazenie zahŕňa spoločné moduly, publikačnú politiku a pravidlo prípravy; finálna generácia kontroluje identitu kódu/promptu/dát voči dokončenému DEV.
  • Pokyny pre LLM vysvetľujú väzbu názvu a tagu pri tej istej osobe aj cez dcérsky dokument. Kategória a autor dokumentu musia mať spoločný dokument.
  • JSON sa kontroluje typovanou schémou. Jeden úplný JSON blok sa môže vybrať z Markdown ohraničenia bez prepisovania hodnôt. Skutočne neplatný JSON môže vyvolať najviac jeden opravný požiadavok s pôvodnou otázkou a kontextom. Gold odpovede sa neposielajú modelu; všetky pokusy aj prvotná úspešnosť sa ukladajú.

Overenie a príkazy

Kompletná regresná sada finálnej v5.1: 525 passed, 4 skipped. Prvý prísny DEV mal 719/722; tri nesúlady názvu viedli k oprave parsera uvedenej vyššie. V5 mala DEV 722/722, regresiu 319/320 a DEV generovania 38/39. V5.1 má DEV 722/722 a regresiu 320/320 vrátane všetkých typovaných faktov; DEV generovania zostal 38/39. Tieto priebežné výsledky sa nezatajujú.

Použité hlavné príkazy po načítaní lokálnej konfigurácie:

RUN_NEO4J_TESTS=1 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 .venv/bin/python -m pytest -q
docker compose build zp-agent-api
docker compose up -d --no-deps zp-agent-api

Koordinovaná obnova indexov používa autentifikovaný POST /sync s {"pull_git":false}. Korpus zostáva 114 dokumentov/887 chunkov, aktualizovaný graf má 446 uzlov a 877 vzťahov. Presné indexové verzie a finálne výsledky sú identifikované vo finálnej správe v5.1 a v zázname overenia nasadenia.

Grafový protokol:

python -m tools.graphrag.evaluation.evaluate_graphrag \
  --split dev --audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json \
  --output-dir tools/graphrag/evaluation/results/final_v5_1_2026-10-25
python -m tools.graphrag.evaluation.freeze_graphrag \
  --dev-results tools/graphrag/evaluation/results/final_v5_1_2026-10-25/graphrag_dev.json \
  --audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json \
  --purpose historical_regression --output tools/graphrag/evaluation/frozen_v5_1.json
python -m tools.graphrag.evaluation.evaluate_graphrag \
  --split test --audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json \
  --freeze-manifest tools/graphrag/evaluation/frozen_v5_1.json \
  --output-dir tools/graphrag/evaluation/results/final_v5_1_2026-10-25

Generovanie nad rovnakým zmrazeným grafom:

python -m tools.answer_evaluation.evaluate_graph_answers \
  --split dev --dev-ids tools/graphrag/evaluation/results/v5_1_preparation/generation_dev_ids.json \
  --audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json \
  --freeze-manifest tools/graphrag/evaluation/frozen_v5_1.json \
  --output-dir tools/graphrag/evaluation/results/answers_v5_1_dev_2026-10-25
python -m tools.answer_evaluation.evaluate_graph_answers \
  --split regression --dev-ids tools/graphrag/evaluation/results/v5_1_preparation/generation_dev_ids.json \
  --dev-results tools/graphrag/evaluation/results/answers_v5_1_dev_2026-10-25/answers_dev.json \
  --audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json \
  --freeze-manifest tools/graphrag/evaluation/frozen_v5_1.json \
  --output-dir tools/graphrag/evaluation/results/answers_v5_1_regression_2026-10-25

Príkazy vyššie dokumentujú pôvodný beh. Pri reprodukcii použite nové výstupné adresáre a zachovajte zodpovedajúci zmrazený manifest. Nový manifest vytvárajte pre novú verziu; existujúce finálne súbory sú nemenné. Reprodukcia nie je nový nezávislý TEST. Aktuálny release označuje Git tag graphrag-v5.1-frozen.