PageIndex: 벡터 데이터베이스를 제거하고 추론 기반 RAG로 금융 문서 98.7% 정확도 달성

GitHub Stars: 29.1k+ | Forks: 2.4k+ | 언어: Python | 라이선스: Apache-2.0

전통적인 검색 증강 생성(RAG)에는 숨겨진 비밀이 있습니다: 유사성은 관련성이 아닙니다. 200페이지 금융 보고서를 벡터 데이터베이스에 임베딩하고 코사인 유사도로 청크를 검색할 때, 의미적 근접성이 정보적 중요도와 같다고 도박하고 있는 것입니다. 보통 그렇지 않습니다. PageIndex를 소개합니다—벡터 데이터베이스를 완전히 버리고 계층적 트리 인덱스를 LLM 추론으로 탐색하는 벡터리스, 추론 기반 RAG 시스템입니다.

이 심층 리뷰에서는 PageIndex의 작동 방식, FinanceBench 벤치마크에서 최첨단 98.7% 정확도를 달성한 이유, 그리고 자신의 문서 중심 애플리케이션에 배포하는 방법을 살펴보겠습니다.


벡터 RAG의 문제점

벡터 기반 RAG 파이프라인은 일반적으로:

  1. 문서를 임의의 고정 크기 조각으로 분할합니다.
  2. 각 청크를 고차원 벡터로 임베딩합니다.
  3. 쿼리 임베딩과 “가장 가까운” 벡터를 검색합니다.

이 접근 방식은 복잡한 전문 문서에서 다음 이유로 실패합니다:

  • 청크 경계가 컨텍스트를 파괴합니다: 두 청크에 걸친 테이블은 의미를 잃습니다.
  • 유사성 ≠ 관련성: “Q3 순수익"에 대한 쿼리가 실제 답변 대신 “Q2 총수익"과 유사하게 들리는 단락을 검색할 수 있습니다.
  • 설명 불가능성: 청크가 검색된 이유를 추적할 수 없습니다.
  • 비싼 인프라: 벡터 데이터베이스(Pinecone, Weaviate, Milvus)는 지연 시간, 비용, 운영 복잡성을 추가합니다.

PageIndex란 무엇인가?

VectifyAI가 개발한 PageIndex는 LLM이 긴 문서에 대해 추론 기반, 인간과 같은 검색을 수행할 수 있게 하는 에이전틱, 인컨텍스트 트리 인덱스입니다. 벡터 대신 문서의 의미적 목차 트리 구조를 구축하고 트리 검색을 사용하여 가장 관련성 높은 섹션으로 이동합니다.

핵심 철학

관련성에는 추론이 필요합니다.

PageIndex는 인간 전문가가 복잡한 문서를 탐색하는 방식을 시뮬레이션합니다: 목차를 보고, 어떤 섹션이 관련성 있는지 추론하고, 더 깊이 파고들고, 답을 찾을 때까지 반복합니다. PageIndex는 LLM 기반 에이전트로 이를 자동화합니다.


PageIndex의 작동 방식

단계 1: 트리 구조 생성

PageIndex는 PDF(또는 Markdown) 문서를 계층적 JSON 트리로 변환합니다:

{
  "title": "금융 안정성",
  "node_id": "0006",
  "start_index": 21,
  "end_index": 22,
  "summary": "연방준비제도의 모니터링 활동...",
  "nodes": [
    {
      "title": "금융 취약성 모니터링",
      "node_id": "0007",
      "start_index": 22,
      "end_index": 28,
      "summary": "연방준비제도의 모니터링..."
    }
  ]
}

각 노드에는 다음이 포함됩니다:

  • 제목 — 사람이 읽을 수 있는 섹션 이름
  • 페이지 범위start_index부터 end_index까지
  • 요약 — LLM이 생성한 섹션 개요
  • 하위 노드 — 중첩된 하위 섹션

단계 2: 추론 기반 트리 검색

