
※2025/6/1 現在加筆修正中です! 本書は、RAGをさらに発展させたGraphRAGについて理論とハンズオンの両面から解説した内容になっています。 従来のRAGでは難しかった、出来事の関係性を考慮した回答や長大な文章の裏に隠れた趣旨といった抽象度の高い回答を実現できる手法として注目を集めています。 難解な理論の解説はもちろん、サンプルコードたっぷりに実装方法の例も載せています。 Microsoftが開発した技術とあって、OpenAIやAzureにベンダーロックインされがちですが、他のLLMやインフラ基盤でも動かせる方法も模索しました。 RAGには満足しきれない、より高度なAI体験を作ってみたいというエンジニアに捧ぐ一冊です! LTでGraphRAGや本書の内容について簡単に紹介をしているので合わせて見てみてください。 https://speakerdeck.com/sashimimochi/graphrag-what-i-thought-i-knew-but-didnt ====================== 目次 第1章 まずはRAGを理解しよう 8 1.1 そもそもRAGって何? 8 1.2 RAGの仕組み 10 1.3 RAGのキモは「検索」だ! 12 コラム:文章をベクトル化するって? 14 1.4 RAGをやってみよう 15 1.4.1 アカウントを作ろう 16 1.4.2 クイックスタート 19 1.4.3 テキストをベクトル検索しよう 24 1.4.4 RAGをやってみよう 28 1.5 まとめ 34 コラム:いろいろできるぞPinecone 35 第2章 GraphRAGとは何者なんだ? 37 2.1 RAGは万能薬ではなかった 37 2.2 勘違いされがちなGraphRAGのイメージ 41 2.2.1 直感的なGraphRAGのイメージ 41 2.2.2 ベクトル検索との違い 66 2.2.3 全文検索(エンジン)との違い 44 2.3 本当のGraphRAGはグラフをたどりたい わけじゃなかった!? 46 2.4 MS GraphRAGの仕組み〜インデックス編〜 49 2.4.1 テキストユニットの作成 51 2.4.2 EntityおよびRelationshipの抽出 51 2.4.3 グラフ要素の要約 52 2.4.4 コミュニティ検出 53 2.4.5 コミュニティ要約の生成 54 2.4.6 ドキュメント処理とリンク付け 55 2.5 MS GraphRAGの仕組み〜クエリ編〜 56 2.5.1 Global Search(グローバル検索) 56 コラム:重要性スコアはどのようにして決まる? 59 2.5.2 Local Search(ローカル検索) 62 2.6 まとめ 64 コラム:知識グラフは過程であってゴールではない? 66 第3章 MS GraphRAGを動かしてみよう 68 3.1 王道は公式ライブラリ 68 3.2 まずは環境構築 71 3.3 インデックス作成(ナレッジグラフの構築) 75 3.4 質問応答 76 3.4.1 グローバル検索 76 3.4.2 ローカル検索 77 3.5 まとめ 79 第4章 より実践的なGraphRAGの実装を求めて 80 4.1 アーキテクチャの選定 80 4.2 まずはチュートリアルを 84 4.3 LLMをGeminiに変更しよう 89 4.4 ナレッジグラフを可視化しよう 96 4.4.1 NetworkXで可視化する 97 4.4.2 Jupyterで可視化する 98 4.4.3 LightRAG Serverで可視化する 103 4.5 グラフストレージをNeo4jにしよう(コミュニティ版) 109 4.6 グラフストレージをNeo4jにしよう(クラウド版) 118 4.7 マイグレーションしよう 125 あとがき