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

Pythonで構築する人口移動ナレッジグラフ: NetworkXとGraphRAGによる意味的...

Pythonで構築する人口移動ナレッジグラフ: NetworkXとGraphRAGによる意味的地域検索

Avatar for negi111111

negi111111

August 21, 2026

More Decks by negi111111

Other Decks in Technology

Transcript

  1. 本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現

    • 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 3
  2. 本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現

    • 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 4
  3. 本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現

    • 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 5
  4. ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの

    回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 6
  5. ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの

    回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 7
  6. ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの

    回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 8
  7. ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの

    回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 9
  8. 本日のゴールと話すこと 都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた地 域探索を実現する。本発表では、以下の流れを理解することを目標とする • 表形式データをグラフ構造へ変換する考え方 • 都市ノードや人流リンクをどのように設計するか • NetworkXを利用したグラフ分析の方法 (→ここは昨今、LLMでほぼ細かい知識無く実装可能)

    • 構築した知識グラフをどのように育てていくか • LLMをどの部分に利用し、どの部分をデータ分析で担保するか なによりグラフデータについて興味を持って頂けることを大事にします この機会に一緒に入門してみましょう! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 13
  9. 知識グラフとは(知識グラフ: KG) データを「主体」「関係」「対象」の組み合わせとして表現し、複雑な情報の探索を可能にする • 知識グラフでは、単なる値ではなく、データ同士の関係性を保持する • 例えば「広島市は広島県に属する」「広島市から岩国市へ通勤する」といった関係を表現できる • 関係性を保持することで、新しい検索やネットワーク分析へ発展できる 事実はグラフノードと,その間の関係からなるトリプル構造(s,

    r, to)で表現される • 主体(Subject)→ 関係(relation)→ 対象(Object) • 例: (Python, 関連する, プログラミング言語)、(PyConJP2026, 開催する, 広島県) 属する ・有名な観光地 ・名物・・・ 引用:広島県は見どころいっぱいのおすすめの観光名所がたくさん!歴史や文化を感じられる広島でも有数な人気スポット宮島の厳島神 社、平和記念公園も絶対に外せない! - 地域PR|クールジャパンビデオ|日本の観光・旅行・グルメ・面白情報をまとめた動画キュレー ションサイト「COOL JAPAN VIDEOS」 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 19
  10. 知識グラフの例1/3 「モナ・リザ」「ルーヴル美術館」「パリ」といった情報を保存するのではなく、それらがどう関係してい るかまでデータとして表現している • この構造にする最大のメリットは、直接登録されていない関係まで、グラフをたどって探索できること • 「ダ・ヴィンチがモナ・リザを描いた」 • 「モナ・リザはルーヴル美術館にある」 •

    「ルーヴル美術館はパリにある」 「Jamesが訪れた美術館がある都市は?」 ・James → has visited → Louvre → is located in → Paris 表形式では値としてバラバラに存在する情報を、 知識グラフでは「何と何がどう関係しているか」として保持できる © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 図引用:¿Qué es el 知識グラフ de Google? - Komunicando 22
  11. 知識グラフの例2/3 身近にあふれる魅力的な知識グラフ! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.

    図引用:海外メディアが警鐘:NVIDIAの「循環取引」問題を会計士が解説|藤後 友弘@海外起業会計士 23
  12. 知識グラフの例3/3 身近にあふれる魅力的な知識グラフ! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.

    Nvidia, Microsoft, and OpenAI: This Chart Captures AI’s ‘Circular Financing.’ - Barron's 24
  13. 利用データ1:SSDSE SSDSEは都市そのものの特徴を表現するデータとして利用し、都市ノードの属性情報を構築する • SSDSE(教育用標準データセット:Standardized Statistical Data Set for Education) の略

    • 市区町村単位の人口、経済、教育、医療、福祉などの統計情報が含まれる • 本システムでは、都市の特徴量として類似度分析や条件検索に利用する • 統計値だけでは関係性を表現できないため、人流データと組み合わせて利用する 名称 SSDSE-市区町村 (SSDSE-A) SSDSE-県別推移 (SSDSE-B) SSDSE-家計消費 (SSDSE-C) SSDSE-社会生活 (SSDSE-D) SSDSE-基本素材 (SSDSE-E) SSDSE-気候値 (SSDSE-F) 内容 1741市区町村×多分野125項目 全国の全市区町村の、人口、経済、教育、労働、医療、福祉など、様々な分野の統計データを 収録しています 47都道府県×12年次×多分野109項目 人口、経済、教育、労働、医療、福祉など、様々な分野の統計データを、12年分の時系列で 収録しています 全国・47都道府県庁所在市×家計消費226項目 1世帯当たりの食料の年間支出金額(消費額)を、魚介、肉、野菜、果物、菓子、飲料などに 分類し、それぞれ詳細な品目別にデータを収録しています 全国・47都道府県×男女別×社会生活121項目 男女別に、スポーツ、趣味・娯楽、ボランティアなどの詳細な活動データや、1日の睡眠、食 事、学業、家事、仕事、趣味・娯楽などの時間配分データを収録しています 全国・47都道府県×多分野93項目 人口、経済、教育、文化、医療、福祉など、様々な分野の統計データを収録し、初学者にも扱 いやすいデータセットです 47都道府県庁所在市×月・年×気象42項目 気温、気圧、風速、日照、降水、降雪など、様々な気象データについて、月・年別の平年値を 収録しています © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 丁寧な解説書もある! 参考:SSDSE(教育用標準データセット) | 独立行政法人 統計センター 35
  14. 中身をざっと確認してみる…Pandas使う? 表形式のデータ構造(=構造化データ)に関して効率的にデータ操作を行うことができる • csvとかExcelとかで扱える様なデータならまずは初手 df: pd.DataFrame = pd.read_csv(“hoge.csv”) • DataFrame

    オブジェクトを介して高速で効率的なデータ操作 内部でMatplotlib の機能を使用して散布図、棒グラ フ、箱ひげ図,...などを .plot() だけで実現 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 特定の行や列を選択またはフィルタリングなども抽 出は直感的に記述可能 age_sex = titanic[["Age", "Sex"]] 出典:https://pandas.pydata.org/docs/getting_started/index.html#getting-started 42
  15. グラフ構造を楽に扱うには?: Net Net r r An l sis in th

    n NetworkXは、ノードとリンクからなるグラフをPython上で構築・探索・分析するためのライブラリであ り、複雑な関係性を少ないコードで扱える • ノードとリンクをPythonオブジェクトとして表現し、接続関係や属性を自由に保持できる • 「どことつながっているか」「どの経路で到達できるか」「どこが中心か」といったグラフ特有の処理を 利用できる • 本発表では、都市間人流の表現や中心性分析など、地域ネットワークの構築・分析にNetworkXを利用す る © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 引用:DAG - Topological Layout — NetworkX 3.6.1 documentation 44
  16. わざわざ使って何が嬉しいの?ねぇ Net Net r r An l sis in th

    n 処理フローをグラフとして表現すると、ある処理を実行するために必要な前処理や、影響を受ける後続処理 をグラフ探索として求められる データは上から下に依存 関係があるとして • 分析フローでは、各カードをノード、カード間の データ依存関係をリンクとして表現できる • 途中のカードを実行する場合、必要な上流ノードを 逆方向に探索することで、実行すべき処理範囲を 自動的に特定できる • NetworkXの探索・部分グラフ・トポロジカルソート を利用することで、依存関係を自前で一から実装 する必要がなくなる 自前で実装するなら? 楽に実装するなら? このカード以降を実行したい! • 接続先を調べる • グラフとして登録 • さらにその接続先を調べる • 必要なノードを探索 • 重複を除く • 依存順に並べる • topological_sort:依存関係を • 循環を確認する 守った実行 • 実行順を決める • ・・・? ネットワーク・グラフを扱うのに便利 なアルゴリズム実装が豊富にあるので 巨匠に載っかって楽ができる © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 45
  17. グラフを育てる際の注意点 知識グラフは、単純にデータを追加するだけでは価値が高まらない。何をノード・リンクとして表現するか を設計し、意味のある関係性として管理することが重要である • ノードには何を表現する対象なのかを明確に定義し、必要な属性情報を付与する必要がある • リンクにはどのような関係なのか、方向や重みを持つのかを定義し、分析可能な形で保持する • 行政所属、人流、交通など異なる意味を持つリンクを混在させると、ネットワーク分析結果の解釈が難し くなる

    • データを追加する際には、どのような問いに答えるための情報なのかを意識して設計することが大事 広島と教育・医 療・福祉のレベ ルで似た市町村 はどこだろう …? ノード設計 都市・属性 答えたい問い グラフ設計 リンク設計 人流・交通 知識グラフ (KG) メタ情報 出典・期間 グラフを大きくすること、が目的ではなく、答えたい問いに合わせてグラフを育てること、が重要 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 50
  18. 実は公開レポジトリ上でもフェーズ毎に拡張してる • フェーズ1:広島周辺20都市基準経路 • フェーズ2:全国1,719自治体に拡大 • フェーズ3:交通アクセス情報を追加・・・ ユーザ層 広島と教育・医療・福祉の レベルで似た市町村は?

    データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報) データ2:都市間の関係性情報 ・国勢調査ODデータ 山口 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 岡山 広島 51
  19. LLMには何を担当させるか LLMにすべての処理を任せるのではなく、質問理解や説明生成を担当させ、構造化した知識グラフと分析処 理によって根拠となる情報を生成する。 • LLMは自然言語からユーザーの意図や検索条件を理解し、適切な分析処理へつなげる役割を担う • 類似度計算、人流ランキング、距離計算などの処理はPythonやNetworkXで実行する • 計算結果を構造化された結果として保持することで、回答の根拠を追跡可能にする •

    LLMは分析結果を人間が理解しやすい文章へ変換し、必要に応じて一般的な背景情報を補足する LLM質問理解 分析条件生成 Python / pandas NetworkX 構造化結果 LLM説明生成 広島と教育・医療・ 福祉のレベルで似た 市町村はどこだろう …? データベース (知識グラフ) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 52
  20. データによる事実と一般知識を分離する 生成AIを実務で利用するためには、データから導き出した事実と、LLMが持つ一般的な知識を区別し、回答 根拠を明確にすることが重要である • 事実データは、公開データや分析処理によって得られる再現可能な情報である • 事実データには、人口、医療指標、人流量、、、などが含まれる • 一般知識は、LLMが持つ一般的な背景情報や説明情報である •

    今回は、ランキングや判断には事実データを利用し、一般知識は説明を補助する目的で利用する • データに存在しない条件については、LLMの推測で補完せず「評価できない」と判断できる設計とする LLM質問理解 分析条件生成 Python / pandas NetworkX 広島と教育・医療・ 福祉のレベルで似た 市町村はどこだろう …? データベース (知識グラフ) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 構造化結果 LLM説明生成 データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ2:都市間の関係性情報 ・国勢調査ODデータ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報) 53
  21. これから構築する全体アーキテクチャ • グラフ構造のままLLMで検索するには? →GraphRAGを用いて、ユーザのクエリからグラフ情報を 検索できるようにする! {"地域コード": "R24203", "都道府県": "三重県", "市区町村":

    "伊勢市", "2020_総人口": 122765, "2020_総人口(男)": 58161, "2020_総人口(女)": 64604, "2020_日本人人口": 120782, "2020_日本人人口(男)": 57182, "2020_日本人人口(女)": 63600, "2020_15歳未満人口": 14205, "2023_幼稚園数": 8, "2023_幼稚園在園者数": 406, "2023_小学校数": 22,… ユーザ層 名古屋と教育・医療・ 福祉のレベルで似た市 町村は? ・全国の全市区町村統計データ ・wikipedia ステップ1:データ整形 ステップ3:GraphRAG化 三重 ステップ2:データ補強 {"summary_text": "伊勢市(いせし)は、三重県南東部(南勢・伊勢志摩地 域)にある市。日本でも有数の観光地の一つで伊勢志摩地域の拠点都市であ る。”} © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 愛知 静岡 ※本来は全市区町村に関する巨大な知識グラフ 57
  22. これから構築する全体アーキテクチャ • グラフ構造のままLLMで検索するには? →GraphRAGを用いて、ユーザのクエリからグラフ情報を 検索できるようにする! {"地域コード": "R24203", "都道府県": "三重県", "市区町村":

    "伊勢市", "2020_総人口": 122765, "2020_総人口(男)": 58161, "2020_総人口(女)": 64604, "2020_日本人人口": 120782, "2020_日本人人口(男)": 57182, "2020_日本人人口(女)": 63600, "2020_15歳未満人口": 14205, "2023_幼稚園数": 8, "2023_幼稚園在園者数": 406, "2023_小学校数": 22,… ユーザ層 名古屋と教育・医療・ 福祉のレベルで似た市 町村は? ・全国の全市区町村統計データ ・wikipedia ステップ1:データ整形 ステップ3:GraphRAG化 三重 ステップ2:データ補強 {"summary_text": "伊勢市(いせし)は、三重県南東部(南勢・伊勢志摩地 域)にある市。日本でも有数の観光地の一つで伊勢志摩地域の拠点都市であ る。”} © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 愛知 静岡 ※本来は全市区町村に関する巨大な知識グラフ 58
  23. そもそもRAGとは • 検索拡張生成(Retrieval-Augmented Generation:RAG) • 入力クエリに関連する補助情報を与えることで、 事前学習済みのLLMの性能を向上させることが可能 • LLMはあくまで学習されたデータに基づいて回答を作る •

    →学習外の情報には回答できない≒ハルシネーションがある • →補助情報として用いることで性能向上ができる(生成AI標準技術) • 特定のドメインに特化した情報を要求するクエリや最 新の情報を必要とする場合に、より正確な出力を提供 Step2:関連 ❖ Step1: ベクトルストア構築 ➢ 補助知識に含まれる各文章に対して埋め込み表現 を生成し、ベクトルストアに格納 c ➢ 補助知識には以下の2つのデータセットを用意 ➢ 1741市区町村×多分野125項目(SSDSE) ➢ 各市町村の概要(Wikipedia) ❖ Step2: 関連文章の検索 c ➢ クエリに関連する文章群をベクトルストアから検索 ➢ 類似する関連文章の候補を作成 ❖ Step3: クエリの更新とモデルの応答 c ➢ 関連文章の候補を元のクエリと結合 ➢ 結合したクエリをLLMの入力とする © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 59
  24. GraphRAGとは • RAGでは知識を独立したテキストの断片(チャンク)としてしか扱えない • つまり、構造関係に基づいた回答が生成できない (以下の例は一般的なことなので、答えられるはずですが…) R A G 名古屋と経済的に

    最も繋がりの強い 都市は? RAG GraphRAG DBに『名古屋市の概要』 『名古屋』『経済』 『豊田市の概要』『名古 『繋がり』という単 屋から豊田への移動デー 語を含むテキスト片 タ』がバラバラに保存 を探すだけ →データが本来持っている『都市と都市の関係性』や 『データの構造』が、検索の際に失われてしまう • GraphRAGを用いることで、関係性を保持しながら構造を 考慮した理解した回答を返せるようにする グ ラ フ R A G 名古屋と経済的に 最も繋がりの強い 都市は? テキスト検索に加えて、 構造と文脈に基づい グラフの構造を検索 た回答の生成 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. GraphRAG: Practical Guide to Supercharge RAG with 知識グラフs 60
  25. GraphRAG用のデータに変換 • 定義されているスキーマに先程のJSONファイルをパース • あとは graphrag index コマンドに csv ファイルを渡せばインデックスDBを作ってくれる

    • 詳細はマイクロソフトの公式チュートリアルなどを参照:Inputs – GraphRAG • ※公式チュートリアルでもそこそこお金がかかるので注意 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 62
  26. もしコードを動かす場合の注意点 • GitHubにはGraphRAG用のインデックスDBも含まれています • SSDSEの市町村データは全都市のものを利用して作っているのでめちゃめちゃ巨大です • 構築に9時間ぐらいかかった気がします • GraphRAGを使って問い合わせしてレスが返ってくるまで時間がかかります •

    巨大なグラフ構造を探索するので・・・ • 特に、最適化に関する改善は施していません • また、DBを作る際にLLMに問い合わせしているので、お金が結構かかっています(数千円) • マイクロソフトの公式チュートリアルもお金がそこそこかかりますので注意 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. Getting Started - GraphRAG 63
  27. 生成までに時間がかかる理由 • 「全体階層インデックス(global opt)」を使い、クエリ時に • エンティティ/コミュニティ埋め込み検索 • 関連コミュニティ(階層)展開 • 各コミュニティ/エンティティ/関係レポートの再要約やスコア統合

    • 最終回答生成 を行うため、対象がグラフ全域に及び計算(+ LLM 呼び出し)コストが大きい。 • クエリ中に直接ヒットしたエンティティ近傍(半径/階層制限)のサブグラフだけを扱い、集約レポート 利用範囲が小さいため高速な local オプションがある。 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 64