仕事で使えそう?DifyでRAGを行う時の設定について解説してみた
Summary
TLDRこのビデオでは、プログラミングができない人でもアプリ開発が可能な「DF」プラットフォームと、言語モデルを活用するための「ラグ」と呼ばれる手法について解説しています。DFは多機能だが初心者にとっては難しいと思われる部分もあるとのこと。しかし、使いこなせるようになると、言語モデル単体では難しかったことも実現できるようになり、自分のアイデアをアプリに落とし込んで検証できる強力なスキルになると期待されています。また、ラグを使用することで、言語モデルが学習していない情報にも答えられるようになり、企業の独自の情報や一般公開されていない情報を活用した開発が可能になるというメリットもあります。DF上でラグを使ったアプリ開発の方法も紹介され、プログラミング未経験者でもアプリ開発に挑戦できるようになるでしょう。
Takeaways
- 😀 スクリプトは、DF(DreamFace)というプラットフォームとその使い方に関する解説をしています。
- 🤖 DFはプログラミングができない人でも言語モデルを使ってアプリ開発ができる機能を提供しています。
- 📚 言語モデルはインターネット上で一般公開されているデータを学習しており、情報が多ければ多いほど回答の質が上がります。
- 🔍 ラグ(Retrieval)とファインチューニングは、言語モデルが学習していない情報を扱うための2つの主な手法です。
- 📈 ラグは外部情報(例えばPDF)を言語モデルに提供し、モデルはそれを利用して特定の質問に答えます。
- 🎯 ファインチューニングは言語モデル自体を学習させて、提供された情報に基づいて回答を生成する手法です。
- 🏆 Microsoftの論文によると、ラグを使った方がファインチューニングよりも精度が高く出ています。
- 👨💻 プログラマーにとって、言語モデルはコード生成や問題解決において非常に役立つと感じています。
- 🔧 DFを使用してラグを実装すると、アプリ開発が容易になり、設定項目を正しく設定して精度を確保する必要があります。
- 📝 スクリプトでは、DF上でラグを使用する際の設定方法やチャンクの分割、インデックスモード、検索設定について解説しています。
- 📚 ナレッジの説明文は、言語モデルがどのナレッジを使うか判断する際に重要な役割を果たします。
Q & A
DFくラグとはどのような仕組みですか?
-DFくラグは、言語モデルが学習していない情報にも答えられるようにするための手法です。外部情報や独自の情報などを言語モデルに提供し、それらを活用して答えを生成します。
DFアプリとは何ですか?どのように使いますか?
-DFアプリはプログラミングができない人でも言語モデルを使ってアプリを開発できるプラットフォームです。様々な機能があり、言語モデルを使った開発が容易に行えます。
言語モデルとは何で、どのような特徴がありますか?
-言語モデルは自然言語を処理するための機械学習モデルで、テキストデータから学習して言葉や文章を生成・理解します。一般公開されているデータから学習しており、情報の多ければ多いほど回答の質が上がる傾向があります。
プログラマーにとって言語モデルはどのように役立ちますか?
-言語モデルはプログラミングに関連するコードを書くのを助け、プログラミングに関する知識を提供することができます。また、開発時に遭遇した問題に対する解決策を見つけるのにも役立ちます。
ラグを使用する際のチャンクの設定とは何ですか?
-チャンクの設定は文章を分割する単位を決める設定です。チャンクのサイズやオーバーラップの許容範囲を調整することで、精度を上げることができます。
ハイブリッド検索とはどのような検索手法ですか?
-ハイブリッド検索はベクトル検索と全文検索を組み合わせた手法です。意味的に近いものだけでなく、キーワード単位でも検索できるため、より正確な結果を得ることができます。
サイランクモデルとは何で、どのような特徴がありますか?
-サイランクモデルは2つの文章を一緒に入力してスコアを予測するモデルで、意味的に近いものをより正確に検索することができます。しかし、計算コストが高いため、候補絞り込みの最後段階で使用されることが多いです。
ナレッジベースを複数使用する場合、どういった設定が必要ですか?
-ナレッジベースを複数使用する場合、ナレッジ名と説明を設定する必要があります。これにより、言語モデルはどのナレッジを使うか判断することができます。
ファインチューニングとラグの違いは何ですか?
-ファインチューニングは言語モデル自体を学習させ、新しい知識を獲得させる手法です。一方、ラグは言語モデルに外部情報を提供し、それを活用して答えを生成する手法です。
DFアプリで開発されたアプリのテストはどのように行われますか?
-DFアプリで開発されたアプリは、アプリ作成画面でテストすることができます。ユーザーが入力した質問に対して、正しく文章が抽出され、回答が生成されるかを確認します。
Outlines
📱 DFアプリと言語モデルの活用
第1段落では、最近話題のDFアプリとその使い方について解説しています。DFはプログラミングができない人でも言語モデルを使ってアプリ開発が可能なプラットフォームで、様々な機能を備えています。しかし、機能が多すぎて混乱することもあると予想されています。DFを使いこなせるようになると、言語モデル単体では難しかったことも実現でき、アイデアをアプリに素早く落とし込んだり検証できるようになります。DFを使った開発の仕事が増えるかもしれないと述べています。
🔍 レイジーチューニングとファインチューニングの比較
第2段落では、言語モデルに一般公開されていない情報を回答させるためのレイジーチューニングとファインチューニング手法について説明しています。レイジーチューニングは外部情報を追加することでモデルに活用する方法で、会社内で決まっている独自の情報などにも活用されています。ファインチューニングは言語モデル自体が進化し、一度学習すれば外部情報の提供が不要になるという違いがありますが、Microsoftの論文ではレイジーチューニングの方が精度が高いとされています。
🛠️ レイジーチューニングの設定とチャンクの重要性
第3段落では、DFアプリ上でレイジーチューニングを使ったアプリを実現する方法について紹介しています。外部情報をアップロードし、設定項目を正しく行う必要があると強調しています。チャンクの設定方法や最大チャンク長、オーバーラップの許容度など、精度を上げるために重要なポイントが説明されています。また、Microsoftのブログでの実験結果も参考にすると良いとアドバイスしています。
🔎 ハイブリッド検索とサイランクモデルの選択
第4段落では、ハイブリッド検索とサイランクモデルについて詳しく説明しています。ハイブリッド検索はベクトル検索と全文検索を組み合わせたもので、意味的に近いものやキーワード単位で探すことができます。サイランクモデルは2つの文章を一緒に評価し、スコアを予測するもので、計算コストが高いため候補絞り込み後に適用されるとされています。コヒアという会社が出しているモデルが有名であることも紹介されています。
🤖 レイジーチューニングを使ったチャットボットの作成
第5段落では、レイジーチューニングを使ったチャットボットの作成方法について解説しています。ナレッジの設定、パラメーターの選択肢、マルチパスリトリーバルの活用など、チャットボットに複数のナレッジを組み込む方法が説明されています。また、テキストエンベディモデルの選択肢や精度の向上についても触れています。
📚 講座と資料の案内、ビデオの締めくくり
第6段落では、ビデオの締めくくりとして、DFに関する資料がLINE公式でプレゼントされている旨を案内しています。また、ユミさんが販売している講座も紹介されており、チャットボットの作り方に関するベストセラーになっていると豪語しています。最後に評価やコメント、チャンネル登録を呼びかけています。
Mindmap
Keywords
💡DF
💡ラグ
💡ファインチューニング
💡ハイブリッド検索
💡チャンク
💡テキストエンベディング
💡ナレッジベース
💡マルチプルリトリーバル
💡再ランクモデル
💡チャットボット
Highlights
DFはプログラミングができなくても言語モデルを使ったアプリが開発できるプラットフォームです。
言語モデルの単体では難しかったことも、DFを使うことで可能になります。
生成AIを活用する上でDFのスキルは今後非常に強力なものになります。
DFを使った開発の仕事が今後増えていくかもしれません。
今回の動画ではラグと呼ばれる手法について解説し、DFでラグを使ったアプリを開発する方法を紹介します。
言語モデルに学習していない情報でも回答できるようにするための手法がラグです。
チャットGPTのような言語モデルは学習していない情報には正しい回答ができません。
ラグを使うと一般公開されていない情報に関しても言語モデルに答えさせることができます。
ラグでは外部情報を追加で与えることで、言語モデルがその情報を利用して回答を生成します。
ラグの手法以外にもファインチューニングという手法がありますが、ラグの方が精度が高いことが論文で示されています。
ファインチューニングよりもラグを使う方が推奨される場合が多いです。
チャンク方式の設定はラグの精度に大きく影響します。
ベクトル検索と全文検索を組み合わせたハイブリッド検索が推奨されます。
サイランクモデルを使用することで検索の精度が向上します。
DFでは簡単にラグを使ったアプリを開発することができます。
Transcripts
このチャンクの方法って結構大事なのでえ
今回カスタムの方で設定しますファイン
チューニングについて教えてくださいと
いう風に聞いてみ
ますはい皆さんこんにちはにゃんたですえ
本日はDFくラグというテーマで話して
いきたいと思いますえ最近dfyという
アプリが話題になってるんですけどもえ皆
さん触ってみましたかDFはえ
プログラミングができなくても言語モデル
を使ったえアプリが開発できる
プラットフォームになっていますただDF
は色々な機能があるのでま普段から言語
モデル触ってないという人にとっては
ちょっとよくわからないなっていう部分も
多いんじゃないかと思いますでDFが使い
こなせるようになるとえこれまで言語
モデル単体では少し難しかったこともえ
できるようになったりとか自分のアイデア
をえすぐにアプリに落とし込んで検証する
ことができるので生成AIを活用する上で
は今後かなり強力なスキルになってくるん
じゃないかと思いますXではDFの件を
受注しましたって人もちらほら探検された
ので今後もしかしたらこのDFを使った
開発の仕事ってのも増えていくのかもしれ
ませんでそこで今回はえ仕事の中でよく
使われているえラグと呼ばれる手法につい
て簡単に解説してdfyでこのラグを使っ
たアプリを開発する方法についても紹介し
ていきますこれまでプログラミングをやっ
ていなかったからえ開発できなかったなっ
て人もたくさんいると思うので是非この
よく使われてるえラグのの手法について
マスターして仕事とかでも使ってもらえれ
ばいいのかなという風に思います初心者に
も分かるように解説してるので生成活用し
たいなという人は是非見ていってもらえば
と思いますそれでは早速やっていき
[音楽]
ましょうはい最初にえラグって何っていう
とこになりますでここら辺はえ技術的に
細かい話というよりはえなぜラグが必要な
のかというところだったりとかえdfiで
アプリを作る上で知っておくべきことに
ついて
簡単にまとめておきますでラグは簡単に
言うとえ言語モデルが学習していない情報
でも回答できるようにするための手法に
なっていますでチットGPTとか使ってる
人分かると思うんですけどもえ言語モデル
に学習していない情報を聞いても正しい
回答はしてくれないかと思います例えばえ
チャットGPTにえにゃんタって誰って
いう風に聞いたとしてもえこんな感じでえ
ニャンタというYouTuberについて
の情報が具体的にないためえ一般的な内容
で回答しますというところでニャンタ
なんて知らないぞという風な返答が返って
きてしまいますでこれはチャットGPTの
学習データにえニャンタの情報が含まれて
ないのでま回答ができないというわけです
ねなので言語モデルの学習データに含まれ
ていない内容に関しては基本的には言語
モデル単体ではうまく回答することができ
ませんえじゃあ言語モデルが学習してる
データって何かって言うとえWeb上で
一般公開されてるデータを学習しています
まなのでインターネットに一般公開されて
いてえ情報が多ければ多いほど言語モデル
の回答の質が上がっていきますま一応
ニャンタも頑張って発信してるんですけど
もまだまだWeb上に情報が少なくてま
十分学習できてないので先ほどは知らない
という風に言われてしまったわけですねで
言語モデルの登場で生産性が爆あがりし
てる職種の1つがえプログラマーかと思い
ますで個人的にも言語モデルが出てきてま
仕事の仕方が結構変わったなという風な
感じがしています
でこれは大きく分けて2つ要因があるかな
と思っててま1つが言語モデルが
プログラミングにめちゃくちゃ強いという
ことですねでつまりチャットgpdとかっ
てまかなり質が高いプログラミングの
コードを書いてくれますしプログラミング
に関連した知識を誰よりも幅広く持ってる
ので分かんないことがあったらえチャット
GPTに聞くと色々と教えてくれますで
これはえプログラミングのコードがネット
上にたくさん公開されていて言語モデルも
それらを学習してるので他の分野よりもえ
生成する回答の質が高くなってるんじゃ
ないかなという風に思いますそしてえ
プログラマーと言語モデルの相性がいい2
つ目の理由としては元々えプログラマーは
ググる回数が多い職種であったという
ところかなと思いますでプログラミングで
何か開発する時ってま多くの場合ですね
一般に公開されてる技術を組み合わせて
何かを作っていくということが多いかと
思いますチットGPTが出てくる前を
思い出してみると何かエラーが出たらすぐ
にググって公式ドキュメント見たりとか
同じようなエラーが出てる人がいないか
なってところでググりながら探したりする
ことが多かったですなので仕事の進め方と
しても一般に公開されてる情報を使って
仕事をすることが多いので一般に公開され
てる情報を学習してるえ言語モデルと相性
がいいのかなっていう風に感じています他
の職長を考えてみるとえ仕事をする上で
めちゃくちゃググって何かやるというより
も結構車内の情報に依存して仕事しなきゃ
いけないとそういったケースが多いのかな
という風に思うんですけども皆さんはどう
いう風に思いますかはいじゃあなんでラグ
が使われてるのかという話を持ってきたん
ですけどもえラグを使うと一般公開されて
ない情報に関しても言語モデルに答え
させるということができるようになります
なので会社の中の独自の決まりとか一般
公開されてない情報を元にえ言語モデルを
活用したいなという風になってくるとラグ
という仕組みが使われてるというわけです
ねで簡単なイメージとしてははまこんな
感じでニャンタって誰っていう風に質問し
た時に先ほどは答えてくれなかったんです
けどもラグではえこんな感じでえニャンタ
に関して書かれた情報をえ追加で与えて
あげます例えばえニャンタはえ白猫
YouTuberでAIが好きですという
風に書かれたPDFを追加で与えるという
イメージですねでそうするとえ言語モデル
がそのPDFの情報を利用してえ回答を
生成できるのでえこんな感じでニャンタっ
て誰に対してえAI好きな白猫
YouTuberですという風に返答が
できるとそういったイメージになってい
ますでこういう風にえ外部の情報を追加で
与えて言語モデルに使ってもらうという
方法がラグと呼ばれる手法になっていて
結構仕事で使ってるなって人も多いんじゃ
ないかと思いますでこのラグと呼ばれる
手法以外としてはえファインチューニング
と呼ばれる手法がありますでファイン
チューニングはまちょっと難しいんです
けどもでこの言語モデル自体がこのPDF
の情報を学習してま進化するとえそういっ
たイメージになりますでこのラグに関して
はこの言語モデルが進化してるんじゃなく
て簡単に言うとユーザーの質問に対して
PDFの情報を見て回答してるというだけ
なので言語モデル自体はえ特に知識が増え
てるわけじゃなくてえただPDFの情報を
使ってるとえそういったイメージになり
ますでファインチューニングだとえ言語
モデル自体の知識が増えていくので一度
学習してあげればこのPDFを与えなくて
も回答を生成するということは原理的には
可能になっていますじゃあそのファイン
チューニングってのもやってみようかしら
という風に思ってる人もえ多いと思います
し実際開発してるところも多いんじゃない
かなという風に思うんですけども
Microsoftから出ている論文では
えファインチューニングを使うよりもえ
ラグを使った方が圧倒的に精度が高いと
いう結果が出ていますこちらの論文に関し
ては話してると長くなってしまうので今後
ファインチューニングについても解説でき
たらなという風に思うんですけども結論と
してはファインチューニングをやるよりも
えラグだけ使った方ががえ精度が高くなる
よという話になっていますなのでえ言語
モデルに学習してない内容について回答し
て欲しいなって時はえファイン
チューニングじゃなくてラグを使う方が
推奨されるかなと思いますでちなみにえ
ラグの中でまどういう風に外部情報が使わ
れてるのかというのは押えておくといいと
思うのでえ簡単に説明しておきます例えば
先ほどと同じようにえにゃんタって誰って
いう風な質問が来たとするとこの質問に
答えるために必要な情報というのをを外部
データとして与えるPDFのテキスト
データから探してきますこの右側の文章は
えPDFに書かれた文章だと思って欲しい
んですけどもこのPDFの文章を段落とか
で分割してあげます例えばこれだったら今
3つの文章に分割されていますでこの文章
の中から質問に答えるために必要な文章を
え探してくるんですけども今回だったら
この1番上の情報が抽出されるとえそう
いったイメージになりますなのでこの情報
とえニャンタって誰っていう質問文が一緒
に言語モデルに入れられることによって
回答ができるというイメージになりますで
どういう風にこの3つの中から文章が選ば
れるのかということに関してはこちらの
動画で詳しく解説してるので興味があれば
見てみてくださいでポイントとしてはえ
追加で与えた情報っていうのは分割されて
利用されるということとその中から質問に
関連する情報が抜き出れて利用されると
いうところになりますでラグの話が少し
長くなったんですけどもえDFのアプリ上
でも簡単にラグを使ったアプリを実現する
ことができます先ほどのラグを使った
システムを作ろうとするとま結構大変なん
ですけどもえDFを使うとファイルを
アップロードするだけですぐにできて
しまいますただえ色々と設定する項目が
あってここら辺が正しく設定できてないと
精度の検証もうまく行えないと思うので
続いてえ実際に画面見せながらえ各設定が
どういうものなのかというのを解説して
いき
ますはいそれではえラグのアプリを作って
いきたいと思いますでDFの基本的な操作
に関してはえDF入門の動画で解説してる
ので知りたい人は是非そちらを見てみて
ください今回はラグのシステムを作る時の
設定項目を細かく見ていきますえまず最初
にえ参照する外部情報を設定する必要が
ありますえそれがですねこの右上のえ
ナレッジのところからえこういった画面に
遷移できますちょっと大きくしてでここの
ですねえっと知識作成というところを押し
てもらえる
とこういった画面に遷移するかと思います
でここからえ外部情報をアップロードして
いきます最初は普通にアップロードする
だけなのでえこちらの参照から好きな
ファイルをアップロードしてもらえればと
思い
ますはい私は先ほどの論文のえFind
チニングorリトリーバルというPDFを
アップロードしましたでこの状態でえ次を
押し
ますはいそうするとですねこういった画面
に遷移するかと思いますはいでまず見方と
してはこのプレビューのところですねえ今
え5個のえプレビューが表示されてるん
ですけどもこれは先ほどスライドで紹介し
たようにえ文章が分割されるという話が
あったと思いますでその分割された1つ1
つがですねこういう風にプレビューとして
え今確認できていますでこの左側を設定し
ていくとこの右側が変わったりするので
そちらを見ながらが設定してくという感じ
になってますで最初にえチャンクの設定と
いうのがありますでチャンクっていうのは
え文章を分割することを言いますでその
設定方法としてま今自動が選ばれてるん
ですけどもこれDFの方で設定されたえ
チャンク方式に乗っ取ってえ分割されてる
ということですねでそうすると1つ1つの
チャンクがえこういった文字数になってる
というのが分かりますでラグの精度を
上げるにはこのチャンクの方法って結構
大事なのでえ今回カスタムの方で設定し
ます
でこちら選んでもらうとセグメント識別士
と最大チャンク調とえチャンクの
オーバーラップとか出てきますで
セグメント識別肢っていうのはえ文章の中
でどういった文字が出るとえチャンクとし
て区切るのかとえそういうのを設定するに
なっています今特になくていいのでコメ
マークで設定しておきます続いて最大
チャンク長になっていますでこれはえ文章
を分割した時にその分割された文章のえ
文字数になっています厳密にはトークン数
だと思うんですけども文字数のようなもの
だと思ってもらえればと思いますこれ今
500となってるので500文字ずつ分割
されるということになりますはいでこちら
のオーバーラップっていうのがえ文章を
分割した時のえ境目のオーバーラップを
どれぐらい許容するかとえそういった話に
なっています例えばえ1000文字の文章
があったとするとえ今最大チャンク長が
500なので500文字500文字で2つ
の文章に分割されますその時に500文字
と501文字にわってま文章がある場合
ってそこが分割されてしまうので文章の
意味が分かりにくくなってしまいますまな
ので少しオーバーラップを許容して文章を
分割すると精度が上がるというところでえ
このオーバーラップを許容していますはい
なのでこの設定が必要なんですけども
じゃあこの分割する時のえ文章の長さとえ
オーバーラップっていうのはえどれぐらい
許容すれば精度がいいのかなってのはえ
結構大事なポイントかなと思います
でそれに関してはえこちらの
Microsoftのブログの方で
いろんな実験がやられていて精度が良く
なるえ実験結果がまとめられていますえ
こちらのブログの下の方にですねえここ
ですねキンク長の違いによってどれぐらい
精度が変わるのかというのが見られてい
ますここでは512とえ1024え496
と8191が比較されてるんですけども
ちょっとアップしますか
これを見ると512のインプットトークの
時がま1番精度が高くなってるということ
ですねまつまり分割するチャンク長は大体
500ぐらいにするとより良いということ
が分かるかと思いますはいで下の方見てく
とオーバーラップはどれぐらいさせると
いいのかというところも書かれていて大体
25%のオーバーラップをさせるとま精度
が良かったという風に書かれてますねで
この実験結果はま1つの結果なので全ての
ケースにおいてこれが当てはまるかって
いうのは断定はできないんですけども
Microsoftが出してる実験結果な
ので実験もしっかりやられていてここを
スタートとしてパラメーター設定しても
いいんじゃないかなという風にえ個人的に
は思いますはいなのでえ戻ってですね
こちらの方チャンク帳設定しましょうえ
512でえ大体125ぐらいですかね設定
しときましょうあとはテキストの毎処理の
ルールとしてまスペースとか開業とかです
ねえ痴漢するとかえ色々あるんですけども
ここら辺はデフォルトの設定のままでえ
進めますえ確認&プレビューをしますはい
そうするとえ分割ですねこんな感じになっ
てますでこれ今文字数として出てるので
トク数とは少し意味が違うんですけども
この設定でえ文章の分割ができています
はいで下の方に次行きます続いてえ
インデックスモードというのがありますえ
これ高品質と経済的というのがあって2つ
どっちにすればいいんだろうという風に
悩ましいのかなという風に思いますでこれ
は違いとしてはこちらの高品質の方は
ベクトル検索と言って分割された文章から
え文章を検索する時に文章をベクトル化し
て検索するという少し高度なことをやって
います詳しい話は先ほどの紹介したこちら
の動画を見ていただければと思うんです
けども文章の意味的に近いものを抽出
できるのでより精度が上がる傾向があり
ますなので少しコストはかかってしまうん
ですけども制度を求めるんだったらこちら
の高品質の方を選んだがいいと思い
ます続いて設定としてえ質問と回答形式で
セグメントかというのがありますでこちら
は少し難しいんですけどもえ分割した文章
ごとにQ&A形式で質問と答えを用意して
あげて質問同士で検索を行うという方法に
なっていますちょっと意味わからんという
人多いと思うので公式のページの図を参照
するとこの左側の方がえ普通にやった場合
ですねユーザのクエスチョンが入ってき
たらこのデータベースの中で分割された
文章が選び出されるとこれが一般的なラグ
の流れになっていますそれに対して先ほど
の設定をオンにすると各パラグラフごとに
QAの形でえ文章が作られますこの作られ
た文章とユーザーのインプットが似ている
ものを探し出してその時のアンサーを
抜き出すというのでかなり複雑なことを
やってい
ますで公式の方を見てみるるとThis
IsMorePRとこれがより正確になり
ますよという風に書かれていますただえ
現状はえこちら使用言語がえ英語と中国語
しか対応してないようなので英語で使う
場合はいいんですけどもえ日本語の場合は
少し微妙なのかなという風に思いますあと
はこのクエスチョンとアンサーを各分割さ
れた文章に対して生成するんですけども
その時にえ言語モデルを使ってえこういっ
た文章を生成してくのでコスト的にかなり
かかってしまうというところがえ注意点か
なと思います例えば文章めちゃくちゃ長く
て各文章に対してQAをたくさん生成して
たらものすごい数のトークンを使って
しまうので少し高くなってきますはいなの
で今回はこちらを使用せずに行きたいと
思いますで興味がある人はこちら今英語と
中合語しかないみたいなんですけども使っ
てみるといいと思いますはい続いてえ検索
設定ですねえベクトル検索とえ全文検索
ハイブリッド検索とえ3つが選択できます
で論から言うとこのハイブリッド検索がお
すすめになりますでハイブリッド検索って
のはこのベクトル検索とえ全文検索を
合わせた検索になっていますはいこちらを
選択しますこれ何やってるかってのを理解
するにはこのベクトル検索とえ全文検索が
どういうものかというのを簡単に説明して
おきますでそもそも検索って何っていう人
もえいると思うんですけどもこれはこんな
感じで文章が分割されてるんですけども
何かユーザーから質問が来た時にえその
質問を元にこの分割された文章の中から
どの文章かを選び出す必要がありますその
時にどれを選び出せばいいのかなって
ところでえ検索が必要になってきますで
ベクトル検索っていうのはえユーザーの
質問とえ意味が近いものを探してくると
そういった検索方法になっていますまなの
でユザーの質問に対してえ意味が近いえ
分割された文章がないのかなってところで
ま探してくるというのがえベクトル検索に
なっていますおベクトル検索すごくいいな
という風に思ったりするんですけども
ベクトル検索の方は意味的に近いものを
探すというのは得意なんですけども単語
単位で拾ってきて欲しいという場合にえ
弱かったりします例えばえニャンタは誰で
すかていう風に質問した時にニャンタの
意味っていうのはAIのモデルからすると
学習できてないので分かりにくかったりし
ますでそうするとこのベクトル検索では
ニャンタって誰っていう入力に対してこの
分割された文章から検索するのが難しく
なってきますでその時にこの全文検索と
いうのでえキーワードで検索するという
方法が必要になってきますこれはユーザー
の質問に含まれてるキーワードと同じキー
ワードが含まれているえ文章を探してくる
とそういったアルゴリズムになっています
全文検索よりもこのベクトル検索の方が
意味的に近いものを探してくるという
ところで技術的にはえ少し高度なことやっ
てるんですけども意味が明確じゃない固有
名詞とかを含んでる場場合はこの全文検索
の方がえ精度が良くなってきますで
ベクトル検索と全文検索を組み合わせたの
がえハイブリッド検索になっていて
ベクトル検索とえ全文検索でえ候補を持っ
てきた後に再ランクモデルというものを
使ってえランク付けを行いますでこの再
ランクモデルってのがまた出てきたので
難しいなという風な感じかもしれないです
けどもまずはこのベクトル検索と全文検索
があってそれを組み合わせたのが
ハイブリッド検索ですよというところを
押えてもらえばと思いますはいじゃあサイ
ランクモデルって何なのかというところに
なってくるんですけどもまこちらについて
はえ少し技術的に難しいのでふーんと持っ
て聞いてもらえればと思うんですけども
サイランクモデルはベクトル検索と似た
ようなものになっていますこちらの図が
ベクトル検索とサイランクモデルの処理
方法の違いを表してるんですけどもこちら
のバイエンコーダーってのがえベクトル
検索を行う時のネットワークになっていて
クロスエンコーダーってのがサイランク
モデルを使う時の処理の方法になってい
ますでこれを見てもさっぱり分からないと
思うんですけどもえ端的に言うとサイ
ランクモデルの方は2つの文章を一緒に
入れてスコアを予測するものでベクトル
検索の方は独立に入れてえベクトルを計算
するとえそういったものになっています
一般的にえこちらのクロスエンコーダーの
方の処理構造の方が一緒に文章を入れるの
でより性能が高いということが分かってい
ますはいじゃあ最初からこのサイランク
モデル使えばいいじゃんという風に思うん
ですけどもこのサイランクモデルは計算
するコストが高いというところが上げ
られるのでベクトル検索とか全文検索で
ある程度候補を絞った後にえ最後にサイ
ランクモデルが適用されるというのが現在
の主流になっていますはいここら辺は
あまり詳しく知らなくてもえ問題ないのか
なと思うんですけどもリランモデルを使っ
た方がいいんだなというところを抑えて
おくといいと思いますでリランモデルは
このコヒアという会社が出してるモデルが
有名なのでえこちらの方を選択しますこの
コヒアのの会社に関してはこちらの
コマンドR+の動画で解説してるので興味
がある人は見てみてくださいでこちらの
モデルがえアクティブじゃないという場合
は右上の設定のところからえモデル
プロバイダーのとこ行ってですねこちらの
方でAPIキーの方を設定してもらえばと
思います今だったらですねこのコヒアの
APIは商用利用は禁止されてるんです
けどもえ無料で使うことができますはい
これでですね一通り設定が完了しましたで
ここまで説明を聞いてもらえるとま各設定
項目ですねどういう意味なのかというのが
なんとなくイメージできたかなという風に
思いますはいこれで保存して処理をします
はい埋め込みが完了しましたで
ドキュメントに移動しましょうはいそう
するとですね今ドキュメントができてるの
でこれをですねテストすることもできます
えこちらでファインチューニングなんです
かという風に質問してえテスト中と押す
と分割された文章がえ今3つ抽出できまし
たこれ今検索をしてえ文章が抽出できると
いうことになりますここら辺でえユーザー
が入力した時にえ正しく文章が抽出できる
のかなってのを確認するといいと思い
ますあともう1つはこの設定のところから
えナレッジ名とナレッジの説明というのが
ありますでこれに関してはえチャット
ボットの中で複数のナレッジを設定する
ことができるんですけどもえその時にどの
ナレッジを使うのかというところを言語
モデルの方で判断させる時にこの説明文章
を見て判断する時に使われますなのでえ
いろんな文章をアップロードして複数の
データソースに対してえ検索を行いたいと
いう時はこちらはちゃんと設定する必要が
ありますでこちらの説明文書のえおすめの
書き方というのもえ公式の方にですね載っ
てますのでここら辺ですねえどういう風に
設定すればより良い説明文になるのかなっ
てのが気になる人はえこちらを見て
もらえればと思いますはいであとですね
埋め込みモデルのところですねこちら今
テキストエンベディAD002という
オープAIのベクトルカのモデルを使っ
てるんですけどもこれ実はですねえあまり
精度がよくありませんまなのでえテキスト
エンベッド3のラージの方ですねこちらを
使った方が精度が良くなるので設定を変え
ておくといいと思いますはいこれでですね
保存をしときますはいこれで慣レチが今
作成できたのでチャットボットの方に
組み込んでいきますえ一旦ですねスタジオ
の方に戻ってもらって
アプリを作成していきます私既にラグって
の作ってるのでこちらからですね見ていき
ますここら辺は基本的な操作なのでこう
追加をしてもらって先ほど作成したえ
こちらのナレッジですねこれ選択して追加
をしますはいそうするとえこの文章を参照
してえチャットボットが回答を生成して
くるようになりますで1つ理解する必要が
あるのがこのパラメーターというものに
なっていてこれ2つ選ぶことができ
ますでこのに関しては公式ページの方に
ですね詳しく書かれていてNto1リトリ
バルっていうのはユーザーの質問があった
時に最もマッチしているえ1つの
ノーレッジベースを探してくるというもの
になっていますなので例えば複数の
ファイルをですねアップロードしたとして
もどちらかのファイルが選ばれるという
ことになりますでこちらのマルチプル
リトリーバルに関してはもう予想はでき
てると思うんですけども複数の能列を参照
してえ回答を生成できるというものになっ
ていますなので今これ2つがあるんです
けどもこの2つの中の分割された文章から
サランクモデルで最も適切なものを持って
くるというわけですねなのでえ複数の
ファイルをアップロードしてえそれを使っ
てラグのシステム作りたいなって場合は
こちらのマルチパスリトリーバルを選ぶと
いいと思いますはいで一旦こちら消します
で最後にチャットの強化ということで引用
の規則ということでえどのファイルを参照
したのかという情報を表示させることが
できますこちらもにしておくといいと思い
ますはいこの状態でえ更新をしてえアプリ
を実行し
ますはいもうすでにですね色々検証してた
ので履歴が残っちゃってるんですけどもえ
このスタートチャットでファイン
チューニングについて教えてくださいと
いう風に聞いてみ
ますはいそうすると先ほどアップロードし
たえPDFを参照してこの情報を活用して
回答を生成してくれていますはいこんな
感じでえ簡単にラグの手法を使ったボット
作れるので是非皆さんもチャレンジしてみ
てくださいかなり長くなってしまったん
ですけどもえどうだったでしょうかで現在
DFに関する資料をえLINE公式の方で
プレゼントしてるのでえ興味がある人はえ
概要欄の方からLINEの友達登録をして
もらってえプレゼントというキーワードを
入力してもらえると自動で資料が送られる
ようになってるので是非見てみてください
はいあとはえユミの方でもえ講座を販売し
ていて今のところ2つベストセラーになっ
てたりするのでえ興味があったらこちらを
見てみてくださいでクーポン使うとま
1800円という価格の値段で買えるので
興味がある人はぜひ見てみてくださいはい
以上で本日の動画を終了したいと思います
この動画が良かったなって思う人は高評価
コメントチャンネル登録の方よろしくお
願いしますえそれではまた次回の動画でお
会いしましょうバイバイ
[音楽]
Weitere ähnliche Videos ansehen
5.0 / 5 (0 votes)