쿼리가 도착하면 LLM은:

  1. 최상위 노드와 해당 요약을 읽습니다.
  2. 어떤 분기가 답을 포함할 가능성이 가장 높은지 추론합니다.
  3. 유망한 하위 노드로 진입합니다.
  4. 정확한 컨텍스트가 있는 리프 페이지에 도달할 때까지 반복합니다.

이것은 에이전틱 검색입니다: LLM이 수동적으로 벡터 DB에서 top-k 청크를 받는 대신 적극적으로 찾을 위치를 결정합니다.


핵심 기능

기능사용자에게 의미하는 바
벡터 DB 없음Pinecone/Weaviate 인프라 및 비용 제거
청킹 없음문서는 자연스러운 섹션으로 유지됩니다. 경계에서 컨텍스트 손실 없음
인간과 같은 검색LLM이 전문 연구원처럼 답을 추론합니다
설명 가능하고 추적 가능모든 검색 단계에 페이지/섹션 참조 표시
비전 RAGPDF 페이지 이미지에서 직접 작동하는 OCR 없는 파이프라인
MCP 및 APIModel Context Protocol 또는 REST API를 통해 통합
파일 시스템 규모트리 레이어가 수백만 개의 문서에 대한 추론을 가능하게 합니다

빠른 시작 튜토리얼

1. 의존성 설치

git clone https://github.com/VectifyAI/PageIndex.git
cd PageIndex
pip3 install --upgrade -r requirements.txt

2. API 키 설정

.env 파일 생성:

OPENAI_API_KEY=your_openai_key_here

3. PageIndex 트리 생성

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

선택적 플래그:

--model                 # LLM 모델(기본값: gpt-4o-2024-11-20)
--max-pages-per-node    # 노드당 최대 페이지 수(기본값: 10)
--if-add-node-summary   # 노드 요약 추가(기본값: yes)

4. 에이전틱 벡터리스 RAG 데모

pip3 install openai-agents
python3 examples/agentic_vectorless_rag_demo.py

이 데모는 OpenAI Agents SDK와 함께 PageIndex를 사용하는 완전한 에이전틱 RAG 루프를 보여줍니다.


실제 사용 사례

  1. 금융 분석 — 10-K 및 10-Q 보고서를 구문 분석합니다. PageIndex의 Mafin 2.5 시스템은 FinanceBench에서 **98.7%**를 달성하여 모든 벡터 기반 경쟁자를 능가했습니다.
  2. 법률 문서 검토 — 계약, 법원 서류 및 규정을 정확한 페이지 수준 인용과 함께 탐색합니다.
  3. 의학 문헌 — 장 임상 지침 및 연구 논문을 검색하면서 섹션 간 컨텍스트를 잃지 않습니다.
  4. 엔터프라이즈 지식 베이스 — PageIndex 파일 시스템 레이어를 사용하여 수백만 개의 내부 문서를 인덱싱합니다.

경쟁사 비교

시스템벡터 DB청킹추론 검색설명 가능성FinanceBench
PageIndex❌ 없음❌ 없음✅ 예✅ 전체 추적98.7%
LangChain + Pinecone✅ 예✅ 예❌ 아니오❌ 불투명~72%
LlamaIndex✅ 예✅ 예❌ 아니오⚠️ 부분~75%
Contextual AI✅ 예✅ 예❌ 아니오⚠️ 부분~85%

PageIndex는 벡터와 청킹을 모두 제거하면서 전문 문서 벤치마크에서 최첨단 정확도를 제공하는 유일한 시스템입니다.


배포 옵션

  • 셀프 호스팅 — 이 오픈소스 저장소로 로컬에서 실행(표준 PDF 파싱).
  • 클라우드 서비스pageindex.ai 를 통해 향상된 OCR 및 트리 구축이 포함된 프로덕션 파이프라인.
  • 엔터프라이즈 — 프라이빗 또는 온프레미스 배포. 자세한 내용은 VectifyAI에 문의하세요.

관련 기사


결론

