何が凄いのか?最新の技術GraphRAGについて解説してみた

にゃんたのAI実践チャンネル
7 Jun 202425:17

Summary

TLDRこの動画では、グラフラグという技術を紹介しています。言語モデルをビジネスで活用する際に、外部情報の参照を可能にするラグ技術は既に広く使われていますが、精度向上のためにグラフ化することで、より関連性の高い情報検索が可能になります。具体的な実装方法や、グラフを使用することで得られる利点について解説し、実際の例を通じてその効果を示しています。

Takeaways

  • 😀 グラフラグは、外部情報を参照して言語モデルを使う技術で、従来のラグの問題点を解決する手法です。
  • 😀 グラフラグを使うことで、言語モデルが学習していない内容についても回答できるようになります。
  • 😀 グラフラグは、文章をグラフ化して表現し、情報を検索する際に精度を向上させる技術です。
  • 😀 文章をグラフ化することで、ノードとエッジを利用して情報の関係性を整理し、関連する情報を見つけやすくします。
  • 😀 グラフラグでは、言語モデルが自動で文章からノードとエッジを抽出し、グラフを作成します。
  • 😀 グラフラグを使うと、抽象的な質問にも対応でき、より正確な回答を生成することが可能です。
  • 😀 グラフラグの構築には、GPT-3.5やGPT-4などの高性能な言語モデルを利用することで精度を向上させることができます。
  • 😀 実装の際には、neo4Jというグラフデータベースを使用して、グラフを管理します。
  • 😀 グラフラグは、従来のラグと比較して、情報量が増え、より多くの質問に対して正確な回答を提供できます。
  • 😀 グラフラグを利用することで、企業内の情報を効果的に活用し、ビジネスの効率を向上させることが可能です。

Q & A

  • グラフラグとはどのような技術ですか?

    -グラフラグは、言語モデルが外部の情報を参照して使用する技術で、文章をグラフ化して関係性を表現し、より正確な情報検索や回答を可能にします。

  • 言語モデルをビジネスで活用する際、なぜラグ技術が重要なのですか?

    -ラグ技術を使うことで、言語モデルは学習していない内容についても答えることができるため、ビジネスにおける独自の決まりや日常の情報を活用することが可能です。

  • グラフラグを使用する際の主な課題は何ですか?

    -グラフラグの主な課題は、精度の向上です。文章をグラフ化する際の正確性や、関係性の解釈が精度に直接影响することがあります。

  • グラフ化された文章からノードとエッジはどのように抽出されるのでしょうか?

    -言語モデルが自動で文章からノード(人物や物)とエッジ(関係性)を読み取り、グラフを作成します。

  • neo4jとはどのようなデータベースですか?

    -neo4jはグラフデータを扱うためのデータベースで、グラフ構造のデータを効率的に管理・検索することが可能です。

  • グラフラグで使用する言語モデルの選択にはどのようなポイントがありますか?

    -言語モデルの選択では、精度と品質が重要で、GPT4などの高性能なモデルを使用することで、より高品質のグラフを作成することができます。

  • グラフラグを使用する際に、どのような種類の質問に対する回答能力が期待できますか?

    -グラフラグは、抽象的な質問や固有名詞を含む質問に対する回答能力が高まり、関係性に基づいた情報提供が期待できます。

  • グラフラグの実装にあたり、どのようなポイントが重要ですか?

    -グラフラグの実装では、文章の前処理やノードの正確な定義、そしてグラフの構築方法が重要で、これらが検索精度に影響します。

  • グラフラグを使用した検索と従来のラグ検索の違いは何ですか?

    -グラフラグは、意味的な情報の分脈とグラフから持ってきた情報を組み合わせたハイブリッド型の検索で、従来のラグ検索よりも情報量が増加し、精度が向上することが期待できます。

  • グラフラグの精度向上のために、どのようなアプローチがありますか?

    -精度向上のためには、適切な言語モデルの選択、文章の前処理、正確なグラフの構築、そしてグラフデータベースの適切な設定が有効なアプローチです。

  • このビデオスクリプトで紹介されたグラフラグのデモンストレーションでは、どのような結果が得られましたか?

    -デモンストレーションでは、グラフラグを使用することで、キャラクター間の関係性に基づく質問に対して正確な回答が生成されることが確認され、特に抽象的な質問に対する回答能力が高まることが示されました。

Outlines

00:00

📊 ラグ技術とグラフラグの紹介

本段落では、言語モデルの活用方法として最近注目されている「ラグ」と呼ばれる技術について説明しています。ラグは、外部情報を参照させて言語モデルを使う技術で、例えば会社の独自の決まりや個人の日記内容など、モデルが学習していない内容にも答えることができます。しかし、ラグの精度向上のためには様々な手法が提案され、その一つである「グラフラグ」についても触れています。グラフラグは、文章をグラフ化することで、より正確な情報を提供する技術と言えます。

05:01

🔍 ラグの検索精度とグラフラグの利点

第二段落では、ラグの検索精度に関する問題と、グラフラグがどのようにその問題を解決するのかが解説されています。ラグでは、ユーザーの質問に関連する部分を特定の文章から探す必要がありますが、精度が出ない場合もあります。グラフラグでは、文章をグラフ化し、関係性を可視化することで、関連性の高い情報を見つけやすくなります。これにより、抽象的な質問にも答えることが可能になります。

