PageIndex: глубокий анализ. RAG без векторного поиска, позволяющий ИИ читать документы как эксперт
PageIndex — это RAG-фреймворк без векторов, основанный на рассуждениях, с открытым исходным кодом от команды Vectify AI (GitHub 14.8k+ звезд). Он преобразует длинные документы в иерархический древовидный индекс и использует LLM для логического поиска по дереву, достигая точности 98,7% на эталонном тесте вопросов и ответов по финансовым документам FinanceBench.

1. Предпосылки: пять проблем традиционного RAG
RAG стал фактическим стандартом для приложений больших языковых моделей. Основное решение на этапе предварительной обработки заключается в разделении документов на фрагменты фиксированной длины (chunk), преобразовании их в векторы с помощью модели embedding и сохранении в векторной базе данных; при запросе выполняется такое же embedding вопроса пользователя, а затем поиск Top-K результатов по векторному сходству, которые объединяются в контекст ввода LLM.
Этот процесс эффективен для коротких текстов и общих сценариев, но в сценариях профессиональных длинных документов (финансовые отчеты, законы и правила, технические руководства и т. д.) выявляются пять фундаментальных проблем:
1) Сходство ≠ Релевантность. Векторный поиск предполагает, что «семантически наиболее похожий текстовый блок = наиболее релевантный источник ответа», но в профессиональных документах большое количество абзацев имеют приблизительную семантику, но сильно различаются в ключевых деталях.
2) Жесткое разделение на блоки нарушает целостность контекста. Разделение документов на фиксированные окна в 512 или 1024 токена приводит к обрыву предложений, абзацев и даже целых логических разделов, что приводит к потере ключевого контекста.
3) Несоответствие намерения запроса и пространства знаний. Запрос пользователя выражает «намерение», а не «содержание», поэтому query embedding и document embedding находятся в разных семантических пространствах.
4) Невозможность обработки ссылок внутри документа. В профессиональных документах часто встречаются ссылки типа «см. Приложение G», «см. Таблицу 5.3» и т. д. Между этими ссылками и содержимым, на которое они ссылаются, нет семантического сходства, поэтому векторный поиск не может их сопоставить.
5) Независимые запросы, невозможность использования истории диалога. Каждый раз запрос рассматривается как независимый, поэтому невозможно объединить контекст предыдущего диалога для постепенного поиска.
2. Общая архитектура PageIndex
PageIndex — это RAG-фреймворк без векторов (Vectorless), основанный на рассуждениях (Reasoning-based). Его основная идея заключается в следующем: вместо того, чтобы позволять модели выполнять приблизительное сопоставление в векторном пространстве, лучше позволить модели рассуждать о структурированном представлении документа — решать, «куда смотреть», а не просто «что выглядит похожим».
PageIndex имитирует то, как эксперты читают длинные документы: сначала просматривают оглавление, определяют соответствующие разделы на основе вопроса и углубляются по уровням, пока не найдут целевой контент. Этот процесс реализуется в два этапа:
- Создание древовидного индекса: преобразование PDF/Markdown документов в иерархическое JSON-дерево, похожее на «оглавление, оптимизированное для LLM»
- Логический поиск по дереву: LLM выполняет логическую навигацию по дереву на основе вопроса, определяет соответствующие узлы, извлекает контент и генерирует ответы

3. Разбор основных модулей
3.1 Конвейер обработки PDF
Конвейер обработки PDF в PageIndex организован функцией tree_parser(), а основной процесс включает в себя: обнаружение оглавления (три ветви режима), добавление предисловия, преобразование плоского списка в иерархическое дерево, рекурсивное подразделение больших узлов, обогащение узлов, вывод структуры JSON-дерева.
Три режима обработки:
- process_toc_with_page_numbers (есть оглавление + есть номера страниц): LLM преобразует исходное оглавление в структурированный JSON, сопоставляя логические номера страниц с физическими
- process_no_toc (нет оглавления): LLM напрямую выводит иерархическую структуру из основного текста
- process_toc_no_page_numbers (есть оглавление, но нет номеров страниц): извлекает структуру, а затем выводит и добавляет физические номера страниц
3.2 Модель данных древовидной структуры
Каждый узел в дереве содержит следующие поля: title, node_id, start_index, end_index, summary, prefix_summary, text, nodes (массив дочерних узлов) и другие поля.
3.3 Механизм логического поиска
На этапе поиска не используются векторные вычисления. LLM получает вопрос пользователя и структуру дерева документа, рассуждает на основе заголовков и аннотаций узлов и выводит свой «процесс мышления» и список соответствующих node_id. Затем система извлекает полный текст соответствующего узла из node_map на основе node_id, объединяет его в контекст и передает LLM для создания окончательного ответа.

4. Основные особенности дизайна
- Архитектура без векторов: не требует модели embedding и векторной базы данных, снижает затраты на инфраструктуру и упрощает развертывание
- Сохранение естественной структуры документа: организация контента по главам/разделам/подразделам, присущим документу, позволяет избежать потери контекста между chunk
- Интерпретируемость поиска: каждый поиск возвращает полную цепочку рассуждений, что дает очевидные преимущества в сценариях с высокими требованиями к соответствию нормативным требованиям
5. Результаты оценки
Mafin 2.5 — это система вопросов и ответов по финансовым документам на основе PageIndex. Его производительность на FinanceBench (эталонный тест QA по финансовым документам) достигает точности 98,7%, что намного превосходит Perplexity (45%) и GPT-4o (31%).

6. Подходящие сценарии
Подходит для: длинных документов с четкой иерархической структурой (финансовые отчеты, законы и правила, учебные материалы, руководства), объемом от десятков до сотен страниц
Не подходит для: документов без структурированного контента, отсканированных документов без OCR, документов, в основном состоящих из таблиц/диаграмм, сценариев, требующих мгновенного ответа
7. Заключение
Основной вклад PageIndex заключается в предложении практической парадигмы RAG без векторов: использование естественной структуры документа для построения древовидного индекса и замена поиска по векторному сходству логическими рассуждениями LLM. Это решение отлично работает в сценариях профессиональных длинных документов с четкой иерархической структурой, а его интерпретируемость и возможность аудита значительно превосходят традиционные решения.





