Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GraphRAGの仕組みまるわかり
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
とすり
June 23, 2025
Programming
2.1k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GraphRAGの仕組みまるわかり
とすり
June 23, 2025
More Decks by とすり
See All by とすり
AWS IoT GreengrassとRaspberry Piを使って、怠惰な生活検知システムを作る
tosuri13
0
51
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
1.3k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
390
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
840
NL2SQLを活用したExcelの生成AI利用アプローチ
tosuri13
0
150
RAGの精度が全然上がらない!! AOSSを使った社内RAG開発の反省
tosuri13
3
280
AWS Chaliceで始める爆速サーバレスチャットボット開発!!
tosuri13
1
330
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
3
720
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
1
1k
Other Decks in Programming
See All in Programming
phperだってパンチカードでコーディングしたい
o0h
PRO
0
270
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Simple Storage Service(S3) is not simple
iwatsukayura
0
250
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
480
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
残高管理から台帳サービスへの進化
artoy
0
180
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
620
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.8k
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
The Rails Doctrine Decade
koic
2
560
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Leo the Paperboy
mayatellez
10
2.4k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
GraphQLとの向き合い方2022年版
quramy
50
15k
Code Reviewing Like a Champion
maltzj
529
40k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Transcript
GraphRAGの仕組みまるわかり JAWS-UG AI/ML #27:Generative AI / ML LT大会
とすり@tosuri13 自称雑用系エンジニア AWS基盤の運用とかをやってます
GraphRAGの仕組みを理解しよう!
GraphRAGとは? GraphRAGとは、ある知識をグラフで表現したナレッジグラフを活用して、コ ンテキストの探索 + テキスト生成までを行うRAG手法の一つです。 ユーザ LLM ナレッジグラフ JAWS-UGについて教えて! ナレッジグラフを探索してきますネ
ナレッジグラフってなんなんだ...? これがナレッジグラフだ!
ナレッジグラフを構成する要素 ナレッジグラフは、実体を表すエンティティと関係性を表すリレーションの集 合で構成されています。補足情報としてプロパティを追加することもできます。 サメ 海 生息する 丸がエンティティ(Node)、矢印がリレーション(Edge) このような「主語 → 述語
→ 目的語」となる組をトリプルという プロパティの例 Entity ID ・a94d-be14... Description ・サメは危険な生物で... Vector ・[0.15, 0.43, ...] Entity ID ・a94d-be14... Description ・サメは危険な生物で... Vector ・[0.15, 0.43, ...] サメ
ナレッジグラフの利用 ナレッジグラフは、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から始まるトリプルを探索
GraphRAGは何を解決するの? GraphRAGではナレッジグラフの探索により、従来のRAG(Native RAG)で発生す る断片的な情報しか取得できないという課題を緩和することができます。 JAWS-UG AWS サメ 勉強会 関連する 運営する
開催する アイコンを持つ Amazon 日本のAWSコミュニティで〜 サメをモチーフにしたロゴ サメをモチーフにしたロゴ 勉強会の開催を行なっている 日本のAWSコミュニティ 日本のAWSコミュニティ サメ好きの集団らしいでス 意味的類似性のみしか考慮しないため、 関連するコンテキストを取得できないことがある ナレッジグラフを探索することによって、 関連するコンテキストを取得できる!!
GraphRAGの具体的な処理を見てみよう!!
GraphRAGの難解ポイント ① どうやってドキュメントからナレッジグラフを構築するの? ② どうやってナレッジグラフから関連するコンテキストを取得するの? ① ② ドキュメント ナレッジグラフ LLMアプリケーション
この2つの処理はAIフレームワークで特に隠蔽されてしまいがちな部分... (LangChainのLLMGraphTransformerなどはお世話になった人も多いはず)
ナレッジグラフの構築について
ナレッジグラフの構築について ドキュメントが構造化されているかどうかで、ナレッジグラフの構築に使用す るトリプルの抽出方法が大きく変わります。 ・構造化ドキュメント - CSV(Excel)、JSON、Parquetなど - コードベースや章立てされたファイルなどにも対応できる ・非構造化ドキュメント -
PDF、Markdown、Word、プレーンテキストなど
ナレッジグラフの構築 (構造化) 構造化されたドキュメントの場合、ドキュメントに含まれる行と列の関係や階 層構造に着目してトリプルを手動で抽出します。 君の名は 新海誠 DIRECTED_BY 君の名は 新海誠 DIRECTED_BY
最終的に実現したい内容によって グラフの構造を決定する必要がある
ナレッジグラフの構築 (構造化の派生) グラフとして表現できるナレッジであれば何でもよく、木構造で表現できる コードベースなどをトリプルとして抽出することもできます。 root src xxx.py README yyy.py src
xxx.py yyy.py CONTAINS CONTAINS src xxx.py yyy.py CONTAINS CONTAINS プロパティにコードや要約などを入れておくとよい
ナレッジグラフの構築 (非構造化) 非構造化ドキュメントの場合、トリプルをアルゴリズムで抽出するのは困難で あるため、LLMを活用してチャンクからトリプルを抽出します。 LLMを利用して抽出 Claudeを使った抽出例
コンテキストの取得方法について
コンテキストの取得方法はたくさんある! ナレッジグラフからコンテキストを取得する方法は、AIフレームワーク・サー ビスごとに大きく異なります。今回は代表的なものを二つ紹介します。 ・クエリ生成パターン - LangChain(GraphCypherQAChain)が採用しているパターン ・グラフ探索パターン - Mastra、Knowledge Basesが採用しているパターン
コンテキストの取得 (クエリ生成パターン) 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クエリを実行する このクエリを実行してくださイ
コンテキストの取得 (グラフ探索パターン) ベクトル・キーワード検索で取得したノードの近隣を探索する方法です。テキ スト生成モデルを使用しないため、レイテンシ・コストの面で優れています。 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から グラフを構築するパターンもあります ベクトル検索で得られたノードの 近隣ノードを探索するクエリ
その他、GraphRAGに関する情報
GraphRAGの課題 ・有効なナレッジグラフを構築するのが難しい! → ドキュメントの性質に大きく依存するため、汎用的な処理では上手く取り 扱えないことが多い → 対象となるドキュメントと地道に向き合う必要がある ・Native RAGと比較してコストが高い! →
特にナレッジグラフの構築には、LLMを使用した処理が大量に挟まるため 大きなコストがかかる → 個人でGraphRAGを検証する場合は要注意
AWSが提供している高度なGraphRAG AWS公式からGraphRAG Toolkitというフレームワークが公開されています。 より高度なグラフ構築・検索を利用したい方はチェックしてみてください。
まとめ
今回は、ナレッジグラフの構築から探索まで、GraphRAGの細かい仕組みにつ いて紹介しました。 一見難しく見えるその仕組みも、実際にリポジトリを観察する、触ってみる、 自分で実装してみるなどすると一気に理解が深まるので、ぜひご自身で試して みてください! まとめ
Thank you for listening!! 定期的にAI・クラウド系の技術発信をしてるので、よかったらTwitterフォローしてください。 @tosuri13