10:03

🛠️ グラフラグの実装手順

第三段落では、グラフラグを実装する手順について説明しています。まずは必要なパッケージのインストールから始め、OpenAIのAPIキーやグラフを扱うためのデータベースであるneo4Jの設定が必要です。その後、文章をグラフ化し、neo4Jにアップロードすることで、グラフの構築を行っています。このプロセスは、精度に直接影响するため、重要視されています。

15:05

🌐 グラフの構築とその重要性

第四段落では、グラフの構築過程とその重要性が強調されています。グラフの精度は、検索の正確性に直接関係しており、GPT3.5のターボを使用している場合でも、より高精度のグラフが必要な場合はGPT4オニなどの使用が提案されています。また、グラフのノードが適切に定義されることで、より良い検索結果が得られる可能性があります。

20:06

🤖 ハイブリッド型のグラフラグの実践

第五段落では、ハイブリッド型のグラフラグの実践方法について説明しています。ユーザーからの質問に対して、意味的に近いものだけでなく、グラフから関係性を持った情報を使用して回答を生成します。これにより、より正確で包括的な回答が可能になります。実際の質問に対する回答例も紹介されており、グラフラグの効果を実感できる場面が示されています。

25:08

📚 ラグの応用と宣伝

最後の段落では、ラグ技術の応用方法と、作成者の宣伝活動について触れています。グラフラグを使用することで、より良い情報検索が可能になるだけでなく、特定の質問に対する回答能力も向上します。また、作成者が行う講座やツールの宣伝も行われており、興味のある視聴者は詳細を知ることができます。

Mindmap

Keywords

💡グラフラグ

「グラフラグ」とは、言語モデルが外部情報源を参照して回答を生成する技術を指します。本動画のテーマであり、文章をグラフ化して関係性を明確化し、より正確な情報を検索する手法を説明しています。例えば、ドラゴンボールのキャラクター間の関係性をグラフで表現し、質問に答えることが可能です。

💡言語モデル

「言語モデル」とは、自然言語のパターンを学習し、文章の生成や理解を行うアルゴリズムのことです。動画では、言語モデルをビジネス活用する際の技術として、特にラグ技術と組み合わせて紹介されています。

💡リトリーバルオグメジェネレーション

「リトリーバルオグメジェネレーション」とは、外部情報源から必要な情報を検索し、言語モデルに提供するプロセスです。動画では、ラグ技術におけるこのプロセスの重要性が強調されており、情報検索の精度向上に寄与しています。

💡ノード

「ノード」とは、グラフ理論において、関係性を持つエンティティを表す基本的な単位です。動画では、文章をグラフ化する際に登場するキャラクターや概念をノードとして表現し、関係性を可視化しています。

💡エッジ

「エッジ」とは、グラフ理論でノード同士を繋ぐ線のことで、関係性を表します。動画では、エッジを用いてキャラクター間の相互作用や関係性をグラフ上で表現しています。

💡neo4j

「neo4j」とは、グラフデータベースのことで、グラフ構造のデータを効率的に管理・検索できるシステムです。動画では、neo4jを使用して文章をグラフ化し、ラグ技術を応用するプロセスを紹介しています。

💡ハイブリッド検索

「ハイブリッド検索」とは、複数の検索技術を組み合わせて使用することで、より高精度の検索結果を得る方法です。動画では、グラフラグ技術で文章の意味的な情報とグラフの情報を使ってハイブリッド検索を実行する手法を説明しています。

💡APIキー

「APIキー」とは、アプリケーションプログラミングインターフェースを利用する際に必要な認証情報を指します。動画では、OpenAIのAPIキーを設定し、言語モデルを利用する際に必要とされています。

💡精度

「精度」とは、検索や回答の正確性を指す指標です。動画全体を通して、グラフラグ技術が言語モデルの精度を向上させる方法として重点的に取り上げられています。

💡GPT

「GPT」とは、生成予測変換器(Generative Pre-trained Transformer)の略で、ディープラーニングを用いた言語モデルのことで、動画ではグラフの構築や質問への回答に使用されています。

Highlights

グラフラグというテーマで話すことを紹介

言語モデルをビジネスに活用する際にラグ技法の有用性

ラグを使用することで言語モデルが未学習の内容にも答えられる

グラフラグの基本的な考え方とその利便性の説明

ラグの精度向上のためのグラフ技法の紹介

グラフ化によって文章の関係性を視覚化する手法の解説

グラフを使用することで抽象的な質問に対する回答が可能になる

言語モデルが自動でグラフを作成するプロセスの説明

neo4Jというグラフデータベースを使用してグラフを管理する

グラフラグを使用した実装例とその効果の共有

グラフの精度が検索結果に直結するというポイント

グラフを使用したハイブリッド型のラグの手法の紹介

ユーザーの質問に応じてグラフから関連情報を抽出するプロセス

グラフを使用することで関係性に基づく正確な回答が可能になる

グラフラグの精度向上のためのGPT4オニなどの高品質言語モデルの使用

グラフラグを使用する際の前処理の重要性

グラフラグのハイブリッド検索の具体例とその効果

グラフを使用することで特定のエンティティに関する関係性の特定が可能になる

グラフラグの応用分野と実用性に関する考察

グラフラグのチュートリアルやツールの提供に関する宣伝

Transcripts

play00:00

はいこんな感じでですねま悟空を中心とし