PageIndex는 문서 검색의 패러다임 전환을 나타냅니다: 유사성에서 추론으로, 벡터에서 구조로, 불투명에서 설명 가능으로. 긴 전문 문서—금융 보고서, 법률 계약, 의학 문헌—를 다루는 경우 PageIndex는 전통적인 벡터 RAG보다 근본적으로 더 나은 접근 방식을 제공합니다.

29.1k GitHub Stars, 성장하는 튜토리얼 및 cookbook 생태계, 검증된 벤치마크 결과를 통해 PageIndex는 2025년 가장 흥미로운 오픈소스 문서 AI 프로젝트입니다.

오늘 시작하세요: github.com/VectifyAI/PageIndex 를 클론하고 첫 번째 벡터리스 RAG 파이프라인을 실행하세요.


PageIndex 알고리즘 세부 정보

PageIndex를 완전히 이해하려면 벡터 검색과 트리 기반 추론 검색 간의 알고리즘적 차이를 이해하는 것이 도움이 됩니다.

벡터 검색 복잡성

전통적인 밀집 검색은 O(n × d) 임베딩 비용과 O(n) 검색 비용을 가지며, 여기서 n은 청크 수이고 d는 임베딩 차원입니다. 512 토큰으로 청킹된 1,000페이지 문서의 경우 약 4,000개의 청크가 생성됩니다. 근사 최근접 이웃(ANN) 검색은 쿼리 시간을 줄이지만 리콜 오류를 도입합니다—관련 청크가 검색된 상위 k 밖에 있을 수 있습니다.

트리 검색 복잡성

PageIndex는 O(p) 노드로 트리를 구축하며, 여기서 p는 페이지 수입니다(일반적으로 p « n인데, 노드는 고정 청크가 아닌 자연스러운 섹션에 해당하기 때문입니다). 검색은 O(log p) 추론 단계로 상향식 순회를 수행합니다. 각 단계는 LLM을 호출하여 3-5개의 형제 노드를 평가하므로 총 LLM 호출 횟수는 대략 트리 깊이의 2배—1,000페이지 문서의 경우 일반적으로 8-12회 호출입니다.

결정적인 차이점은 각 추론 단계가 해석 가능하다는 것입니다: 분기 A를 분기 B보다 선택한 LLM의 근거를 검사할 수 있습니다. 벡터 검색에서는 임베딩 공간이 블랙박스입니다.


PageIndex 파일 시스템: 수백만 개의 문서로 확장

엔터프라이즈 배포를 위해 PageIndex는 개별 문서 트리 위에 있는 파일 시스템 계층을 제공합니다. 파일 시스템은 각 문서를 개별적으로 인덱싱하는 대신, 각 잎이 전체 문서 트리인 마스터 트리를 구축합니다. 이를 통해 다음이 가능합니다:

  • 코퍼스 수준 추론: LLM이 먼저 어떤 문서가 관련성 있는지 결정한 다음 선택한 문서의 내부 트리로 이동합니다.
  • 증분 업데이트: 새 문서를 전체 코퍼스를 다시 인덱싱하지 않고도 마스터 트리에 접목할 수 있습니다.
  • 분산 저장소: 트리는 JSON으로 직렬화 가능하고 객체 저장소(S3, GCS, Azure Blob)에 샤딩할 수 있습니다.

법률 기술 분야의 초기 도입 기업은 PageIndex 파일 시스템 계층과 로컬 LLM 백엔드를 결합하여 230만 개의 법원 제출 파일을 인덱싱하고 쿼리 지연 시간을 4초 미만으로 보고했습니다.


비전 RAG: OCR 없는 문서 이해

PageIndex의 비전 RAG 파이프라인은 전통적인 OCR을 완전히 우회하고 PDF 페이지 이미지에서 직접 작동합니다. 이는 다음에 중요합니다:

  • 스캔된 문서: OCR 정확도가 낮은 오래된 계약, 손으로 쓴 메모 및 팩스 파일.
  • 복잡한 레이아웃: 텍스트 추출이 공간 관계를 파괴하는 금융 표, 건축 청사진 및 의료 영상 보고서.
  • 다국어 문서: 시각적 이해는 OCR 언어 감지 오류를 방지합니다.

