Slide 1

Slide 1 text

密ベクトル検索だけじゃない! RAGにグラフDBを使うと何ができるか考えたい 清水 厚志(Atsushi Shimizu)

Slide 2

Slide 2 text

2 清水 厚志(Atsushi Shimizu) 株式会社HBA ICTソリューション本部 テクニカルエキスパート 2005年入社(20年目)/ 45歳、3人兄弟の父親 自己紹介 好きなこと • 検索技術とAI コミュニティ歴 • Elasticsearch勉強会(2023/04~) • JAWS-UG(2023/09~) • JAZUG(2024/03~)など 発表は個人の見解に基づくものであり、 所属組織を代表するものではありません。 @shimizuxa

Slide 3

Slide 3 text

3 はじめに 突然ですが、

Slide 4

Slide 4 text

4 はじめに RAGを構成する技術要素で、 どこに一番興味がありますか? https://learn.microsoft.com/ja-jp/azure/search/retrieval-augmented-generation-overview

Slide 5

Slide 5 text

5 はじめに https://learn.microsoft.com/ja-jp/azure/search/retrieval-augmented-generation-overview LangChainを使いこなせる ようになりたい! LangGraphを使って Agentを実装してみたい! ノーコード・ローコードで アプリを構築するぞー GPT-4oマジで神。日本 ローカルモデル早く来い いやいや日本語利用なら Claude3の情緒が好き! Geminiの巨大コンテキス トウィンドウ活かしたい 連携先ストレージが増えま くって便利に Zero-ETLでインデックス 自動生成!

Slide 6

Slide 6 text

6 はじめに https://learn.microsoft.com/ja-jp/azure/search/retrieval-augmented-generation-overview ベクトル変換して 検索しまぁす! わたしが興味あるのは、 断然ここです!

Slide 7

Slide 7 text

7 はじめに ベクトル検索と一言で言っても奥が深いですが、 https://fintan.jp/page/10301/ https://www.pinecone.io/learn/splade/ 疎ベクトル検索イメージ(Splade) 密ベクトル検索の流れ

Slide 8

Slide 8 text

8 はじめに 今日は、ベクトル検索ではなくグラフDBを使った ナレッジグラフの利用を考えてみたいと思います!

Slide 9

Slide 9 text

わたしとグラフDBとの 出会い

Slide 10

Slide 10 text

10 私がグラフDBに興味を持ったきっかけ https://learn.microsoft.com/ja-jp/microsoft-365-copilot/extensibility/ecosystem Copilot for M365のデータストアとしてグラフが使われている! MS社が採用してる んだから、何か利点 があるはず!

Slide 11

Slide 11 text

11 Azure勉強会界隈で聞いてみた Copilot for M365みたいに、 AOAI界隈ではグラフDBを 使ったRAGの事例があった りしますか? わたし (Azure素人) Azure先達 エンジニア (何名か) 正直、聞いたことないんです よね。Azure AI Searchを 使ったベクトル検索が主流だ と思います。 (そうなんだ、 残念・・・)

Slide 12

Slide 12 text

12 ハンズオンを探して動かしてみた https://diptimanrc.medium.com/amazon-bedrock-part-3-amazon-neptune-graph-database-q-a-langchain-agent-with-amazon- bedrock-and-10f5dde1e2c5 手元で用意できる環境がAWSだったので、Bedrock + Neptuneで ハンズオンを探して、触ってみることに。

Slide 13

Slide 13 text

13 ハンズオンは無事動いた Pipでのライブラリ導入は多少手順を直したが、ハンズオン通り ベクトル検索なしで関連する情報を自然言語で得られた。 グラフの構造をもとにCypherクエリを生成していることもわかった。 chain = NeptuneOpenCypherQAChain.from_llm(llm = llm, graph=graph,verbose=True,) chain.run("who played in Top Gun ?") > Entering new NeptuneOpenCypherQAChain chain... Generated Cypher: MATCH (p:Person)-[:ACTED_IN]->(m:Movie {title:'Top Gun'}) RETURN p.name Full Context: {'ResponseMetadata': {'HTTPStatusCode': 200, 'HTTPHeaders': {'transfer-encoding': 'chunked', 'content-type': 'application/json;charset=UTF-8'}, 'RetryAttempts': 0}, 'results': [{'p.name': 'Tom Cruise'}, {'p.name': 'Kelly McGillis'}, {'p.name': 'Val Kilmer'}, {'p.name': 'Anthony Edwards'}, {'p.name': 'Tom Skerritt'}, {'p.name': 'Meg Ryan'}]} > Finished chain. ' Based on the provided information, the main actors in Top Gun were Tom Cruise, Kelly McGillis, Val Kilmer, Anthony Edwards, Tom Skerritt, and Meg Ryan.'

Slide 14

Slide 14 text

14 で、密ベクトル検索に比べて 何がいいの? どういう場合に使えばいいの? ハンズオンは無事動いた Pipでのライブラリ導入は多少手順を直したが、ハンズオン通り ベクトル検索なしで関連する情報を自然言語で得られた。 グラフの構造をもとにCypherクエリを生成していることもわかった。

Slide 15

Slide 15 text

今さらながら グラフDBやナレッジグラフを 調べてみた

Slide 16

Slide 16 text

16 グラフDB is 何 https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon%20Neptune_0730_v1.pdf オブジェクト、および関係を格納できるデータベース。 ナレッジグラフの格納は、代表的なユースケースの一つ。 「Amazon Neptuneではじめるグラフデータベース入門」(AWS Black Belt Online Seminar)

Slide 17

Slide 17 text

17 ナレッジグラフ is 何 Google検索の右側に出てくる関連情報(ナレッジパネル)は、 ナレッジグラフから取得された情報らしい。 ナレッジパネル (ナレッジグラフから 取得した関連情報)

Slide 18

Slide 18 text

18 ナレッジグラフ is 何 https://www.nttdata.com/jp/ja/trends/data-insight/2020/0608/ 業務上の単語と、業務上の概念の関係を関連付けたもの。 人間の思考ロジックに近い検索ができると言われている。 「ヒトの思考ロジックをなぞらえる『ナレッジグラフ技術』」(NTT DATA)

Slide 19

Slide 19 text

19 なるほど? ナレッジグラフ is 何

Slide 20

Slide 20 text

まとめ

Slide 21

Slide 21 text

21 私なりの理解(ご指摘ご意見大歓迎!) • グラフDB(ナレッジグラフ)を使うことで、人間の思考プロセスに 近い検索が実施でき、検索結果の納得感につながる可能性がある。 • 一方、ちゃんとモデリングするのは大変そう。既存のデータをその まま流用するような使い方は難しいように思う。 • LLMが高性能化しているので、検索で頑張らなくても、、という考 え方もあり、やっぱり使いどころが難しい。 この辺、AI界隈/検索界隈の有識者の方々の ご意見を伺いたいです!

Slide 22

Slide 22 text

22 おわりに 他にもRAG検索の精度を上げる工夫は 色々ありそうなので、これからも 検索と楽しく付き合っていきたいです! https://zenn.dev/knowledgesense/articles/cec1cd43244524

Slide 23

Slide 23 text

No content