play00:02

てまいろんなキャラがですねどういった

play00:04

関係性なのかってところまで含めてグラフ

play00:06

化できてるというのが分かりますはい皆

play00:08

さんこんにちはニャンタですえ本日は

play00:11

グラフラグというテーマで話していきたい

play00:13

と思いますえ皆さん仕事の中で言語モデル

play00:16

はどのように使ってるでしょうか言語

play00:18

モデルをビジネスに活用しようと思った時

play00:20

にま今1番使われてると言っても過言では

play00:23

ないのがラグと呼ばれる手法になってい

play00:25

ますで生成AIのフォーラムとかに行って

play00:28

みるとまどこも確かもですねこのラグを

play00:30

やってるというところが多いんじゃないか

play00:32

と思いますでラグは簡単に言うとえ外部の

play00:36

情報を参照させて言語モデルを使うとえ

play00:39

そういった技術になっていますえ詳しくは

play00:41

えこれらの動画で解説してるのでもっと

play00:43

知りたいという人は是非見てもらえればと

play00:45

思いますでラグを使うと何が嬉しいの

play00:48

かってことなんですけども言語モデルが

play00:50

学習していない内容についてもえ答えて

play00:52

くるようになります例えばえ自分の会社の

play00:56

え独自の決まりとか自分が毎日書いてるえ

play00:59

日記の内容とかですねえそういったことも

play01:02

このラグを使うことで言語モデルが回答し

play01:05

てくれるようになりますまなのでま言語

play01:07

モデルを仕事で使おうとかえそういった

play01:09

場合にですねのラグは多くの場合有用かな

play01:12

と思います皆さんの中にもえこのラグに

play01:15

関連するプロジェクトに取り組んでると

play01:17

いう人とかこれからラグを勉強してえ仕事

play01:20

にするぞという風に考えてる人もいるかも

play01:22

しれませんしかしこのラグはえ思ったより

play01:25

もえ精度が出ないということが多かったり

play01:27

しますまなのでこのラグの精度はを上げる

play01:30

ためのいろんな手法が出てきてるんです

play01:32

けども今回はその中の1つであるグラフ

play01:35

ラグというものについて解説していきます

play01:37

ラグについて分からない人でもえなんで

play01:39

このグラフラブを使う必要があるのかと

play01:41

いうのが分かるように解説してるので是非

play01:43

見ていってもらえればと思いますえそれで

play01:45

は早速ていき

play01:48

ましょうはい最初にえグラフラグというま

play01:52

ちょっと難しそうなものを紹介してくので

play01:54

なんでそんな手法を使わないといけないの

play01:56

かというところの話になりますまそもそも

play01:59

え現状のラグと言われる技術でえどういっ

play02:02

たところに課題があってえ精度が出ないの

play02:05

かというところを知っておく必要があり

play02:07

ますはい最初にですねえじゃあラグの全体

play02:10

像ってどんな感じだったっけというところ

play02:12

の復習になりますでちょっと唐突なんです

play02:15

けどもま仕事をしている時にですねえ昨日

play02:18

の打ち合わせ内容って何だっけという風に

play02:19

思ったりすることがあったとしますでこの

play02:22

時にえチャットGPTにえ昨日の打ち合わ

play02:25

せって何ですかっていう風に聞いてみて

play02:27

回答が返ってきたらえ結構便利ですよねで

play02:30

ただですねま実際チャットGPTとか聞い

play02:32

てみると分かるんですけどもえ打ち合わせ

play02:34

内容何ですかっていう風に聞いてもま学習

play02:37

してないのでま知らないっすという風な

play02:39

返答が返ってきたりしますでこれは当然え

play02:42

言語モデルが昨日の打ち合わせ内容につい

play02:44

て学習してないのでえ知らないという風に

play02:46

帰ってくるというわけですねでそれに対し

play02:49

てえラグを使うとえこんな感じで昨日の

play02:52

打ち合わせ内容をまとめたえPDFという

play02:55

のを原語モデルに渡してあげますこの

play02:58

PDFにはえ打ち合わせ内容がまペラペラ

play03:00

ペラペラでしたという風にま色々書いてる

play03:03

というわけですねでそうすると言語モデル

play03:06

がこの与えられた文章を参照すると昨日の

play03:09

打ち合わせ内容というのを理解できるので

play03:11

えユーザーの質問に対してどういった

play03:14

打ち合わせ内容だったかというのを答え

play03:16

られるというのがラグの全体のイメージに

play03:18

なっていますでここまではま実際にラグを

play03:21

使ったことある人っていうのは多いと思う

play03:23

のでなんとなく流れ知ってるよという人も

play03:25

多いかもしれませんでラグをもう少し

play03:28

詳しく見ていくとえ実は2つの処理が中で

play03:31

行われています1つ目がえ与えられた文章

play03:34

の中からえ必要な情報を探すという文章を

play03:38

検索する処理になっています昨日の

play03:40

打ち合わせ何だっけというユーザーの質問

play03:42

から文章の中のえどの部分を言語モデルに

play03:46

与えてあげれば適切に答えられるかという

play03:49

のを探す作業になっていますでラグは

play03:52

リトリーバルオグメジェネレーションと

play03:54

いう略になっていてリトリーバルってのは

play03:56

検索という意味になっていてでそのの通り

play03:59

え文書の中から必要な情報を探すとそう

