PageIndex Hloubková analýza: RAG bez vektorů s odvozováním, díky kterému AI čte dokumenty jako lidský expert
PageIndex je RAG framework bez vektorů, založený na odvozování, který open-source tým Vectify AI (GitHub 14.8k+ hvězd). Převádí dlouhé dokumenty na hierarchický stromový index a používá LLM k odvozovacímu vyhledávání ve stromu, čímž dosahuje 98,7% přesnosti na benchmarku FinanceBench pro otázky a odpovědi týkající se finančních dokumentů.

1. Pozadí: Pět bolestivých bodů tradičního RAG
RAG se stal de facto standardem pro aplikace velkých modelů. Hlavní řešení v předzpracovací fázi rozdělují dokumenty na bloky (chunk) pevné délky, převádějí je na vektory pomocí embedding modelu a ukládají do vektorové databáze; při dotazu se provede stejný embedding pro uživatelský dotaz a poté se pomocí vektorové podobnosti vyhledají Top-K výsledky, které se spojí do vstupního kontextu pro LLM.
Tento postup funguje dobře pro krátké texty a obecné scénáře, ale v scénářích s profesionálními dlouhými dokumenty (finanční zprávy, zákony a předpisy, technické příručky atd.) se objevuje pět zásadních problémů:
1) Podobnost ≠ Relevance. Vektorové vyhledávání předpokládá, že „sémanticky nejpodobnější textový blok = nejrelevantnější zdroj odpovědi“, ale v odborných dokumentech sdílí velké množství odstavců podobnou sémantiku, ale v klíčových detailech se výrazně liší.
2) Pevné rozdělení bloků narušuje integritu kontextu. Rozdělení dokumentu na pevné okno o velikosti 512 nebo 1024 tokenů přeruší věty, odstavce a dokonce i celé logické segmenty, což vede ke ztrátě klíčového kontextu.
3) Nesoulad mezi záměrem dotazu a prostorem znalostí. Uživatelské dotazy vyjadřují „záměr“ spíše než „obsah“, embedding dotazu a embedding dokumentu se nacházejí v různých sémantických prostorech.
4) Nelze zpracovat odkazy v dokumentu. V odborných dokumentech jsou běžné odkazy jako „viz příloha G“ nebo „viz tabulka 5.3“. Mezi těmito odkazy a odkazovaným obsahem neexistuje sémantická podobnost a vektorové vyhledávání je nemůže spárovat.
5) Nezávislé dotazy, nelze využít historii konverzace. Každé vyhledávání považuje dotaz za nezávislý požadavek a nemůže kombinovat kontext předchozí konverzace pro postupné vyhledávání.
2. Celková architektura PageIndex
PageIndex je RAG framework bez vektorů (Vectorless), založený na odvozování (Reasoning-based). Jeho hlavní myšlenkou je: místo toho, aby model prováděl přibližné párování ve vektorovém prostoru, je lepší nechat model odvozovat ze strukturované reprezentace dokumentu – rozhodnout se, „kam se podívat“, spíše než jen „co vypadá podobně“.
PageIndex simuluje způsob, jakým lidští odborníci čtou dlouhé dokumenty: nejprve si prohlédnou obsah, na základě otázky určí relevantní kapitoly a postupně se ponořují hlouběji, dokud nenajdou cílový obsah. Tento proces je realizován ve dvou krocích:
- Vytvoření stromové struktury indexu: Převod PDF/Markdown dokumentu na hierarchický JSON strom, podobný „obsahu optimalizovanému pro LLM“
- Odvozovací stromové vyhledávání: LLM provádí odvozovací navigaci ve stromu na základě otázky, lokalizuje relevantní uzly, extrahuje obsah a generuje odpovědi

3. Rozklad klíčových modulů
3.1 Pipeline pro zpracování PDF
Pipeline pro zpracování PDF v PageIndex je uspořádána funkcí tree_parser(). Hlavní proces zahrnuje: detekci obsahu (tři režimy větvení), doplnění předmluvy, převod plochého seznamu na hierarchický strom, rekurzivní rozdělení velkých uzlů, obohacení uzlů, výstup JSON stromové struktury.
Tři režimy zpracování:
- process_toc_with_page_numbers (obsah + čísla stránek): Používá LLM k převodu původního obsahu na strukturovaný JSON, mapuje logická čísla stránek na fyzická čísla stránek
- process_no_toc (bez obsahu): LLM přímo odvozuje hierarchickou strukturu z obsahu textu
- process_toc_no_page_numbers (obsah, ale bez čísel stránek): Extrahujte strukturu a poté odvoďte a doplňte fyzická čísla stránek
3.2 Datový model stromové struktury
Každý uzel ve stromu obsahuje pole jako: title, node_id, start_index, end_index, summary, prefix_summary, text, nodes (pole podřízených uzlů) atd.
3.3 Mechanismus odvozovacího vyhledávání
Fáze vyhledávání nezávisí na žádných vektorových výpočtech. LLM přijímá uživatelské otázky a strukturu stromu dokumentu, odvozuje na základě názvů uzlů a shrnutí a vypisuje svůj „myšlenkový proces“ a seznam relevantních node_id. Systém poté extrahuje úplný text odpovídajících uzlů z node_map na základě node_id, spojí je do kontextu a předá LLM k vygenerování konečné odpovědi.

4. Klíčové designové prvky
- Architektura bez vektorů: Není potřeba embedding model a vektorová databáze, snižuje náklady na infrastrukturu a zjednodušuje nasazení
- Zachovává přirozenou strukturu dokumentu: Organizuje obsah podle kapitol/podkapitol/oddílů, které jsou vlastní dokumentu, čímž se zabrání ztrátě kontextu mezi bloky
- Vysvětlitelnost vyhledávání: Každé vyhledávání vrací kompletní řetězec odvozování, což má zřejmé výhody ve scénářích s vysokými požadavky na shodu
5. Výsledky hodnocení
Mafin 2.5 je systém pro otázky a odpovědi týkající se finančních dokumentů založený na PageIndex. Jeho výkon na FinanceBench (benchmark pro QA finančních dokumentů) dosahuje 98,7% přesnosti, což výrazně převyšuje Perplexity (45%) a GPT-4o (31%).

6. Vhodné scénáře
Vhodné pro: Dlouhé dokumenty s jasnou hierarchickou strukturou (finanční zprávy, předpisy, učebnice, příručky), o rozsahu desítek až stovek stran
Nevhodné pro: Dokumenty bez strukturovaného obsahu, naskenované dokumenty bez OCR, dokumenty založené hlavně na tabulkách/grafech, scénáře vyžadující odezvu v reálném čase v milisekundách
7. Závěr
Klíčovým přínosem PageIndex je návrh praktického paradigmatu RAG bez vektorů: použití přirozené struktury dokumentu k vytvoření stromového indexu a použití odvozování LLM k nahrazení vyhledávání podobnosti vektorů. Toto řešení funguje výborně ve scénářích s odbornými dlouhými dokumenty s jasnou hierarchickou strukturou a jeho vysvětlitelnost a auditovatelnost jsou také výrazně lepší než u tradičních řešení.





