- LLMの強力な機能を用いて、非構造化テキストから意味のある構造化データを抽出するよう設計されたデータパイプラインおよび変換製品群
- これまで見たことのないデータセットに対する質疑応答を可能にするグラフベースのアプローチ
- 2月に紹介されたツールで、今回オープンソースとして公開され、より構造化された情報検索と包括的な応答生成を提供
主な機能
- 大規模言語モデル(LLM)を用いて、テキスト文書の集合から豊富な知識グラフを自動的に抽出
- このグラフベースのデータインデックスは、ユーザークエリの前にデータの意味構造を把握できる
- 高密度に接続されたノードの「コミュニティ」を階層的に検出し、高水準のトピックから低水準のトピックまでグラフを複数レベルに分割
- LLMを使って各コミュニティを要約することで、データセットの階層的な要約が生成され、どんな質問をすべきかを事前に知らなくてもデータセットを理解できる
- 各コミュニティは、そのエンティティと関係を説明するコミュニティ要約の基盤として機能
データセット全体を扱う質問への回答の利点
- このような「コミュニティ要約」は、ベクトル検索に基づく naive RAG アプローチでは不十分なグローバル質問(データセット全体を扱う質問)にどのように役立つのか?
- 例えば「データセットの主要なテーマは何ですか?」のような質問では、naive RAG は常に誤解を招く回答を返してしまう
- グローバル質問に答えるには、すべての入力テキストを考慮する必要がある
- コミュニティ要約は、グローバルなデータ文脈における関連内容をすべて保持する map-reduce アプローチを用いて、こうしたグローバル質問に答えられる:
- コミュニティレポートを LLM のコンテキストウィンドウサイズまでグループ化
- 各グループに質問をマッピングしてコミュニティ回答を生成
- 関連するすべてのコミュニティ回答を最終的なグローバル回答へと集約
評価と結果
- このアプローチを naive RAG および階層的ソーステキスト要約と比較するため、LLM GPT-4 を用いてさまざまな activity-centered sense-making 質問を生成
- 生成された回答に対して、3つの評価指標を選定: comprehensiveness(あらゆる側面を詳細に扱うこと)、diversity(多様な観点を提供すること)、empowerment(情報に基づく意思決定を支援すること)
- GraphRAG は naive RAG よりも comprehensiveness と diversity の面で優れた性能を示した(勝率約70〜80%)
- また GraphRAG は、中レベルおよび低レベルのコミュニティ要約を使用した場合、ソーステキスト要約よりもこれらの面で優れた性能を示し、トークンコストも低かった(クエリあたり約20〜70%のトークン使用)
- 最上位レベルのコミュニティでは、階層的ソーステキスト要約と競争力のある性能を示しつつ、トークンコストは大幅に低かった(クエリあたり約2〜3%のトークン使用)
研究インサイトと今後の方向性
- 初期の研究サイクルを通じて、LLM が非構造化テキスト入力から豊富な知識グラフをうまく導き出せることを実証
- こうしたグラフは、naive RAG では適切な応答を生成できず、階層的ソーステキスト要約ではコストが高すぎる新しいタイプのグローバルクエリを支援できる
- 現在は、グラフインデックス生成の事前コストを維持しつつ、これらのコストを削減するためのさまざまなアプローチを模索中
- 問題領域に合わせて LLM 抽出プロンプトを自動調整する最近の研究は、これらのプロンプトをカスタマイズし、エンティティタイプを列挙し、few-shot の例を作るために必要な事前作業を減らす方法の一例
- GraphRAG とソリューションアクセラレータを公開利用可能にすることで、データを全体的に理解することが重要なユーザーやユースケースに対して、グラフベースの RAG アプローチをより利用しやすくすることが目標
1件のコメント
Hacker Newsの意見
MicrosoftのGraphRAGプロジェクトは、最新の抽出ライブラリがなくても知識グラフを構築する方法を採用している
MicrosoftがGraphRAGをオープンソースとして公開したことを非常にうれしく思う
GraphRAG Methodについてより詳しい情報を探している人向けのリンクを共有
GraphRAGプロジェクトは、ベクターデータベースが複雑な検索クエリに対して完全なRAGソリューションを提供できることを示している
知識グラフは従来の意味検索を置き換えるものではないが、RAG実行時に新たな能力を提供する
論文の理解が正しければ、インデックス作成時にLLMを複数回実行してエンティティ抽出とグラフインデックスの構築を行う
グラフとLLMを使った複数の小規模プロジェクトを進めてきて、このアプローチが有効であることを確認している
LlamaIndexのKnowledge Graph RAG Queryエンジンと関係があるのか気になる
ロシア・ウクライナ戦争を例として選んだのが興味深い
論文を読んだあと、このプロジェクトを試してみたいと思っていた