play04:03

いったえ検索書になっていますでこの時に

play04:06

え文章を検索せずにこの文章まま全部をえ

play04:09

言語モデルに入れればいいじゃんという風

play04:11

に思った人もいるかもしれないですけども

play04:13

文章が長すぎるとえモデルに入れられ

play04:16

なかったりとかプログラムで言語モデルを

play04:18

使う場合はえ入力する文章に対して料金が

play04:21

発生してくるのでコストが上がったりして

play04:24

しまいますまなのでえ質問に関連する文章

play04:27

だけをえピックアップしてくるとそういっ

play04:30

たステップが必要になってくるわけですね

play04:32

でもう1つの処理がえこちらのえ言語

play04:35

モデルがえユーザーの質問に対して回答を

play04:38

生成するとえそういった処理になってい

play04:40

ますでここでは先ほど検索されたえ文章と

play04:44

えユーザーの質問を一緒に言語モデルに

play04:47

入れることでま回答を生成するとそういっ

play04:50

たことを行っていますでラグでは大きく

play04:52

上げてこの検索作業と言語モデルで回答を

play04:56

生成させるとでそういった2つの処理が

play04:58

必要になってきますでこの2つ目のえ言語

play05:01

モデルが回答を生成するという書類に関し

play05:03

ては単純にえ言語モデルの性能の問題に

play05:07

なってくるのでま誰が実装したとしてもま

play05:10

GPT4オニとか使っとけば大体同じ精度

play05:12

になってきますまなのでここの部分では

play05:15

制度の差ってのは出にくいというわけです

play05:17

ねで難しいのはこの1つ目のえ外部の文章

play05:21

の中から必要な情報を探してくる検索の

play05:24

ステップになっていますで文章の検索でえ

play05:28

何が行われてるのかというのもう少し具体

play05:30

的に見ていくとえこんな感じになってい

play05:32

ますえユーザーがですねえ昨日の

play05:34

打ち合わせ内容何だっけという風にま言語

play05:37

モデルに入れたとしますそうするとこの

play05:39

外部の与えた文章の中からえ関連した文章

play05:42

を探してくるというわけですねで文章の中

play05:45

からえ関連部分だけ探してくる必要がある

play05:48

ので与えられた文章はえこんな感じでえ

play05:51

分割されています今3つに分割されてると

play05:54

いうわけですねこの中からえ機能の

play05:56

打ち合わせ内容という意味と近いものが

play06:00

検索されますこの場合だと1番最初の文章

play06:03

に関しては打ち合わせ内容はペラペラペラ

play06:05

でしたと2番目がえ最近会社がペラペラ

play06:08

ペラですと3番目がえ利益はペラペラって

play06:12

感じですとこういった文章があるのでこの

play06:14

ユーザーの質問とえ近い意味を持つ文章

play06:17

ってのは1番上の文章かなというところで

play06:20

この文章が注視されるというわけですねで

play06:23

この抽出する書類に関してはこちらの動画

play06:26

で詳しく解説してるのでえもっと知りたい

play06:28

という人は見ていただければと思うんです

play06:30

けどもポイントとしてはえユーザーの質問

play06:33

とえ意味が近い文章を抽出してくるという

play06:36

ことになりますこの意味の近いものを探し

play06:39

てくるっていのがこのラグの検索のすごい

play06:42

ところでもあるんですけども精度が出ない

play06:44

原因の1つにもなっていますえ例えばえ

play06:47

こちらのケースでえラグを使った場合に

play06:50

どういう風になるのかというのを考えてみ

play06:52

ます今ユーザーがえニャンタがよくやる

play06:55

ことは何ですかという風にえ質問したとし

play06:58

ますでラグなのでえ外部の文章として

play07:01

ニャンタの集会について書かれた文章を

play07:03

与えてあげます1つ目がえニャンタは毎朝

play07:06

走ってから仕事をしてますと2つ目がえ

play07:09

ニャンタは毎日サバを食べてますとで3つ

play07:12

目がえニャンタは毎週YouTubeを

play07:13

撮ってますとえこういった文章があります

play07:15

でこの時にえ意味が近い文章を探してくる

play07:19

という風に言ったんですけどもこの3つの

play07:21

文章のうちどの文章が中止されると思い

play07:24

ますかはい予想できた人も多いかもしれ

play07:26

ないですけどもまおそらくこれはどの文章

play07:29

ももえ抽出されないということが起きると

play07:31

考えられますで厳密にえ本当に抽出され

play07:34

ないのかというのを確かめてないんです

play07:36

けども理屈上はえユーザーの質問とえ意味

play07:40

が近い文章が探されるという話でしたなの

play07:43

でこの場合はえニャンタがよくやることは

play07:45

という文章と意味が近いものを探そうとし

play07:48

ますただえそもそもこのニャンタという

play07:51

単語をAIが学習してないので意味が

play07:54

分かりませんしこのよくやることという

play07:57

文章と意味が似た文章を探そうとしても

play08:00

これら3つの文章に関しては意味が近いと

play08:02

判定されないというわけですねまなので

play08:05

ユーザーがえこういった固有名所を含んだ

play08:08

学習してない内容とか抽象的な表現を入れ

play08:11

てえ質問した場合とかっていうのはラグで

play08:14

はえ精度が出ないということが考えられ

play08:17

ますちょっと難しかったんですけども皆

