VectifyAI/PageIndex — 📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG
PageIndex: 벡터 검색 없이 추론으로 문서를 찾는 RAG
PageIndex는 문서마다 계층형 트리 색인을 만들고 LLM이 트리를 탐색해 정보를 찾는 벡터리스 RAG 도구입니다. 프로젝트는 FinanceBench에서 98.7% 정확도를 보고했으며, 로컬 SDK와 OCR·이미지 분석을 지원하는 클라우드 서비스를 제공합니다.
- 주제
AI 요약
PageIndex는 긴 전문 문서에서 벡터 유사도 검색이 관련 정보를 놓치거나, 관련성이 낮은 비슷한 내용을 반환하는 문제를 겨냥합니다. 문서를 잘게 나눠 벡터 데이터베이스에 저장하는 대신 문서 구조를 계층형 트리 색인으로 만들고, LLM이 질문에 맞는 노드를 추론하며 탐색합니다. 프로젝트는 이 방식을 사람이 긴 보고서에서 필요한 부분을 찾아 읽는 과정에 비유합니다.
색인과 검색 과정
색인 단계에서는 문서마다 트리 구조를 만듭니다. 프로젝트 설명에 따르면 트리 구조는 문서 레이아웃에서 추출하며, 색인용 모델은 내용을 요약하고 구조를 다듬습니다. 검색 단계에서는 에이전트가 LLM 추론으로 트리를 탐색합니다. 따라서 검색 결과를 문서의 구체적인 참조 위치와 연결하고, 대화 이력이나 도메인 지식도 검색 맥락에 반영하는 설계입니다. 벡터 데이터베이스와 청크 분할은 사용하지 않습니다.
SDK와 실행 비용
Python SDK는 pip install -U pageindex로 설치합니다. PageIndexClient에 색인용 모델과 대화·검색용 모델을 지정한 뒤 PDF를 제출하고 질문하면 됩니다. 프로젝트는 색인용 모델로 기본급 모델을 써도 품질에 큰 영향을 주지 않았다고 설명합니다. 색인 시점에 모델에 크게 의존하지 않도록 설계했기 때문입니다. 반면 트리를 탐색하는 채팅 모델은 검색을 맡으므로 예산이 허용하는 범위에서 성능이 좋은 모델을 권합니다.
프로젝트가 제시한 로컬 비용은 gpt-5.6-luna로 페이지당 약 0.001달러입니다. 1,000쪽 교재는 한 번 색인하는 데 1달러 조금 넘게 들며, 이후 질문은 만든 색인을 재사용합니다. 9~1,098쪽 문서 색인 시간은 약 13초에서 4.5분이었다고 합니다. 52쪽 문서에서는 PDF 전체를 매번 모델에 넣는 방식보다 비용이 2.1배 낮았고, 420쪽 문서에서는 16.6배 낮았습니다. 이 비교는 같은 답을 얻은 경우를 기준으로 했으며 프롬프트 캐싱 비용은 제외했습니다. 805쪽 문서는 비교에 사용한 모델의 컨텍스트 창에 들어가지 않았다고 설명합니다.
벤치마크와 배포 방식
PageIndex-OSS-Benchmark는 로컬 모드, Flash 색인, OCR 미사용 설정으로 MMLongBench-Doc-V2에서 가져온 PDF 34개, 총 1,945쪽에 걸친 질문 62개를 평가합니다. 답변은 본문에 적힌 사실을 찾는 문제라, 오답을 검색이나 문서 읽기 실패로 구분할 수 있도록 구성했다고 프로젝트는 설명합니다. 별도로 FinanceBench에서는 정확도 98.7%를 기록해 벡터 기반 RAG보다 높은 성능을 냈다고 주장합니다.
오픈소스 로컬 모드는 텍스트 PDF를 대상으로 색인과 저장을 사용자 컴퓨터에서 처리합니다. PageIndex Cloud는 스캔 문서와 이미지가 포함된 문서도 지원하며, OCR, 이미지 이해, 색인 생성, 클라우드 저장소와 블록 단위 인용을 제공합니다. 검색과 채팅은 사용자가 선택한 호환 모델과 함께 쓸 수 있습니다. Cloud 전용 File System은 문서 하나가 아니라 전체 파일 모음을 대상으로 파일 단위 트리 색인을 구성합니다. OpenAI Agents SDK, Claude Agent SDK 등 에이전트 프레임워크에 PageIndex 도구를 연결하는 방법도 안내합니다.
원문: GitHub / 번역·요약: Trawling