RManLuo/gfm-rag

[NeurIPS'25, ICLR'26] Graph Foundation Model for Retrieval Augmented Generation

GFM‑RAG: 検索拡張生成のためのグラフ基盤モデル

何であるか – GFM‑RAG は、大規模言語モデル(LLM)の生成に向けた グラフベース の検索パイプラインを構築できる Python ライブラリです。まず、ドキュメントのコレクション(または既存の知識グラフ)を グラフインデックス(ノード、関係、エッジ)に変換します。その後、数百の知識グラフで事前学習された グラフ基盤モデル(GFM) と呼ばれるグラフニューラルネットワークが、そのインデックス上で推論を行い、ユーザーのクエリに最も関連するドキュメントを取得します。取得された文章は、任意の LLM に供給され、回答生成に使用されます。

なぜ重要か – 伝統的な RAG システムはキーワードや密度ベクトルの類似度に基づいてドキュメントを検索しますが、これはマルチホップ推論や構造的知識に対応しづらいです。GFM‑RAG は、関係(例:大統領 → 国 → 首都)を単一ステップでたどれるグラフニューラルネットワークベースの検索器を追加することで、検索の正確性と解釈可能性を向上させます。


主な機能(リポジトリに記載)

  • グラフ基盤モデル(GFM) – グラフインデックス上で推論できる GNN ベースの検索器。
  • ユニバーサルグラフインデックス – 知識グラフ、ドキュメントグラフ、階層グラフをすべてサポート。3つの CSV ファイル(nodes.csv、relations.csv、edges.csv)で表現される。
  • 効率性 – マルチホップ推論は単一の検索呼び出しで実行可能。
  • 汎化性 – 事前学習済みの GFM は、未確認のデータセットでも即座に動作;ファインチューニングは不要。
  • 転移性 – 自分のデータで検索器をファインチューニングすることで、ドメイン特化性能を向上可能。
  • エージェント対応 – 任意のエージェントフレームワークと互換性があり、検索ステップを期待するものに対応。
  • 解釈可能性 – 取得されたグラフパスを可視化することで、ドキュメントが選択された理由を示すことができる。

クイックスタート概要

  1. インストール(Python 3.12、CUDA 12+):
    conda create -n gfmrag python=3.12
    conda activate gfmrag
    conda install cuda-toolkit -c nvidia/label/cuda-12.6.3
    pip install gfmrag
    
  2. 2つのエントリポイント:
    • パス A – ロウドキュメント – documents.json(キー/バリューのペア)を提供し、GFMRetriever.from_index にグラフの自動構築を任せます。
    • パス B – 事前構築されたグラフ – processed/stage1/ ディレクトリに nodes.csv、relations.csv、edges.csv(およびオプションの test.json)を配置;ライブラリが直接読み込みます。
  3. 検索:
    from gfmrag import GFMRetriever
    retriever = GFMRetriever.from_index(
        data_dir="./data",
        data_name="toy_raw",
        model_path="rmanluo/G-reasoner-34M",
    )
    results = retriever.retrieve("フランスの大統領は誰ですか?", top_k=5)
    print(results["document"])
    
    この呼び出しは、関連性スコア付きのドキュメント ID のリストを返します。

ファインチューニング

  • train.json を準備し、クエリ-ドキュメントペアと、必要に応じて開始/ターゲットノードの注釈を含める(README の例を参照)。
  • 提供された Hydra 設定ファイル(gfm_reasoner/sft_training.yaml)を編集する。
  • 1台または複数の GPU で学習を実行する:
    torchrun --nproc_per_node=4 -m gfmrag.workflow.sft_training --config-path config/gfm_reasoner
    
  • コードは、Hugging Face から事前学習済みチェックポイント(GFM‑RAG‑8M または G‑reasoner‑34M)を自動でダウンロードします。

GFM‑RAG を使うべき場面?

シナリオ なぜ GFM‑RAG が役立つか
知識集約型 QA(例:企業文書、科学文献) グラフベースの検索は、単純なベクトル検索では見逃されるエンティティ間の関係を捉えられる。
複数ステップの推論(例:「X を買収した会社の創業者は誰ですか?」) 単一ステップの GNN 検索で、グラフ内の複数ホップをたどることができる。
説明可能な AI 取得されたグラフパスを可視化することで、推論の流れを示すことができる。
リソースが限られたドメイン 事前学習済みの GFM はファインチューニングなしで動作するため、データ収集の手間が省ける。
カスタム知識グラフ 自分の nodes/relations/edges CSV を提供し、インデックス作成ステップをスキップできる。

エコシステムとリソース

  • プロジェクトページ: https://rmanluo.github.io/gfm-rag/
  • 論文: GFM‑RAG(NeurIPS 2025)および G‑reasoner(ICLR 2026)。
  • Hugging Face 上のモデル: rmanluo/GFM-RAG-8M、rmanluo/G-reasoner-34M。
  • 関連するオープンソース作業: ULTRA(ベース GNN)、HippoRAG(KG構築)、Microsoft GraphRAG(デザインのインスピレーション)。

TL;DR

GFM‑RAG は、任意のドキュメントコレクションをグラフに変換し、事前学習済みのグラフニューラル検索器を使って LLM 生成に最も関連する部分を取得します。高速で、新しいデータセットでも即座に動作し、ドメイン特化性能向上のためのファインチューニングも可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト