こんばんは。Koderaです。
Amazon Neptuneがより信頼性のあるRAGアプリケーション構築のために、PropertyGraphStoreのサポートを開始しました。
https://aws.amazon.com/jp/about-aws/whats-new/2024/08/amazon-neptune-propertygraphstore-graphrag-applications/
アップデート内容
Amazon Neptuneに保存されたナレッジ グラフを「LlamaIndex」と組み合わせることで、Graph Retrieval-Augmented Generation (GraphRAG) アプリケーションを構築できるようになりました。
LlamaIndexは、大規模言語モデル (LLM) を使用してアプリケーションを構築するオープンソース フレームワークです。
大規模言語モデル(LLM) と外部データを接続するためのインターフェースを提供します。
TextToCypher Retrieverを介した自然言語クエリ処理、Cypher Template Retrieverを介したナレッジ グラフ取得、およびサポートされているエクストラクターとリトリーバーを介したナレッジ グラフ拡張 RAGの作成とクエリの追加ができるようになっています。
PropertyGraphIndex を使用することで、ナレッジ グラフ内のノードおよび関係プロパティの効率的なインデックス作成とクエリが可能になり、特定の属性に基づいて関連データを迅速に取得できるようになりました。
Amazon Neptuneのナレッジグラフとは
まず、今回のアップデートに関連する「ナレッジグラフ」とは何かを考えてみます。
Amazon Neptuneには、2つの機能があります。
・Amazon Neptune Database
・Amazon Neptune Analytics
「ナレッジグラフ」の前に「グラフデータベース」の定義を確認してみます。
グラフデータベースは、データ項目間の関係を格納し照会するために最適化されています。
データ項目自体をグラフの頂点として、それらの間の関係はエッジとして格納します。各エッジにはタイプがあり、ある頂点 (始点) から別の頂点 (終点) に向けられます。関係はエッジだけでなく述語とも呼ばれ、頂点はノードと呼ばれることもあります。いわゆるプロパティグラフでは、頂点とエッジの両方がそれらに関連付けられた追加のプロパティを持つことができます。https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/graph-get-started.html
エッジは名前の付いた矢印で表示され、頂点はつながりのある特定の人物や趣味を表します。
グラフは単純な探索により、Justin の友だちについて知ることができます。
次に「ナレッジグラフ」とは何でしょうか。
ナレッジグラフとは
ナレッジグラフを使用すると、DB接続されているあらゆる種類の情報を整理して照会し、一般的な質問に答えられます。
リレーショナルDBだけではなく、半構造化ソース (メディア メタデータ、スプレッドシートなど) や非構造化ソース (テキスト ドキュメント、電子メール、ニュース記事など)も対象です。
概念の定義、プロパティ、情報の関係性、および保持されると予想される論理制約のセットを使用して、特定のドメインの情報や意味合いをキャプチャします。ナレッジグラフを利用することで、組織で保有している情報資産を統合することができ、組織のすべてのメンバーが情報資産をより簡単に利用できるようにします。
異種のデータ ソースからの情報をリンクしてアクセスできるようにすると、さらに精度を上げて質問に答えることができます。
PropertyGraphStoreとは
プロパティグラフは、プロパティ (メタデータ) を含むラベル付きノード (エンティティ カテゴリ、テキスト ラベルなど) のナレッジ コレクションです。
LlamaIndex では、PropertyGraphIndex が主要なオーケストレーションとして、グラフの構築とグラフに対するクエリ機能を提供しています。
https://docs.llamaindex.ai/en/latest/module_guides/indexing/lpg_index_guide/
まとめ
本アップデートにより、PropertyGraphIndexの有効化を行い、回答の迅速な取得により、GraphRAG ソリューションがより効率的に活用できるようになったかと思います。