play08:19

さんもえ言語モデルに質問する時に質問の

play08:23

内容があまり具体的じゃなくて抽象的に

play08:26

なってしまうというのはよくあるかと思い

play08:28

ますでらく皆さんはえ言語モデルの

play08:31

リテラシーがまかなり高い方かなと思うの

play08:33

でラグを使ってる時に抽象的な質問をして

play08:36

も原理的に答えてくれないなというのは

play08:38

分かると思うんですけどもえ仕組みとかを

play08:40

知らないえ一般のユーザーからすると

play08:43

こんな感じでえ抽象的な質問をえバンバし

play08:46

てくるかと思いますニャンタがよくやる

play08:48

ことはとかニャンタと仲いいのは誰とかえ

play08:51

ニャンタの特徴はとかですねこういったえ

play08:53

ちょっと抽象的な質問ですねでこういう

play08:56

質問に対しては意味が近い文章というのを

play08:59

探せなくなってしまうのでラグを使っても

play09:02

うまく回答が生成されなかったりします

play09:04

はいここで登場するのがえ本日の主役で

play09:07

あるえグラフラグという事実になってい

play09:09

ますお待たせしましたえグラフラグは簡単

play09:13

に言うと文章をえグラフ化して表現すると

play09:16

えそういった技術になっていますで文章を

play09:19

グラフ買ってま何を言ってるんだという風

play09:21

な感じかもしれませんでまずグラフって

play09:23

いうのはこんな感じで丸とま棒で繋がった

play09:27

ようなまこういったグラフのことをさして

play09:29

ますよく人間関係とか表す時にこの丸が

play09:33

1人の人間でえその人とのま関係性を示す

play09:36

とかそういった時にえこういったグラフで

play09:38

表現されてるというのを見たことあるかも

play09:40

しれませんでこの丸とこの棒に関しては

play09:44

ノードとえHという風に言われたりするん

play09:46

ですけどもグラフラグではえ文章をえ

play09:49

こんな感じでノードとHのえグラフで表現

play09:52

しますえ例えば先ほどの文章を考えてみる

play09:56

とまず1番最初の文章でえは毎朝走って

play10:00

から仕事をしますと言った時にこの文章を

play10:03

使ってグラフ化するとこのノードのところ

play10:05

にえニャンタというノードが来てもう1個

play10:08

のノードのところにま例えば毎朝という風

play10:11

なノードが来てそれに対してえそれをつぐ

play10:14

エチとして走るというエッチが構築される

play10:17

とえそんなイメージになっています例えば

play10:19

2つ目の文章だったらえ濃度はまた

play10:22

ニャンタが来てですねもう1個の濃度に

play10:24

関してもサバという濃度ができてえその

play10:27

ニャンタとサバをつぐ食べるとという

play10:29

エッジができると3つ目だったらえ

play10:31

ニャンタというノドに対してえ

play10:34

YouTubeというノドができてそれを

play10:36

え撮影というhでま繋ぐとまそんな

play10:39

イメージになっていますでどういう風に

play10:41

この文章がえノードとHに変換されるのか

play10:44

というところに関しては後ほど説明します

play10:47

で文章をえグラフにすると何が嬉しいのか

play10:50

というところなんですけども例えば

play10:53

ユーザーがニャンタについて質問した時に

play10:56

え先ほどは意味が近いものを探してきたん

play10:59

ですけどもグラフラグではえ最初にどの

play11:02

ノードを参照すればいいのかというのを

play11:04

特定してそのノードのえ周りの情報を持っ

play11:07

てくるということをやっていますなので

play11:10

この場合だったらニャンタというノドの

play11:12

周りには毎朝というノドだったりとかサバ

play11:15

というノードだったりとかえ

play11:17

YouTubeというノードがあったりし

play11:18

ますそれらがどういう風に繋がってるの

play11:21

かっていうのがえこのグラフの情報を参照

play11:23

すればえ理解できるので先ほどのえ

play11:26

ニャンタに関する抽象的な質問に対しても

play11:29

答えられるようになるというわけですで

play11:31

ちょっとイメージつきにくいという風に

play11:33

思いますのでまこの後ですね実際に実装し

play11:36

てみてどんな感じかというのを共有して

play11:38

いきたいと思いますここでは与えられた

play11:41

文章ってのがまグラフ化されて保持される

play11:43

んだなというところを押えてもらえればと

play11:45

思いますはいもう1つえ実際に使ってみる

play11:49

前にえ押えて欲しいポイントとして先ほど

play11:51

のえ文章からえグラフ化するというところ

play11:55

に関してはこちらが設定するんじゃなくて

play11:58

え言語モデルがが自動でグラフを作成して

play12:00

くれます先ほど説明したように文章がえ

play12:04

ノードとHのグラフとして表されるんです

play12:07

けどもこの文章の中からえどれをノードと

play12:10

すればいいのかとかえどれをエッチとすれ

play12:12

ばいいのかとかそういったところに関して

play12:14

はえ言語モデルが自動で文章から読み取っ

play12:17

てえグラフを作成してくれますでこれの

play12:19

すごいところとしては与えた文章のえ意味

play12:22

の繋がりをグラフとして整理してるので

play12:25

検索する時にえ関連する情報を探しやすい

play12:28

というとになっています例えばえニャンタ

play12:31

と仲がいいのは誰ですかという風に聞いた

