Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphRAGの仕組みまるわかり

 GraphRAGの仕組みまるわかり

Avatar for とすり

とすり

June 23, 2025
Tweet

More Decks by とすり

Other Decks in Programming

Transcript

  1. ナレッジグラフを構成する要素 ナレッジグラフは、実体を表すエンティティと関係性を表すリレーションの集 合で構成されています。補足情報としてプロパティを追加することもできます。 サメ 海 生息する 丸がエンティティ(Node)、矢印がリレーション(Edge)
 このような「主語 → 述語

    → 目的語」となる組をトリプルという プロパティの例 Entity ID ・a94d-be14... Description ・サメは危険な生物で... Vector ・[0.15, 0.43, ...] Entity ID ・a94d-be14... Description ・サメは危険な生物で... Vector ・[0.15, 0.43, ...] サメ
  2. ナレッジグラフの利用 ナレッジグラフは、Neo4j、Amazon NeptuneなどのGraphDBに格納して利用 します。また、CypherなどのグラフDB向けクエリ言語を用いることで、ナ レッジグラフ内の要素を探索することが可能です。 Cypher Query MATCH (n:Entity {

    value: "サメ" })-[r]->(m) RETURN n, r, m Cypher Query MATCH (n:Entity { value: "サメ" })-[r]->(m) RETURN n, r, m サメ 海 生息する サメ 海 生息する GraphDB サメのEntityから始まるトリプルを探索
  3. GraphRAGは何を解決するの? GraphRAGではナレッジグラフの探索により、従来のRAG(Native RAG)で発生す る断片的な情報しか取得できないという課題を緩和することができます。 JAWS-UG AWS サメ 勉強会 関連する 運営する

    開催する アイコンを持つ Amazon 日本のAWSコミュニティで〜 サメをモチーフにしたロゴ サメをモチーフにしたロゴ 勉強会の開催を行なっている 日本のAWSコミュニティ 日本のAWSコミュニティ サメ好きの集団らしいでス 意味的類似性のみしか考慮しないため、
 関連するコンテキストを取得できないことがある ナレッジグラフを探索することによって、
 関連するコンテキストを取得できる!!
  4. コンテキストの取得 (クエリ生成パターン) LLMにCypherクエリを生成させてナレッジグラフを探索する方法です(T2C)。 対象となるナレッジグラフが比較的単純で小規模な場合に有効です。 Searchable Triplets (Company) - [OPERATES] ->

    (Service) (Community) - [RELATED_TO] -> (Service) (Community) - [ORGANIZES] -> (Event) (Community) - [HAS_ICON] -> (Motif) Searchable Triplets (Company) - [OPERATES] -> (Service) (Community) - [RELATED_TO] -> (Service) (Community) - [ORGANIZES] -> (Event) (Community) - [HAS_ICON] -> (Motif) Cypher Query MATCH (:Community)-[:HAS_ICON] -> (m) RETURN m.value Cypher Query MATCH (:Community)-[:HAS_ICON] -> (m) RETURN m.value LLM 検索可能なトリプルのリスト
 (クエリで取得 or 事前に定義する) LLMが生成したCypherクエリを実行する このクエリを実行してくださイ
  5. コンテキストの取得 (グラフ探索パターン) ベクトル・キーワード検索で取得したノードの近隣を探索する方法です。テキ スト生成モデルを使用しないため、レイテンシ・コストの面で優れています。 JAWS-UG AWS サメ 勉強会 関連する 運営する

    開催する Amazon Cypher Query MATCH (start)--(neighbor)
 WHERE start.nodeId = $nodeId
 RETURN neighbor LIMIT 5 Cypher Query MATCH (start)--(neighbor)
 WHERE start.nodeId = $nodeId
 RETURN neighbor LIMIT 5 アイコンを持つ 一番近いノードはこれでス Mastraなど検索前にベクトルDBから
 グラフを構築するパターンもあります ベクトル検索で得られたノードの
 近隣ノードを探索するクエリ