PageIndex:オープンソースの推論ベース RAG フレームワーク
PageIndex:オープンソースの推論ベースRAGフレームワーク
Retrieval Augmented Generation (RAG) を思い浮かべると、まず連想されるのは大規模なベクトルデータベース、多数の埋め込み、そしてコサイン類似度に依存した検索だ。実際、この手法は金融アナリスト、法務チーム、学術研究者が日常的に直面するような長く構造化された文書に対して苦戦することがある。
なぜ PageIndex なのか?
PageIndex は次の質問に答えるために開発された。効果的な RAG にはベクトルデータベースは本当に必要なのか? 実際の答えは 全く必要ない ということだった。
- ベクトル無し – ページやチャンクを埋め込みに変換する代わりに、PageIndex はドキュメントの自然なセクション(目次のような)を鏡映しする 階層型ツリー を構築する。各ノードはオプションで要約を含むことができる。
- チャンク化しない – 従来のパイプラインは文書を人工的なチャンクに分割し、しばしば文脈を分断してしまう。PageIndex はセクション全体をそのまま保持し、物語の流れを守る。
- 人間に近い検索 – LLM がツリーを閲覧できるようにすることで、PageIndex はドメイン専門家が読む・推論する様子をシミュレートする。モデルは階層を横断し、明確化の質問を行い、後退することで、人間のアナリストに近い振る舞いを実現する。
- 説明性と追跡性 – すべての回答は特定のノードとページに追跡可能で、開発者に明確な監査ログを提供する。
コアコンセプト
- ツリーインデックス – 各ノードがメタデータ(タイトル、開始/終了位置、要約、子ノード)を持つ JSON 構造。ツリーは実質的に LLM 用に最適化された「目次」となる。
- LLM の推論 – 最近傍検索ではなく、LLM がツリー全体を推論し、ツリー探索 を実行する。次に探索すべき枝をクエリし、関連するセクションを選択して下流へ渡す。
- 任意設定 – ユーザーはモデル、ノードあたりの最大トークン数、深さ、ノード ID や要約の有無を制御できる。
クイックインストールと実行
# 1. Clone the repo
git clone https://github.com/VectifyAI/PageIndex.git
cd PageIndex
# 2. Install dependencies
pip install -U -r requirements.txt
# 3. Set your OpenAI API key
# Create a `.env` in the repo root
# echo "CHATGPT_API_KEY=sk-…" > .env
# 4. Generate a tree for a PDF
python run_pageindex.py --pdf_path /path/to/your/document.pdf
オプションフラグでプロセスを微調整できます:
- --model gpt-4o – モデルを選択
- --toc-check-pages 20 – 目次をスキャンするページ数
- --max-pages-per-node 10 – 各ノードが保持できるページ数
- --if-add-node-summary yes – 各ノードに短い要約を含める
ヘッダ規約(#、## など)に従う Markdown ファイルの場合は、代わりに --md_path を使用してください。
利用ケース
| ドメイン | 問題 | PageIndex が支援する方法 |
|---|---|---|
| ファイナンス | SECの開示書は200ページ以上でネストされたセクションがあり、埋め込みはしばしばニュアンスを見落とす。 | PageIndex はツリーを構築し、LLM が正確なセクションにズームできるようにすることで、FinanceBench の精度を 98.7% 改善する。 |
| リーガル | 判例法および契約書は正確な段落引用を必要とする。 | ツリーはページレンジを保持するため、回答には正確な位置参照が含まれる。 |
| アカデミー | 研究論文は複数の小節を持ち、トピック別検索は埋め込みで信頼できない。 | ノード要約が LLM を関連セクションへ導き、より正確な引用をもたらす。 |
| テクニカルマニュアル | ファームウェア文書には表と図が含まれる。 | PageIndex は OCR なしのビジョンRAGで画像をインデックス化し、ページ画像から直接文脈を提供できる。 |
ベンチマーク ハイライト
PageIndex の組み込み RAG システム、Mafin 2.5 は、FinanceBench ベンチマークで 98.7% の精度 を達成し、複数のベクトルベース RAG システムを大きく上回った。クリーンなツリーインデックスと推論駆動検索の組み合わせは、類似度のみの検索に伴う多くの落とし穴を解消する。
統合オプション
- セルフホステッド – Python リポジトリをローカルで実行。ラップトップまたはサーバーで動作。
- チャットプラットフォーム – VectifyAI が ChatGPT スタイルのインターフェースをホストし、すぐに試せる。
- MCP/API – 最小限のコードで機能を公開し、独自パイプラインに統合。
今後の方向性
- マルチモーダル検索 – OCR を必要とせず PDF の画像をサポートするため、テキストと画像ノードを組み合わせる。
- 詳細な要約 – より高度なサマリーモデルを活用し、ノード説明を向上させる。
- 協働機能 – 複数ユーザーがノード経路をアノテートし、検索ロジックを共有できるようにする。
最後の考え
PageIndex は、よく構造化されたインデックスと LLM 推論が、従来のベクトルベース手法を多くの実務タスクで置き換えられることを示している。長文書で信頼性があり説明可能な RAG システムを構築したい開発者にとって、フレームワークは低コードで魅力的なソリューションを提供し、ユーザーをリアルタイムで関与させる—まるで人間の専門家のように。