play12:33

時にニャンタというノードの周りの友達

play12:36

関係を探していけば仲がいい人がすぐ

play12:39

見つかるとえそういったイメージになって

play12:40

いますまこういう風に説明しても実際に

play12:43

使ってみないとなかなかイメージできない

play12:45

と思いますので続いてえ実装の方で説明し

play12:48

ていきたいと思い

play12:50

ますはいそれでは実装の方やっていきます

play12:54

でグラフラグなんですけどもえラング

play12:57

チェーンの方からえ公式のブログでま

play12:59

グラフラグのチュートリアルが載ってたの

play13:01

でこちらを少し変えながらえ解説していき

play13:04

たいと思いますはいで気になる方はですね

play13:06

こちらの方えリンク貼っておきますのでえ

play13:09

参考にしてみてくださいでプログラムを

play13:11

初めてやるという人もいらっしゃると思う

play13:13

のであんまり不りせずに動作の方を説明し

play13:16

ていきたいと思います最初にこちらの

play13:18

ノートブックに関しては概要欄の方から

play13:20

アクセスできるので一緒に進めてみたいと

play13:22

いう人はそちらからアクセスしてみて

play13:24

ください最初にまず必要なパッケージを

play13:27

インストールしますで簡単な操作方法とし

play13:30

てはこのセルごとにえプログラムを実行

play13:32

するものなんですけどもえこのセルを選ん

play13:35

でえシフトエンターでえ実行しますはい

play13:37

そうするとこうやってくるくる回ってです

play13:39

ね今インストールが始まってますはい

play13:42

インストールが終わったのでえ続いてです

play13:44

ねえインストールしたパッケージをこの

play13:46

ノートブックで使うためにえインポートし

play13:49

ていきますはいここら辺もですねえっと

play13:51

単純にえシフトエンター押すだけなので

play13:54

初心者の方でも動かすことは簡単にできる

play13:57

かと思いますはいで続いてえOpenAI

play14:01

のAPIキーとえneo4Jと言われる

play14:04

グラフを扱うデータベースの設定が必要

play14:07

なってきますでneo4Jなんですけども

play14:09

え現在無料でえクラウド上でデータベース

play14:12

を作ることができるので今回はそちらの

play14:15

環境を使ってみたいと思いますスタート

play14:17

フリーでですねえやっていき

play14:21

ますで私の方はえすでにですね

play14:24

インスタンス作成してるのでまこんな感じ

play14:26

で出てくるんですけども初めて使う人はえ

play14:29

アカウント登録とインスタンスの作成と

play14:31

いうのが必要になってきますで

play14:33

インスタンスを作成できたらURIとえ

play14:36

ユーザーネームとパスワードを使っていく

play14:38

のでえそちらを設定していき

play14:40

ますはいでそれらの情報をですね

play14:42

ノートブックの方に入力していきますえ

play14:45

こちらのセルを実行するとまこんな感じで

play14:47

ですね順番にえ入力する画面出てくるので

play14:49

えまずはOpenAのAPIキーからです

play14:52

ね入力の方をしてもらえればと思い

play14:54

ます今ですねえ設定が完了しましたえ

play14:58

ちょっとここ間違ってましたねユーザー

play15:01

ネームはいこれで完了しました続いてえ

play15:04

ラグを行っていくので文章を用意する必要

play15:07

があります今回はえドラゴンボールのえ

play15:10

Wikipediaのですねえこちらの

play15:11

文章をえメモ帳に貼り付けてそれをえ

play15:14

グラフラグで使う文章としてえグラフを

play15:17

構築していきますでテキストファイルはま

play15:20

既に私が準備してるのでこのファイルを

play15:23

開いてデスクトップにあるえファイルを

play15:25

ですねアップロードしますはいえそうする

play15:28

とこんな感じでテキストファイルが

play15:30

アップロードできましたでこちらを続いて

play15:33

ですね読み込んでいきますここら辺はま

play15:36

ラグと同じような感じですねはいで

play15:38

ちょっとドキュメントの方を見ていく

play15:40

とえこんな感じでえ先ほどの文章が格納さ

play15:44

れてるというのが分かるかと思いますはい

play15:48

え続いて言語モデルを設定してえグラフを

play15:52

構築していきますはいこちらも実行し

play15:55

ますでちょっとグラフを作るのにはえ時間

play15:58

がるのでえ飛ばしますえ大体2分ぐらいで

play16:02

えグラフの構築が完了しましたこのグラフ

play16:06

の構築の仕方がえ精度に直圧するのでま

play16:09

結構大事になってきますで今はGPT

play16:11

3.5のターボ使ってるんですけどもえ

play16:14

すごく精度が求められるとかえそういった

play16:16

場合はえここGPT4オニとかですごく

play16:19

品質が高いグラフを用意してあげると検索

play16:21

の精度が上がってくるかと思いますはい

play16:24

続いてえneo4Jのえグラフのえ

play16:27

オブジェクトを作成します

play16:31

はいで続いてえグラフのドキュメントです

play16:34

ねこちらでドキュメント化したえグラフの

play16:36

方をえneo4Jのクラウド環境の方にえ

play16:39

アップロードしています今アップロードが

play16:42

完了しましたはい続いてえグラフを

play16:45

ちょっとですね見てみましょうという

play16:46

ところでえこちらを実行し

play16:52