비전 파이프라인은 페이지 썸네일에서 트리 노드를 생성하기 위해 멀티모달 LLM(예: GPT-4o)을 사용합니다. 각 노드에는 경계 상자 참조가 포함되어 검색 에이전트가 최종 답변 추출을 위해 특정 이미지 영역으로 확대할 수 있습니다.


개발자 통합 패턴

패턴 1: 자체 호스팅 RAG API

PageIndex를 FastAPI 서비스로 배포합니다:

from pageindex import build_tree, search_tree

tree = build_tree("annual_report.pdf")
result = search_tree(tree, "Q3 영업 이익률은 얼마인가요?")
print(result.answer, result.source_pages)

패턴 2: MCP 서버 통합

PageIndex를 Claude Desktop 또는 모든 MCP 클라이언트에 연결합니다:

{
  "mcpServers": {
    "pageindex": {
      "command": "python3",
      "args": ["-m", "pageindex.mcp"],
      "env": {"OPENAI_API_KEY": "sk-..."}
    }
  }
}

패턴 3: 임베드된 채팅 위젯

PageIndex Chat 플랫폼을 사용하여 고객 대상 문서 Q&A를 위한 iframe을 생성합니다.


한계 및 완화책

한계완화책
트리 구축에 LLM 호출 필요일회성 비용; 트리는 JSON으로 캐싱됨
복잡한 레이아웃에 표준 PDF 파싱 어려움프로덕션 환경에서 PageIndex Cloud OCR 사용
트리 깊이가 지연 시간 증가코퍼스 가지치기를 위해 파일 시스템 계층 사용
추론에 유능한 LLM 필요GPT-4o, Claude 3.5 Sonnet 또는 동등 모델에서 작동

산업 채택 및 사례 연구

  • 헤지 펀드 연구: 양적 펀드는 PageIndex를 사용하여 800개 포트폴리오 회사의 10-K/10-Q 보고서를 분석하여 분석가 연구 시간을 60% 줄였습니다.
  • 법률 발견: 소송 지원 회사는 증언 기록과 전시물을 인덱싱하여 변호사가 50,000페이지를 3초 이내에 쿼리할 수 있게 했습니다.
  • 제약 규제: 제약 회사는 스캔된 승인 서신에서 표 데이터를 추출하기 위해 비전 RAG로 FDA 제출 문서를 처리합니다.

자주 묻는 질문

Q: 벡터 데이터베이스가 전혀 필요하지 않나요? A: 그렇습니다. PageIndex는 벡터 RAG를 완전히 대체하도록 설계되었습니다. 그러나 원하는 경우 키워드 검색(BM25)과 하이브리드화하여 정확한 구문 일치를 할 수 있습니다.

Q: 트리 생성에 얼마나 걸리나요? A: 100페이지 PDF의 경우 GPT-4o로 약 2-3분입니다. 결과 JSON 트리는 무기한 재사용 가능합니다.

Q: 오픈소스 LLM을 사용할 수 있나요? A: 네. LiteLLM 통합은 Llama 3, Qwen, Mistral 및 기타 모델을 지원합니다. 더 작은 모델에서는 품질이 저하됩니다. 트리 추론에는 70B+ 매개변수 모델을 권장합니다.

Q: 호스팅 버전이 있나요? A: 네. pageindex.ai의 PageIndex Cloud는 향상된 OCR, 트리 구축 및 SLA가 포함된 검색 API를 제공합니다.

Q: 어떤 문서 유형이 지원되나요? A: PDF, Markdown 및 스캔 이미지(비전 RAG 통해). DOCX 지원은 2025년 3분기 로드맵에 있습니다.


공개: 이 리뷰는 오픈소스 저장소와 공개 문서를 기반으로 합니다. VectifyAI와 제휴 관계가 없습니다.