何が凄いのか?最新の技術GraphRAGについて解説してみた
Summary
TLDRこの動画では、グラフラグという技術を紹介しています。言語モデルをビジネスで活用する際に、外部情報の参照を可能にするラグ技術は既に広く使われていますが、精度向上のためにグラフ化することで、より関連性の高い情報検索が可能になります。具体的な実装方法や、グラフを使用することで得られる利点について解説し、実際の例を通じてその効果を示しています。
Takeaways
- 😀 グラフラグは、外部情報を参照して言語モデルを使う技術で、従来のラグの問題点を解決する手法です。
- 😀 グラフラグを使うことで、言語モデルが学習していない内容についても回答できるようになります。
- 😀 グラフラグは、文章をグラフ化して表現し、情報を検索する際に精度を向上させる技術です。
- 😀 文章をグラフ化することで、ノードとエッジを利用して情報の関係性を整理し、関連する情報を見つけやすくします。
- 😀 グラフラグでは、言語モデルが自動で文章からノードとエッジを抽出し、グラフを作成します。
- 😀 グラフラグを使うと、抽象的な質問にも対応でき、より正確な回答を生成することが可能です。
- 😀 グラフラグの構築には、GPT-3.5やGPT-4などの高性能な言語モデルを利用することで精度を向上させることができます。
- 😀 実装の際には、neo4Jというグラフデータベースを使用して、グラフを管理します。
- 😀 グラフラグは、従来のラグと比較して、情報量が増え、より多くの質問に対して正確な回答を提供できます。
- 😀 グラフラグを利用することで、企業内の情報を効果的に活用し、ビジネスの効率を向上させることが可能です。
Q & A
グラフラグとはどのような技術ですか?
-グラフラグは、言語モデルが外部の情報を参照して使用する技術で、文章をグラフ化して関係性を表現し、より正確な情報検索や回答を可能にします。
言語モデルをビジネスで活用する際、なぜラグ技術が重要なのですか?
-ラグ技術を使うことで、言語モデルは学習していない内容についても答えることができるため、ビジネスにおける独自の決まりや日常の情報を活用することが可能です。
グラフラグを使用する際の主な課題は何ですか?
-グラフラグの主な課題は、精度の向上です。文章をグラフ化する際の正確性や、関係性の解釈が精度に直接影响することがあります。
グラフ化された文章からノードとエッジはどのように抽出されるのでしょうか?
-言語モデルが自動で文章からノード(人物や物)とエッジ(関係性)を読み取り、グラフを作成します。
neo4jとはどのようなデータベースですか?
-neo4jはグラフデータを扱うためのデータベースで、グラフ構造のデータを効率的に管理・検索することが可能です。
グラフラグで使用する言語モデルの選択にはどのようなポイントがありますか?
-言語モデルの選択では、精度と品質が重要で、GPT4などの高性能なモデルを使用することで、より高品質のグラフを作成することができます。
グラフラグを使用する際に、どのような種類の質問に対する回答能力が期待できますか?
-グラフラグは、抽象的な質問や固有名詞を含む質問に対する回答能力が高まり、関係性に基づいた情報提供が期待できます。
グラフラグの実装にあたり、どのようなポイントが重要ですか?
-グラフラグの実装では、文章の前処理やノードの正確な定義、そしてグラフの構築方法が重要で、これらが検索精度に影響します。
グラフラグを使用した検索と従来のラグ検索の違いは何ですか?
-グラフラグは、意味的な情報の分脈とグラフから持ってきた情報を組み合わせたハイブリッド型の検索で、従来のラグ検索よりも情報量が増加し、精度が向上することが期待できます。
グラフラグの精度向上のために、どのようなアプローチがありますか?
-精度向上のためには、適切な言語モデルの選択、文章の前処理、正確なグラフの構築、そしてグラフデータベースの適切な設定が有効なアプローチです。
このビデオスクリプトで紹介されたグラフラグのデモンストレーションでは、どのような結果が得られましたか?
-デモンストレーションでは、グラフラグを使用することで、キャラクター間の関係性に基づく質問に対して正確な回答が生成されることが確認され、特に抽象的な質問に対する回答能力が高まることが示されました。
Outlines
📊 ラグ技術とグラフラグの紹介
本段落では、言語モデルの活用方法として最近注目されている「ラグ」と呼ばれる技術について説明しています。ラグは、外部情報を参照させて言語モデルを使う技術で、例えば会社の独自の決まりや個人の日記内容など、モデルが学習していない内容にも答えることができます。しかし、ラグの精度向上のためには様々な手法が提案され、その一つである「グラフラグ」についても触れています。グラフラグは、文章をグラフ化することで、より正確な情報を提供する技術と言えます。
🔍 ラグの検索精度とグラフラグの利点
第二段落では、ラグの検索精度に関する問題と、グラフラグがどのようにその問題を解決するのかが解説されています。ラグでは、ユーザーの質問に関連する部分を特定の文章から探す必要がありますが、精度が出ない場合もあります。グラフラグでは、文章をグラフ化し、関係性を可視化することで、関連性の高い情報を見つけやすくなります。これにより、抽象的な質問にも答えることが可能になります。
🛠️ グラフラグの実装手順
第三段落では、グラフラグを実装する手順について説明しています。まずは必要なパッケージのインストールから始め、OpenAIのAPIキーやグラフを扱うためのデータベースであるneo4Jの設定が必要です。その後、文章をグラフ化し、neo4Jにアップロードすることで、グラフの構築を行っています。このプロセスは、精度に直接影响するため、重要視されています。
🌐 グラフの構築とその重要性
第四段落では、グラフの構築過程とその重要性が強調されています。グラフの精度は、検索の正確性に直接関係しており、GPT3.5のターボを使用している場合でも、より高精度のグラフが必要な場合はGPT4オニなどの使用が提案されています。また、グラフのノードが適切に定義されることで、より良い検索結果が得られる可能性があります。
🤖 ハイブリッド型のグラフラグの実践
第五段落では、ハイブリッド型のグラフラグの実践方法について説明しています。ユーザーからの質問に対して、意味的に近いものだけでなく、グラフから関係性を持った情報を使用して回答を生成します。これにより、より正確で包括的な回答が可能になります。実際の質問に対する回答例も紹介されており、グラフラグの効果を実感できる場面が示されています。
📚 ラグの応用と宣伝
最後の段落では、ラグ技術の応用方法と、作成者の宣伝活動について触れています。グラフラグを使用することで、より良い情報検索が可能になるだけでなく、特定の質問に対する回答能力も向上します。また、作成者が行う講座やツールの宣伝も行われており、興味のある視聴者は詳細を知ることができます。
Mindmap
Keywords
💡グラフラグ
💡言語モデル
💡リトリーバルオグメジェネレーション
💡ノード
💡エッジ
💡neo4j
💡ハイブリッド検索
💡APIキー
💡精度
💡GPT
Highlights
グラフラグというテーマで話すことを紹介
言語モデルをビジネスに活用する際にラグ技法の有用性
ラグを使用することで言語モデルが未学習の内容にも答えられる
グラフラグの基本的な考え方とその利便性の説明
ラグの精度向上のためのグラフ技法の紹介
グラフ化によって文章の関係性を視覚化する手法の解説
グラフを使用することで抽象的な質問に対する回答が可能になる
言語モデルが自動でグラフを作成するプロセスの説明
neo4Jというグラフデータベースを使用してグラフを管理する
グラフラグを使用した実装例とその効果の共有
グラフの精度が検索結果に直結するというポイント
グラフを使用したハイブリッド型のラグの手法の紹介
ユーザーの質問に応じてグラフから関連情報を抽出するプロセス
グラフを使用することで関係性に基づく正確な回答が可能になる
グラフラグの精度向上のためのGPT4オニなどの高品質言語モデルの使用
グラフラグを使用する際の前処理の重要性
グラフラグのハイブリッド検索の具体例とその効果
グラフを使用することで特定のエンティティに関する関係性の特定が可能になる
グラフラグの応用分野と実用性に関する考察
グラフラグのチュートリアルやツールの提供に関する宣伝
Transcripts
はいこんな感じでですねま悟空を中心とし
てまいろんなキャラがですねどういった
関係性なのかってところまで含めてグラフ
化できてるというのが分かりますはい皆
さんこんにちはニャンタですえ本日は
グラフラグというテーマで話していきたい
と思いますえ皆さん仕事の中で言語モデル
はどのように使ってるでしょうか言語
モデルをビジネスに活用しようと思った時
にま今1番使われてると言っても過言では
ないのがラグと呼ばれる手法になってい
ますで生成AIのフォーラムとかに行って
みるとまどこも確かもですねこのラグを
やってるというところが多いんじゃないか
と思いますでラグは簡単に言うとえ外部の
情報を参照させて言語モデルを使うとえ
そういった技術になっていますえ詳しくは
えこれらの動画で解説してるのでもっと
知りたいという人は是非見てもらえればと
思いますでラグを使うと何が嬉しいの
かってことなんですけども言語モデルが
学習していない内容についてもえ答えて
くるようになります例えばえ自分の会社の
え独自の決まりとか自分が毎日書いてるえ
日記の内容とかですねえそういったことも
このラグを使うことで言語モデルが回答し
てくれるようになりますまなのでま言語
モデルを仕事で使おうとかえそういった
場合にですねのラグは多くの場合有用かな
と思います皆さんの中にもえこのラグに
関連するプロジェクトに取り組んでると
いう人とかこれからラグを勉強してえ仕事
にするぞという風に考えてる人もいるかも
しれませんしかしこのラグはえ思ったより
もえ精度が出ないということが多かったり
しますまなのでこのラグの精度はを上げる
ためのいろんな手法が出てきてるんです
けども今回はその中の1つであるグラフ
ラグというものについて解説していきます
ラグについて分からない人でもえなんで
このグラフラブを使う必要があるのかと
いうのが分かるように解説してるので是非
見ていってもらえればと思いますえそれで
は早速ていき
ましょうはい最初にえグラフラグというま
ちょっと難しそうなものを紹介してくので
なんでそんな手法を使わないといけないの
かというところの話になりますまそもそも
え現状のラグと言われる技術でえどういっ
たところに課題があってえ精度が出ないの
かというところを知っておく必要があり
ますはい最初にですねえじゃあラグの全体
像ってどんな感じだったっけというところ
の復習になりますでちょっと唐突なんです
けどもま仕事をしている時にですねえ昨日
の打ち合わせ内容って何だっけという風に
思ったりすることがあったとしますでこの
時にえチャットGPTにえ昨日の打ち合わ
せって何ですかっていう風に聞いてみて
回答が返ってきたらえ結構便利ですよねで
ただですねま実際チャットGPTとか聞い
てみると分かるんですけどもえ打ち合わせ
内容何ですかっていう風に聞いてもま学習
してないのでま知らないっすという風な
返答が返ってきたりしますでこれは当然え
言語モデルが昨日の打ち合わせ内容につい
て学習してないのでえ知らないという風に
帰ってくるというわけですねでそれに対し
てえラグを使うとえこんな感じで昨日の
打ち合わせ内容をまとめたえPDFという
のを原語モデルに渡してあげますこの
PDFにはえ打ち合わせ内容がまペラペラ
ペラペラでしたという風にま色々書いてる
というわけですねでそうすると言語モデル
がこの与えられた文章を参照すると昨日の
打ち合わせ内容というのを理解できるので
えユーザーの質問に対してどういった
打ち合わせ内容だったかというのを答え
られるというのがラグの全体のイメージに
なっていますでここまではま実際にラグを
使ったことある人っていうのは多いと思う
のでなんとなく流れ知ってるよという人も
多いかもしれませんでラグをもう少し
詳しく見ていくとえ実は2つの処理が中で
行われています1つ目がえ与えられた文章
の中からえ必要な情報を探すという文章を
検索する処理になっています昨日の
打ち合わせ何だっけというユーザーの質問
から文章の中のえどの部分を言語モデルに
与えてあげれば適切に答えられるかという
のを探す作業になっていますでラグは
リトリーバルオグメジェネレーションと
いう略になっていてリトリーバルってのは
検索という意味になっていてでそのの通り
え文書の中から必要な情報を探すとそう
いったえ検索書になっていますでこの時に
え文章を検索せずにこの文章まま全部をえ
言語モデルに入れればいいじゃんという風
に思った人もいるかもしれないですけども
文章が長すぎるとえモデルに入れられ
なかったりとかプログラムで言語モデルを
使う場合はえ入力する文章に対して料金が
発生してくるのでコストが上がったりして
しまいますまなのでえ質問に関連する文章
だけをえピックアップしてくるとそういっ
たステップが必要になってくるわけですね
でもう1つの処理がえこちらのえ言語
モデルがえユーザーの質問に対して回答を
生成するとえそういった処理になってい
ますでここでは先ほど検索されたえ文章と
えユーザーの質問を一緒に言語モデルに
入れることでま回答を生成するとそういっ
たことを行っていますでラグでは大きく
上げてこの検索作業と言語モデルで回答を
生成させるとでそういった2つの処理が
必要になってきますでこの2つ目のえ言語
モデルが回答を生成するという書類に関し
ては単純にえ言語モデルの性能の問題に
なってくるのでま誰が実装したとしてもま
GPT4オニとか使っとけば大体同じ精度
になってきますまなのでここの部分では
制度の差ってのは出にくいというわけです
ねで難しいのはこの1つ目のえ外部の文章
の中から必要な情報を探してくる検索の
ステップになっていますで文章の検索でえ
何が行われてるのかというのもう少し具体
的に見ていくとえこんな感じになってい
ますえユーザーがですねえ昨日の
打ち合わせ内容何だっけという風にま言語
モデルに入れたとしますそうするとこの
外部の与えた文章の中からえ関連した文章
を探してくるというわけですねで文章の中
からえ関連部分だけ探してくる必要がある
ので与えられた文章はえこんな感じでえ
分割されています今3つに分割されてると
いうわけですねこの中からえ機能の
打ち合わせ内容という意味と近いものが
検索されますこの場合だと1番最初の文章
に関しては打ち合わせ内容はペラペラペラ
でしたと2番目がえ最近会社がペラペラ
ペラですと3番目がえ利益はペラペラって
感じですとこういった文章があるのでこの
ユーザーの質問とえ近い意味を持つ文章
ってのは1番上の文章かなというところで
この文章が注視されるというわけですねで
この抽出する書類に関してはこちらの動画
で詳しく解説してるのでえもっと知りたい
という人は見ていただければと思うんです
けどもポイントとしてはえユーザーの質問
とえ意味が近い文章を抽出してくるという
ことになりますこの意味の近いものを探し
てくるっていのがこのラグの検索のすごい
ところでもあるんですけども精度が出ない
原因の1つにもなっていますえ例えばえ
こちらのケースでえラグを使った場合に
どういう風になるのかというのを考えてみ
ます今ユーザーがえニャンタがよくやる
ことは何ですかという風にえ質問したとし
ますでラグなのでえ外部の文章として
ニャンタの集会について書かれた文章を
与えてあげます1つ目がえニャンタは毎朝
走ってから仕事をしてますと2つ目がえ
ニャンタは毎日サバを食べてますとで3つ
目がえニャンタは毎週YouTubeを
撮ってますとえこういった文章があります
でこの時にえ意味が近い文章を探してくる
という風に言ったんですけどもこの3つの
文章のうちどの文章が中止されると思い
ますかはい予想できた人も多いかもしれ
ないですけどもまおそらくこれはどの文章
ももえ抽出されないということが起きると
考えられますで厳密にえ本当に抽出され
ないのかというのを確かめてないんです
けども理屈上はえユーザーの質問とえ意味
が近い文章が探されるという話でしたなの
でこの場合はえニャンタがよくやることは
という文章と意味が近いものを探そうとし
ますただえそもそもこのニャンタという
単語をAIが学習してないので意味が
分かりませんしこのよくやることという
文章と意味が似た文章を探そうとしても
これら3つの文章に関しては意味が近いと
判定されないというわけですねまなので
ユーザーがえこういった固有名所を含んだ
学習してない内容とか抽象的な表現を入れ
てえ質問した場合とかっていうのはラグで
はえ精度が出ないということが考えられ
ますちょっと難しかったんですけども皆
さんもえ言語モデルに質問する時に質問の
内容があまり具体的じゃなくて抽象的に
なってしまうというのはよくあるかと思い
ますでらく皆さんはえ言語モデルの
リテラシーがまかなり高い方かなと思うの
でラグを使ってる時に抽象的な質問をして
も原理的に答えてくれないなというのは
分かると思うんですけどもえ仕組みとかを
知らないえ一般のユーザーからすると
こんな感じでえ抽象的な質問をえバンバし
てくるかと思いますニャンタがよくやる
ことはとかニャンタと仲いいのは誰とかえ
ニャンタの特徴はとかですねこういったえ
ちょっと抽象的な質問ですねでこういう
質問に対しては意味が近い文章というのを
探せなくなってしまうのでラグを使っても
うまく回答が生成されなかったりします
はいここで登場するのがえ本日の主役で
あるえグラフラグという事実になってい
ますお待たせしましたえグラフラグは簡単
に言うと文章をえグラフ化して表現すると
えそういった技術になっていますで文章を
グラフ買ってま何を言ってるんだという風
な感じかもしれませんでまずグラフって
いうのはこんな感じで丸とま棒で繋がった
ようなまこういったグラフのことをさして
ますよく人間関係とか表す時にこの丸が
1人の人間でえその人とのま関係性を示す
とかそういった時にえこういったグラフで
表現されてるというのを見たことあるかも
しれませんでこの丸とこの棒に関しては
ノードとえHという風に言われたりするん
ですけどもグラフラグではえ文章をえ
こんな感じでノードとHのえグラフで表現
しますえ例えば先ほどの文章を考えてみる
とまず1番最初の文章でえは毎朝走って
から仕事をしますと言った時にこの文章を
使ってグラフ化するとこのノードのところ
にえニャンタというノードが来てもう1個
のノードのところにま例えば毎朝という風
なノードが来てそれに対してえそれをつぐ
エチとして走るというエッチが構築される
とえそんなイメージになっています例えば
2つ目の文章だったらえ濃度はまた
ニャンタが来てですねもう1個の濃度に
関してもサバという濃度ができてえその
ニャンタとサバをつぐ食べるとという
エッジができると3つ目だったらえ
ニャンタというノドに対してえ
YouTubeというノドができてそれを
え撮影というhでま繋ぐとまそんな
イメージになっていますでどういう風に
この文章がえノードとHに変換されるのか
というところに関しては後ほど説明します
で文章をえグラフにすると何が嬉しいのか
というところなんですけども例えば
ユーザーがニャンタについて質問した時に
え先ほどは意味が近いものを探してきたん
ですけどもグラフラグではえ最初にどの
ノードを参照すればいいのかというのを
特定してそのノードのえ周りの情報を持っ
てくるということをやっていますなので
この場合だったらニャンタというノドの
周りには毎朝というノドだったりとかサバ
というノードだったりとかえ
YouTubeというノードがあったりし
ますそれらがどういう風に繋がってるの
かっていうのがえこのグラフの情報を参照
すればえ理解できるので先ほどのえ
ニャンタに関する抽象的な質問に対しても
答えられるようになるというわけですで
ちょっとイメージつきにくいという風に
思いますのでまこの後ですね実際に実装し
てみてどんな感じかというのを共有して
いきたいと思いますここでは与えられた
文章ってのがまグラフ化されて保持される
んだなというところを押えてもらえればと
思いますはいもう1つえ実際に使ってみる
前にえ押えて欲しいポイントとして先ほど
のえ文章からえグラフ化するというところ
に関してはこちらが設定するんじゃなくて
え言語モデルがが自動でグラフを作成して
くれます先ほど説明したように文章がえ
ノードとHのグラフとして表されるんです
けどもこの文章の中からえどれをノードと
すればいいのかとかえどれをエッチとすれ
ばいいのかとかそういったところに関して
はえ言語モデルが自動で文章から読み取っ
てえグラフを作成してくれますでこれの
すごいところとしては与えた文章のえ意味
の繋がりをグラフとして整理してるので
検索する時にえ関連する情報を探しやすい
というとになっています例えばえニャンタ
と仲がいいのは誰ですかという風に聞いた
時にニャンタというノードの周りの友達
関係を探していけば仲がいい人がすぐ
見つかるとえそういったイメージになって
いますまこういう風に説明しても実際に
使ってみないとなかなかイメージできない
と思いますので続いてえ実装の方で説明し
ていきたいと思い
ますはいそれでは実装の方やっていきます
でグラフラグなんですけどもえラング
チェーンの方からえ公式のブログでま
グラフラグのチュートリアルが載ってたの
でこちらを少し変えながらえ解説していき
たいと思いますはいで気になる方はですね
こちらの方えリンク貼っておきますのでえ
参考にしてみてくださいでプログラムを
初めてやるという人もいらっしゃると思う
のであんまり不りせずに動作の方を説明し
ていきたいと思います最初にこちらの
ノートブックに関しては概要欄の方から
アクセスできるので一緒に進めてみたいと
いう人はそちらからアクセスしてみて
ください最初にまず必要なパッケージを
インストールしますで簡単な操作方法とし
てはこのセルごとにえプログラムを実行
するものなんですけどもえこのセルを選ん
でえシフトエンターでえ実行しますはい
そうするとこうやってくるくる回ってです
ね今インストールが始まってますはい
インストールが終わったのでえ続いてです
ねえインストールしたパッケージをこの
ノートブックで使うためにえインポートし
ていきますはいここら辺もですねえっと
単純にえシフトエンター押すだけなので
初心者の方でも動かすことは簡単にできる
かと思いますはいで続いてえOpenAI
のAPIキーとえneo4Jと言われる
グラフを扱うデータベースの設定が必要
なってきますでneo4Jなんですけども
え現在無料でえクラウド上でデータベース
を作ることができるので今回はそちらの
環境を使ってみたいと思いますスタート
フリーでですねえやっていき
ますで私の方はえすでにですね
インスタンス作成してるのでまこんな感じ
で出てくるんですけども初めて使う人はえ
アカウント登録とインスタンスの作成と
いうのが必要になってきますで
インスタンスを作成できたらURIとえ
ユーザーネームとパスワードを使っていく
のでえそちらを設定していき
ますはいでそれらの情報をですね
ノートブックの方に入力していきますえ
こちらのセルを実行するとまこんな感じで
ですね順番にえ入力する画面出てくるので
えまずはOpenAのAPIキーからです
ね入力の方をしてもらえればと思い
ます今ですねえ設定が完了しましたえ
ちょっとここ間違ってましたねユーザー
ネームはいこれで完了しました続いてえ
ラグを行っていくので文章を用意する必要
があります今回はえドラゴンボールのえ
Wikipediaのですねえこちらの
文章をえメモ帳に貼り付けてそれをえ
グラフラグで使う文章としてえグラフを
構築していきますでテキストファイルはま
既に私が準備してるのでこのファイルを
開いてデスクトップにあるえファイルを
ですねアップロードしますはいえそうする
とこんな感じでテキストファイルが
アップロードできましたでこちらを続いて
ですね読み込んでいきますここら辺はま
ラグと同じような感じですねはいで
ちょっとドキュメントの方を見ていく
とえこんな感じでえ先ほどの文章が格納さ
れてるというのが分かるかと思いますはい
え続いて言語モデルを設定してえグラフを
構築していきますはいこちらも実行し
ますでちょっとグラフを作るのにはえ時間
がるのでえ飛ばしますえ大体2分ぐらいで
えグラフの構築が完了しましたこのグラフ
の構築の仕方がえ精度に直圧するのでま
結構大事になってきますで今はGPT
3.5のターボ使ってるんですけどもえ
すごく精度が求められるとかえそういった
場合はえここGPT4オニとかですごく
品質が高いグラフを用意してあげると検索
の精度が上がってくるかと思いますはい
続いてえneo4Jのえグラフのえ
オブジェクトを作成します
はいで続いてえグラフのドキュメントです
ねこちらでドキュメント化したえグラフの
方をえneo4Jのクラウド環境の方にえ
アップロードしています今アップロードが
完了しましたはい続いてえグラフを
ちょっとですね見てみましょうという
ところでえこちらを実行し
ますはいで下の方見てくとですねえ今
えっと50個の関係性だけをえ出力する
ようにしてるんですけども
はいこんな感じでですねま悟空を中心とし
てまいろんなキャラがですねピッコロ大
魔王とかえラディッツとかですね
ヤジロベーとかがいてまあのどういった
関係性なのかってところまで含めてグラフ
ができてるというのが分かりますえ例えば
ですね悟空とえドラゴンボールの関係性
ってのはま所有してるという関係性だっ
たりとかあとは悟空とセルに関してはま
悟空がセルを倒したという風に書かれてる
のが分かるかと思いますまこんな感じでえ
文章をえグラフ化して表現することができ
ます
孫悟空という濃度がですねまたくさん現れ
てるのでここら辺とかちょっとどうなっ
てるんだという風な感じかもしれないです
けども文章からこんな感じで簡単にグラフ
化することができてますでこのグラフに
関しては言語モデルが勝手に人物だったり
とかまドラゴンボールとか物とかをですね
え抽出してえその関係性を構築してくれて
います今特に改善はしないんですけども
グラフラグを作る時のポイントになってき
そうだなってものがこの悟空とですね孫
悟空がま違う濃度に入ってしまってるとで
これはえ文章の中でえ孫悟空っていうもの
とま悟空っていう風にですね書かれてる
文章があってまそれが別々のものとして
判定されてしまってるというのが原因かと
思いますまなので最初に全て同一人物はま
悟空っていう風にま変換してあげるとか
そういった前処理してあげるとさらに良い
グラフができそうだなっていう風な感じが
しますねはいこんな感じで簡単にグラフが
できるので皆さんも何か自分たちで使っ
てる文章を入れてみると面白いかもしれ
ません
はいではこのグラフを使ってですねえラグ
の方をやっていきたいと思います今回はえ
ベクトル検索とえグラフのえハイブリッド
型でやっていきたいと思いますでどういう
ことかって言うとですねこちらの図が
分かりやすいんですけども今ユーザーから
質問が来た時にまその質問のえ意味が近い
ものを探してくるというのがこれまでの
ラグでやってることでしたでそれと合わせ
て今回はグラフの方からえ関係性を持って
きてそれを使ってラグをやるというのが
このハイブリ型になっていますなので基本
的にはこれまでのラグよりもえ情報量が
増える方向に行くので精度は上がるんじゃ
ないかというところが期待できますはい
こちらもですねえ実行し
ますはい続いてインデックスエンティティ
というものをえneo4Jのグラフ
データベースの方でえ作成していきますま
ここら辺はですねえっととにかく実行して
いただければと思いますこのエンティティ
というのがえノードのことを指してますま
ノードってのはこの1個1個のですね
ボールのことを指してますはいでえっと
これも定義してえこちらのプロンプトの方
も定義しますでこれ何やってるかって言う
とですねまユーザーが何か質問した時に
質問の中からノードっぽいものを探して
くるんですねま例えばえ悟空とニャンタを
戦ったっていう風な文章をえ入力して
あげる
とこんな感じですね悟空とえニャンタと
いうえノードがですね抽出されますでこの
ノードを使ってえグラフデーターベースの
中からそのノドと関係してるものを抽出し
てくるとえそういったことをやってますで
ちょっと難しいんですけどもここら辺も
ノードの周りの情報をえどのように持って
くるのかというところを提示しています
はい例えばここでえ
孫悟飯してみるとえこんな感じでご飯も出
てきてるんですけども悟空という
エンティティが抽出されてそこのえノード
と繋がってるノードの情報をま持ってき
てるとえいうわけですね今孫悟飯とかがえ
取ってきてるのはえこれ前種類の中でです
ね2文字以上違ってる場合もま持ってくる
というところでこんな感じでヒットしてい
ますここら辺の情報をえプロンプトの中に
入れ込むので関係性を考慮した質問に対し
ても回答を生成してくれたりしますはいま
とりあえず進めますであとリトリーバー
ですねえこちらはハイブリッドで検索する
ので意味的な情報の分脈とグラフから持っ
てきた情報をプロンプトで定義しています
はいはいそれでですね実際にえ質問してみ
ましょうということでえ悟空と仲がいいの
は誰ですかという風な質問をしてみます
はいでちなみにですねえグラフラグを使わ
ずにま通常のラグでえ同じような設定のも
質問してみるとどうなるのかというのも見
ておきますえ悟空と仲がいいのは誰ですか
という風に質問する
と悟空の用であり共に試を積んだのは
クリリンですという風な回答が書いてき
ますねでこれはえ最初に説明したようにま
この質問文とえ意味が近い文章を探してき
てま回答を生成してるだけなのでおそらく
ですね悟空と共に修行を積んだクリリン
ですとえそういった文章を引っ張ってきて
回答を生成してる感じがしますねこれが
ですねグラフラグだとえどうなるのかと
いうところでえこちらをですね実行してみ
ますはいそうするとこういった形でえ悟空
と中がいいのはえクリリンご飯ブルマ
ヤジロベーカリンえピッコロ仲間という風
に書いてますね仲間と及びえこれです何で
したっけ読み方忘れちゃったんですけども
まカリン様ですねがえっと仲がいいよて
いう風に書いてますこれ仲間っていうのは
えミスっちゃってるんですけどもえ悟空と
え関係がある人の情報をですねグラフの方
から持ってきてえそれを元にですね回答を
生成してるのででちゃんといろんな人が出
てくるというわけですねもう少し聞いてみ
ますかはい続いてですね悟空と仲が悪いの
は誰という風に聞いてみますそうするとま
悟空と仲が悪いキャラクターは特にいませ
んと彼は多くの仲間や友人と協力し共に
戦うことがありますという風に回答が生成
されます仲が悪いとえそういった意味で
文章がないので探してくるのが難しいと
いうところなのかなという風に思います
はいこちらをですねえグラフラグの方でえ
やってみる
とはいこんな感じでま悟空と仲が悪いのは
えピラフ1味ですというところがえ回答と
して帰ってきました確かにピラフ1味です
ね仲が良くないと思うのでグラフラグの方
が正しく回答ができてるかなという風に
思いますはいちょっとグラフラグがですね
得意な質問をしてるのでまこういった結果
になってるんですけどもおそらく普通のえ
ラグをやるよりはこちらの方がえいろんな
質問に対して回答する能力を持ってると
思いますで今回グラフに関してはえGPT
3.5を使っ
てこちらのグラフですね構築したのでま
関係性が仲間っていうノードができてたり
とかこのドラゴンボールの創業者とかです
ねま多分こういったノードってのは
ちょっとミスっちゃってるのかなという風
に思うんですけどもGPT4とかを使い
ながらえグラフを作成するとより良い
グラフが作成できてえ精度も上がってくる
んじゃないかと思いますで結構ラグをやる
時にえユーザーからえ文章を受け付けて
すぐににラグをやりたいパターンともう
車内情報とかでえ参照する文章は固定され
てるという場合があるかと思いますでそう
いった場合にですねこちらのグラフラグを
使って1度グラフを構築しておけばより
良いラグが構築できるんじゃないかなと
いう風に思いますはい皆さんもですね色々
と試してみてえ感想とかあったら是非教え
てくださいはいグラフラグに関してはえ
以上になります最後にえ宣伝なんですけど
もえ最近ですねLINE公式の方始めて
本日使ったえこちらのDFのツールのえ
まとめとかえチャットGPTとかclod
3のえプロンプトのまとめを無料で
プレゼントしてるので是非概要欄から友達
登録してもらってプレゼントという風に
入力してもらえれば自動で資料が送れる
ようにしてるので興味がある人は見てみて
くださいはいあとはユミの方でもえ講座の
方販売してますので生成をもっと勉強し
たいとかそういう人はですね概要欄の方に
クーポンの方貼っておくのでぜひ見てみて
くださ
はい以上で本日の動画を終了したいと思い
ますえこの動画良かったなって思う人は高
評価コメントチャンネル登録の方よろしく
お願いしますえそれではまた次回の動画で
お会いしましょうバイバイ
[音楽]
[音楽]
5.0 / 5 (0 votes)