ますはいで下の方見てくとですねえ今

play16:55

えっと50個の関係性だけをえ出力する

play16:58

ようにしてるんですけども

play16:59

はいこんな感じでですねま悟空を中心とし

play17:02

てまいろんなキャラがですねピッコロ大

play17:04

魔王とかえラディッツとかですね

play17:05

ヤジロベーとかがいてまあのどういった

play17:08

関係性なのかってところまで含めてグラフ

play17:10

ができてるというのが分かりますえ例えば

play17:13

ですね悟空とえドラゴンボールの関係性

play17:15

ってのはま所有してるという関係性だっ

play17:18

たりとかあとは悟空とセルに関してはま

play17:21

悟空がセルを倒したという風に書かれてる

play17:23

のが分かるかと思いますまこんな感じでえ

play17:26

文章をえグラフ化して表現することができ

play17:28

ます

play17:30

孫悟空という濃度がですねまたくさん現れ

play17:32

てるのでここら辺とかちょっとどうなっ

play17:34

てるんだという風な感じかもしれないです

play17:36

けども文章からこんな感じで簡単にグラフ

play17:38

化することができてますでこのグラフに

play17:40

関しては言語モデルが勝手に人物だったり

play17:43

とかまドラゴンボールとか物とかをですね

play17:45

え抽出してえその関係性を構築してくれて

play17:48

います今特に改善はしないんですけども

play17:51

グラフラグを作る時のポイントになってき

play17:53

そうだなってものがこの悟空とですね孫

play17:56

悟空がま違う濃度に入ってしまってるとで

play17:59

これはえ文章の中でえ孫悟空っていうもの

play18:02

とま悟空っていう風にですね書かれてる

play18:04

文章があってまそれが別々のものとして

play18:07

判定されてしまってるというのが原因かと

play18:09

思いますまなので最初に全て同一人物はま

play18:13

悟空っていう風にま変換してあげるとか

play18:16

そういった前処理してあげるとさらに良い

play18:18

グラフができそうだなっていう風な感じが

play18:20

しますねはいこんな感じで簡単にグラフが

play18:23

できるので皆さんも何か自分たちで使っ

play18:25

てる文章を入れてみると面白いかもしれ

play18:27

ません

play18:29

はいではこのグラフを使ってですねえラグ

play18:31

の方をやっていきたいと思います今回はえ

play18:34

ベクトル検索とえグラフのえハイブリッド

play18:37

型でやっていきたいと思いますでどういう

play18:39

ことかって言うとですねこちらの図が

play18:41

分かりやすいんですけども今ユーザーから

play18:43

質問が来た時にまその質問のえ意味が近い

play18:46

ものを探してくるというのがこれまでの

play18:49

ラグでやってることでしたでそれと合わせ

play18:52

て今回はグラフの方からえ関係性を持って

play18:55

きてそれを使ってラグをやるというのが

play18:57

このハイブリ型になっていますなので基本

play19:01

的にはこれまでのラグよりもえ情報量が

play19:04

増える方向に行くので精度は上がるんじゃ

play19:06

ないかというところが期待できますはい

play19:09

こちらもですねえ実行し

play19:11

ますはい続いてインデックスエンティティ

play19:15

というものをえneo4Jのグラフ

play19:17

データベースの方でえ作成していきますま

play19:20

ここら辺はですねえっととにかく実行して

play19:22

いただければと思いますこのエンティティ

play19:25

というのがえノードのことを指してますま

play19:28

ノードってのはこの1個1個のですね

play19:30

ボールのことを指してますはいでえっと

play19:33

これも定義してえこちらのプロンプトの方

play19:35

も定義しますでこれ何やってるかって言う

play19:38

とですねまユーザーが何か質問した時に

play19:40

質問の中からノードっぽいものを探して

play19:43

くるんですねま例えばえ悟空とニャンタを

play19:46

戦ったっていう風な文章をえ入力して

play19:48

あげる

play19:49

とこんな感じですね悟空とえニャンタと

play19:52

いうえノードがですね抽出されますでこの

play19:55

ノードを使ってえグラフデーターベースの

play19:57

中からそのノドと関係してるものを抽出し

play20:01

てくるとえそういったことをやってますで

play20:04

ちょっと難しいんですけどもここら辺も

play20:06

ノードの周りの情報をえどのように持って

play20:09

くるのかというところを提示しています

play20:13

はい例えばここでえ

play20:18

孫悟飯してみるとえこんな感じでご飯も出

play20:22

てきてるんですけども悟空という

play20:24

エンティティが抽出されてそこのえノード

play20:27

と繋がってるノードの情報をま持ってき

play20:30

てるとえいうわけですね今孫悟飯とかがえ

play20:34

取ってきてるのはえこれ前種類の中でです

play20:36

ね2文字以上違ってる場合もま持ってくる

play20:39

というところでこんな感じでヒットしてい

play20:41

ますここら辺の情報をえプロンプトの中に

play20:44

入れ込むので関係性を考慮した質問に対し

play20:47

ても回答を生成してくれたりしますはいま

play20:51

とりあえず進めますであとリトリーバー

play20:53

ですねえこちらはハイブリッドで検索する

play20:56

ので意味的な情報の分脈とグラフから持っ

play20:59

てきた情報をプロンプトで定義しています

play21:03

はいはいそれでですね実際にえ質問してみ

play21:06

