はじめに
Neo4jのブログ記事「A Practical Experimentation of GraphRAG and Agentic Architecture With NeoConverse」を参考に、GraphRAGとエージェントアーキテクチャーの基本概念についてまとめます。
「NeoConverse」はNeo4j社の実験的なGenAIアプリケーションで、GraphRAGとエージェントアーキテクチャーを組み合わせたプロトタイプ環境です。次世代AI技術の可能性を探るための実証環境として開発されています。詳細は記事末尾の参考リンクをご覧ください。
RAGとGraphRAGの違い
従来のRAG(Retrieval-Augmented Generation)
従来のRAGは、ドキュメントを小さなチャンクに分割し、ベクトル化して検索する手法です。
主な課題:
- 関係性の理解が弱い - 単語の類似性ベースの検索で、エンティティ間の関係性の推論が難しい
- 断片化されたコンテキスト - 文書は孤立したチャンクとして扱われ、全体的な関係性が見えにくい
GraphRAG
GraphRAGはナレッジグラフを活用し、エンティティと関係性を中心に据えたアプローチです。
主な利点:
- 関係性を活かした検索 - グラフ構造を探索して、必要なノードと関係を正確に特定
- マルチホップクエリ - 複数のエンティティをまたいだ関係性(例:「A社→B製品→C業界」)を1クエリで取得
- 説明可能な推論 - 回答の導出プロセスをグラフ上で追跡可能
エージェントアーキテクチャーとは
エージェントアーキテクチャーは、タスクを専門コンポーネント(エージェントやツール)に委任するアプローチです。
- ツール: データベース検索や計算機などの特定機能
- エージェント: 1つ以上のツールを調整する意思決定者
主なタイプ
- シングルエージェント: LLMが直接ツールを使用(ChatGPTプラグインなど)
- マルチエージェント: 複数の専門エージェントが協力(LangGraphなど)
- オーケストレーション: 中央LLMがエージェントネットワークを統括(Bedrock Agentsなど)
利点
- 精度向上: 個別のエージェントを専門家が調整可能
- 複雑なワークフロー対応: 複数ツールの連携が可能
- 拡張性: 新しいAIサービスを随時追加可能
NeoConverseの仕組み
NeoConverseのシンプルな動作フロー:
- ユーザーが自然言語で質問
- LLMが意図を解析し適切なツールを選択
- 専門ツールが利用可能なら実行、なければText2Cypher(自然言語からNeo4jのCypherクエリを自動生成し、データベースに直接問い合わせる機能)にフォールバック
- 取得したコンテキストを基にLLMが回答を生成
- ユーザーに根拠のある回答を提供
実験例: GraphRAG vs 従来のRAG
「Palantirの顧客について」という質問での比較:
従来のRAG:
- 関連性の低いドキュメントも取得
- 別企業(WeWork)の顧客情報と混同
- 不正確な回答を生成
GraphRAG:
- Palantirノードを中心に関連情報を検索
- エンティティ間の関係を正確に把握
- 正確な顧客リストを提供
エージェントアーキテクチャの対応プロセス
エージェントアーキテクチャは以下のように効率的に対応します:
-
分析フェーズ:システムが質問を分析し、必要な情報を識別
-
ツール選択:それぞれの情報に最適なツールを自動選択
- データベースクエリツール:メディア報道数の多い企業を特定
- 企業情報ツール:選ばれた企業の詳細情報を取得
- 株価情報ツール:リアルタイムの株価データを取得
-
情報収集:システムが各ツールを効率的に起動
- まず「Accenture」が最も報道されている企業と特定
- Accentureに関する企業情報を取得
- Accentureの株価情報(ティッカー:ACN)を取得
-
情報統合:複数のソースからの情報を統合して完全な回答を生成
まとめ
GraphRAGは関係性重視の検索を可能にし、エージェントアーキテクチャはタスクの効率的な分担と実行を実現します。両者を組み合わせることで、より正確で文脈を理解した回答が可能になります。
NeoConverseは、これらのコンセプトを実験的に実装したオープンソースプロジェクトです。
参考情報