ましょうということでえ悟空と仲がいいの

play21:10

は誰ですかという風な質問をしてみます

play21:13

はいでちなみにですねえグラフラグを使わ

play21:16

ずにま通常のラグでえ同じような設定のも

play21:19

質問してみるとどうなるのかというのも見

play21:22

ておきますえ悟空と仲がいいのは誰ですか

play21:24

という風に質問する

play21:26

と悟空の用であり共に試を積んだのは

play21:29

クリリンですという風な回答が書いてき

play21:32

ますねでこれはえ最初に説明したようにま

play21:35

この質問文とえ意味が近い文章を探してき

play21:38

てま回答を生成してるだけなのでおそらく

play21:41

ですね悟空と共に修行を積んだクリリン

play21:44

ですとえそういった文章を引っ張ってきて

play21:46

回答を生成してる感じがしますねこれが

play21:49

ですねグラフラグだとえどうなるのかと

play21:52

いうところでえこちらをですね実行してみ

play21:57

ますはいそうするとこういった形でえ悟空

play22:00

と中がいいのはえクリリンご飯ブルマ

play22:03

ヤジロベーカリンえピッコロ仲間という風

play22:06

に書いてますね仲間と及びえこれです何で

play22:10

したっけ読み方忘れちゃったんですけども

play22:13

まカリン様ですねがえっと仲がいいよて

play22:16

いう風に書いてますこれ仲間っていうのは

play22:19

えミスっちゃってるんですけどもえ悟空と

play22:21

え関係がある人の情報をですねグラフの方

play22:24

から持ってきてえそれを元にですね回答を

play22:27

生成してるのででちゃんといろんな人が出

play22:29

てくるというわけですねもう少し聞いてみ

play22:32

ますかはい続いてですね悟空と仲が悪いの

play22:36

は誰という風に聞いてみますそうするとま

play22:39

悟空と仲が悪いキャラクターは特にいませ

play22:41

んと彼は多くの仲間や友人と協力し共に

play22:44

戦うことがありますという風に回答が生成

play22:47

されます仲が悪いとえそういった意味で

play22:50

文章がないので探してくるのが難しいと

play22:53

いうところなのかなという風に思います

play22:56

はいこちらをですねえグラフラグの方でえ

play22:58

やってみる

play23:00

とはいこんな感じでま悟空と仲が悪いのは

play23:04

えピラフ1味ですというところがえ回答と

play23:07

して帰ってきました確かにピラフ1味です

play23:09

ね仲が良くないと思うのでグラフラグの方

play23:12

が正しく回答ができてるかなという風に

play23:14

思いますはいちょっとグラフラグがですね

play23:17

得意な質問をしてるのでまこういった結果

play23:19

になってるんですけどもおそらく普通のえ

play23:22

ラグをやるよりはこちらの方がえいろんな

play23:24

質問に対して回答する能力を持ってると

play23:27

思いますで今回グラフに関してはえGPT

play23:30

3.5を使っ

play23:32

てこちらのグラフですね構築したのでま

play23:35

関係性が仲間っていうノードができてたり

play23:38

とかこのドラゴンボールの創業者とかです

play23:40

ねま多分こういったノードってのは

play23:42

ちょっとミスっちゃってるのかなという風

play23:44

に思うんですけどもGPT4とかを使い

play23:46

ながらえグラフを作成するとより良い

play23:49

グラフが作成できてえ精度も上がってくる

play23:51

んじゃないかと思いますで結構ラグをやる

play23:54

時にえユーザーからえ文章を受け付けて

play23:58

すぐににラグをやりたいパターンともう

play24:00

車内情報とかでえ参照する文章は固定され

play24:03

てるという場合があるかと思いますでそう

play24:07

いった場合にですねこちらのグラフラグを

play24:09

使って1度グラフを構築しておけばより

play24:12

良いラグが構築できるんじゃないかなと

play24:13

いう風に思いますはい皆さんもですね色々

play24:16

と試してみてえ感想とかあったら是非教え

play24:19

てくださいはいグラフラグに関してはえ

play24:22

以上になります最後にえ宣伝なんですけど

play24:25

もえ最近ですねLINE公式の方始めて

play24:28

本日使ったえこちらのDFのツールのえ

play24:31

まとめとかえチャットGPTとかclod

play24:34

3のえプロンプトのまとめを無料で

play24:37

プレゼントしてるので是非概要欄から友達

play24:39

登録してもらってプレゼントという風に

play24:42

入力してもらえれば自動で資料が送れる

play24:44

ようにしてるので興味がある人は見てみて

play24:46

くださいはいあとはユミの方でもえ講座の

play24:50

方販売してますので生成をもっと勉強し

play24:53

たいとかそういう人はですね概要欄の方に

play24:56

クーポンの方貼っておくのでぜひ見てみて

play24:58

くださ

play24:59

はい以上で本日の動画を終了したいと思い

play25:01

ますえこの動画良かったなって思う人は高

play25:03

評価コメントチャンネル登録の方よろしく

play25:05

お願いしますえそれではまた次回の動画で

play25:07

お会いしましょうバイバイ

play25:11

[音楽]

play25:17

[音楽]

Rate This

5.0 / 5 (0 votes)

関連タグ
言語モデルグラフラグAI技術ビジネス活用検索精度情報検索チャットGPTGPT3.5neo4Jチュートリアル