仕事で使えそう?DifyでRAGを行う時の設定について解説してみた

にゃんたのAI実践チャンネル
26 May 202426:57

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

00:00

📱 DFアプリと言語モデルの活用

第1段落では、最近話題のDFアプリとその使い方について解説しています。DFはプログラミングができない人でも言語モデルを使ってアプリ開発が可能なプラットフォームで、様々な機能を備えています。しかし、機能が多すぎて混乱することもあると予想されています。DFを使いこなせるようになると、言語モデル単体では難しかったことも実現でき、アイデアをアプリに素早く落とし込んだり検証できるようになります。DFを使った開発の仕事が増えるかもしれないと述べています。

05:01

🔍 レイジーチューニングとファインチューニングの比較

第2段落では、言語モデルに一般公開されていない情報を回答させるためのレイジーチューニングとファインチューニング手法について説明しています。レイジーチューニングは外部情報を追加することでモデルに活用する方法で、会社内で決まっている独自の情報などにも活用されています。ファインチューニングは言語モデル自体が進化し、一度学習すれば外部情報の提供が不要になるという違いがありますが、Microsoftの論文ではレイジーチューニングの方が精度が高いとされています。

10:01

🛠️ レイジーチューニングの設定とチャンクの重要性

第3段落では、DFアプリ上でレイジーチューニングを使ったアプリを実現する方法について紹介しています。外部情報をアップロードし、設定項目を正しく行う必要があると強調しています。チャンクの設定方法や最大チャンク長、オーバーラップの許容度など、精度を上げるために重要なポイントが説明されています。また、Microsoftのブログでの実験結果も参考にすると良いとアドバイスしています。

15:03

🔎 ハイブリッド検索とサイランクモデルの選択

第4段落では、ハイブリッド検索とサイランクモデルについて詳しく説明しています。ハイブリッド検索はベクトル検索と全文検索を組み合わせたもので、意味的に近いものやキーワード単位で探すことができます。サイランクモデルは2つの文章を一緒に評価し、スコアを予測するもので、計算コストが高いため候補絞り込み後に適用されるとされています。コヒアという会社が出しているモデルが有名であることも紹介されています。

20:06

🤖 レイジーチューニングを使ったチャットボットの作成

第5段落では、レイジーチューニングを使ったチャットボットの作成方法について解説しています。ナレッジの設定、パラメーターの選択肢、マルチパスリトリーバルの活用など、チャットボットに複数のナレッジを組み込む方法が説明されています。また、テキストエンベディモデルの選択肢や精度の向上についても触れています。

25:07

📚 講座と資料の案内、ビデオの締めくくり

第6段落では、ビデオの締めくくりとして、DFに関する資料がLINE公式でプレゼントされている旨を案内しています。また、ユミさんが販売している講座も紹介されており、チャットボットの作り方に関するベストセラーになっていると豪語しています。最後に評価やコメント、チャンネル登録を呼びかけています。

Mindmap

Keywords

💡DF

DFとは、プログラミングができない人でも言語モデルを利用してアプリ開発ができるプラットフォームを指します。このビデオでは、DFを活用して言語モデルを使った開発を行えるようになることで、これまで難しかったことも簡単にできるようになるという主題に関連しています。例えば、DFを使って言語モデルを活用した開発の仕事が増えることが予想されるなど、その重要性が強調されています。

💡ラグ

ラグは、言語モデルが学習していない情報にも答えられるようにするための手法です。ビデオでは、ラグを使って企業の独自の情報や一般公開されていない情報を言語モデルに活用する方法が解説されています。例えば、ニャンタという情報について言語モデルに学習されていない場合、ラグを使ってその情報を提供し、正確な回答を得ることができます。

💡ファインチューニング

ファインチューニングは、言語モデルに対して特定の情報を学習させ、そのモデルを進化させる手法です。ビデオではファインチューニングとラグを比較し、ラグの方が精度が高く結果が出しやすいとされています。ファインチューニングは言語モデル自体の知識が増えていくため、一度学習すれば外部情報の提供が不要になるという点が説明されています。

💡ハイブリッド検索

ハイブリッド検索は、ベクトル検索と全文検索を組み合わせた手法です。ビデオでは、ハイブリッド検索が意味的に近いものを探したり、固有名詞を含む場合には全文検索の方が精度が良く働くという点を説明しています。また、ハイブリッド検索は候補を絞り込んだ後に再ランクモデルを適用することで、より良い結果を得るという使用方法も紹介されています。

💡チャンク

チャンクは、文章を分割することを意味します。ビデオでは、ラグ精度を上げるためにチャンクの方法が重要であると強調されています。チャンクの設定は、文章を分割する文字数やオーバーラップの許容度などによって調整され、それが検索精度に影響すると説明されています。

💡テキストエンベディング

テキストエンベディングは、文章を数学的な表現に変換するプロセスです。ビデオでは、テキストエンベディングモデルを使って文章をベクトル化し、検索や比較を行う方法が紹介されています。特に、テキストエンベッド3のラージモデルを使用することで精度が向上するという点に言及されています。

💡ナレッジベース

ナレッジベースは、言語モデルが参照する外部の情報源です。ビデオでは、DFアプリ上でナレッジベースを設定し、それを参照してチャットボットが回答を生成する仕組みが解説されています。ナレッジベースの設定は、複数のデータソースに対して検索を行う際に重要です。

💡マルチプルリトリーバル

マルチプルリトリーバルは、複数のナレッジベースを参照して回答を生成するパラメーターの設定です。ビデオでは、複数のファイルをアップロードし、それらを参照して最も適切な情報を提供するようにチャットボットを設定する際に、マルチプルリトリーバルを選択するよう説明されています。

💡再ランクモデル

再ランクモデルは、検索結果をもう一度評価し、順位をつけ直すプロセスです。ビデオでは、ハイブリッド検索で得られた候補に対して再ランクモデルを適用し、最も適切な結果を提供する仕組みが説明されています。再ランクモデルは、検索精度を高めるために重要な役割を果たしています。

💡チャットボット

チャットボットとは、ユーザーとの対話を行うための自動化されたシステムです。ビデオでは、DF上でチャットボットを作成し、ナレッジベースを組み込んで情報提供を行う方法が紹介されています。チャットボットは、ユーザーからの質問に応じて、ナレッジベースから適切な情報を検索し回答を生成します。

Highlights

DFはプログラミングができなくても言語モデルを使ったアプリが開発できるプラットフォームです。

言語モデルの単体では難しかったことも、DFを使うことで可能になります。

生成AIを活用する上でDFのスキルは今後非常に強力なものになります。

DFを使った開発の仕事が今後増えていくかもしれません。

今回の動画ではラグと呼ばれる手法について解説し、DFでラグを使ったアプリを開発する方法を紹介します。

言語モデルに学習していない情報でも回答できるようにするための手法がラグです。

チャットGPTのような言語モデルは学習していない情報には正しい回答ができません。

ラグを使うと一般公開されていない情報に関しても言語モデルに答えさせることができます。

ラグでは外部情報を追加で与えることで、言語モデルがその情報を利用して回答を生成します。

ラグの手法以外にもファインチューニングという手法がありますが、ラグの方が精度が高いことが論文で示されています。

ファインチューニングよりもラグを使う方が推奨される場合が多いです。

チャンク方式の設定はラグの精度に大きく影響します。

ベクトル検索と全文検索を組み合わせたハイブリッド検索が推奨されます。

サイランクモデルを使用することで検索の精度が向上します。

DFでは簡単にラグを使ったアプリを開発することができます。

Transcripts

play00:00

このチャンクの方法って結構大事なのでえ

play00:02

今回カスタムの方で設定しますファイン

play00:05

チューニングについて教えてくださいと

play00:06

いう風に聞いてみ

play00:08

ますはい皆さんこんにちはにゃんたですえ

play00:11

本日はDFくラグというテーマで話して

play00:14

いきたいと思いますえ最近dfyという

play00:17

アプリが話題になってるんですけどもえ皆

play00:19

さん触ってみましたかDFはえ

play00:22

プログラミングができなくても言語モデル

play00:25

を使ったえアプリが開発できる

play00:27

プラットフォームになっていますただDF

play00:30

は色々な機能があるのでま普段から言語

play00:33

モデル触ってないという人にとっては

play00:35

ちょっとよくわからないなっていう部分も

play00:37

多いんじゃないかと思いますでDFが使い

play00:40

こなせるようになるとえこれまで言語

play00:42

モデル単体では少し難しかったこともえ

play00:45

できるようになったりとか自分のアイデア

play00:48

をえすぐにアプリに落とし込んで検証する

play00:51

ことができるので生成AIを活用する上で

play00:53

は今後かなり強力なスキルになってくるん

play00:56

じゃないかと思いますXではDFの件を

play01:00

受注しましたって人もちらほら探検された

play01:03

ので今後もしかしたらこのDFを使った

play01:05

開発の仕事ってのも増えていくのかもしれ

play01:08

ませんでそこで今回はえ仕事の中でよく

play01:12

使われているえラグと呼ばれる手法につい

play01:14

て簡単に解説してdfyでこのラグを使っ

play01:18

たアプリを開発する方法についても紹介し

play01:21

ていきますこれまでプログラミングをやっ

play01:23

ていなかったからえ開発できなかったなっ

play01:25

て人もたくさんいると思うので是非この

play01:28

よく使われてるえラグのの手法について

play01:30

マスターして仕事とかでも使ってもらえれ

play01:33

ばいいのかなという風に思います初心者に

play01:35

も分かるように解説してるので生成活用し

play01:38

たいなという人は是非見ていってもらえば

play01:40

と思いますそれでは早速やっていき

play01:43

[音楽]

play01:45

ましょうはい最初にえラグって何っていう

play01:48

とこになりますでここら辺はえ技術的に

play01:51

細かい話というよりはえなぜラグが必要な

play01:54

のかというところだったりとかえdfiで

play01:57

アプリを作る上で知っておくべきことに

play01:59

ついて

play02:00

簡単にまとめておきますでラグは簡単に

play02:03

言うとえ言語モデルが学習していない情報

play02:06

でも回答できるようにするための手法に

play02:08

なっていますでチットGPTとか使ってる

play02:11

人分かると思うんですけどもえ言語モデル

play02:13

に学習していない情報を聞いても正しい

play02:16

回答はしてくれないかと思います例えばえ

play02:19

チャットGPTにえにゃんタって誰って

play02:22

いう風に聞いたとしてもえこんな感じでえ

play02:25

ニャンタというYouTuberについて

play02:27

の情報が具体的にないためえ一般的な内容

play02:30

で回答しますというところでニャンタ

play02:32

なんて知らないぞという風な返答が返って

play02:34

きてしまいますでこれはチャットGPTの

play02:37

学習データにえニャンタの情報が含まれて

play02:40

ないのでま回答ができないというわけです

play02:42

ねなので言語モデルの学習データに含まれ

play02:45

ていない内容に関しては基本的には言語

play02:48

モデル単体ではうまく回答することができ

play02:51

ませんえじゃあ言語モデルが学習してる

play02:54

データって何かって言うとえWeb上で

play02:57

一般公開されてるデータを学習しています

play03:00

まなのでインターネットに一般公開されて

play03:02

いてえ情報が多ければ多いほど言語モデル

play03:06

の回答の質が上がっていきますま一応

play03:08

ニャンタも頑張って発信してるんですけど

play03:10

もまだまだWeb上に情報が少なくてま

play03:14

十分学習できてないので先ほどは知らない

play03:16

という風に言われてしまったわけですねで

play03:19

言語モデルの登場で生産性が爆あがりし

play03:21

てる職種の1つがえプログラマーかと思い

play03:24

ますで個人的にも言語モデルが出てきてま

play03:27

仕事の仕方が結構変わったなという風な

play03:29

感じがしています

play03:30

でこれは大きく分けて2つ要因があるかな

play03:32

と思っててま1つが言語モデルが

play03:35

プログラミングにめちゃくちゃ強いという

play03:37

ことですねでつまりチャットgpdとかっ

play03:39

てまかなり質が高いプログラミングの

play03:41

コードを書いてくれますしプログラミング

play03:43

に関連した知識を誰よりも幅広く持ってる

play03:46

ので分かんないことがあったらえチャット

play03:49

GPTに聞くと色々と教えてくれますで

play03:53

これはえプログラミングのコードがネット

play03:55

上にたくさん公開されていて言語モデルも

play03:58

それらを学習してるので他の分野よりもえ

play04:01

生成する回答の質が高くなってるんじゃ

play04:03

ないかなという風に思いますそしてえ

play04:06

プログラマーと言語モデルの相性がいい2

play04:08

つ目の理由としては元々えプログラマーは

play04:12

ググる回数が多い職種であったという

play04:14

ところかなと思いますでプログラミングで

play04:17

何か開発する時ってま多くの場合ですね

play04:20

一般に公開されてる技術を組み合わせて

play04:23

何かを作っていくということが多いかと

play04:25

思いますチットGPTが出てくる前を

play04:28

思い出してみると何かエラーが出たらすぐ

play04:31

にググって公式ドキュメント見たりとか

play04:34

同じようなエラーが出てる人がいないか

play04:36

なってところでググりながら探したりする

play04:38

ことが多かったですなので仕事の進め方と

play04:41

しても一般に公開されてる情報を使って

play04:45

仕事をすることが多いので一般に公開され

play04:47

てる情報を学習してるえ言語モデルと相性

play04:50

がいいのかなっていう風に感じています他

play04:52

の職長を考えてみるとえ仕事をする上で

play04:55

めちゃくちゃググって何かやるというより

play04:57

も結構車内の情報に依存して仕事しなきゃ

play05:01

いけないとそういったケースが多いのかな

play05:02

という風に思うんですけども皆さんはどう

play05:04

いう風に思いますかはいじゃあなんでラグ

play05:07

が使われてるのかという話を持ってきたん

play05:09

ですけどもえラグを使うと一般公開されて

play05:12

ない情報に関しても言語モデルに答え

play05:15

させるということができるようになります

play05:17

なので会社の中の独自の決まりとか一般

play05:20

公開されてない情報を元にえ言語モデルを

play05:23

活用したいなという風になってくるとラグ

play05:25

という仕組みが使われてるというわけです

play05:27

ねで簡単なイメージとしてははまこんな

play05:30

感じでニャンタって誰っていう風に質問し

play05:32

た時に先ほどは答えてくれなかったんです

play05:35

けどもラグではえこんな感じでえニャンタ

play05:38

に関して書かれた情報をえ追加で与えて

play05:41

あげます例えばえニャンタはえ白猫

play05:44

YouTuberでAIが好きですという

play05:46

風に書かれたPDFを追加で与えるという

play05:49

イメージですねでそうするとえ言語モデル

play05:52

がそのPDFの情報を利用してえ回答を

play05:55

生成できるのでえこんな感じでニャンタっ

play05:58

て誰に対してえAI好きな白猫

play06:00

YouTuberですという風に返答が

play06:02

できるとそういったイメージになってい

play06:04

ますでこういう風にえ外部の情報を追加で

play06:07

与えて言語モデルに使ってもらうという

play06:10

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

play06:13

結構仕事で使ってるなって人も多いんじゃ

play06:14

ないかと思いますでこのラグと呼ばれる

play06:17

手法以外としてはえファインチューニング

play06:19

と呼ばれる手法がありますでファイン

play06:22

チューニングはまちょっと難しいんです

play06:23

けどもでこの言語モデル自体がこのPDF

play06:27

の情報を学習してま進化するとえそういっ

play06:29

たイメージになりますでこのラグに関して

play06:32

はこの言語モデルが進化してるんじゃなく

play06:34

て簡単に言うとユーザーの質問に対して

play06:38

PDFの情報を見て回答してるというだけ

play06:41

なので言語モデル自体はえ特に知識が増え

play06:44

てるわけじゃなくてえただPDFの情報を

play06:46

使ってるとえそういったイメージになり

play06:48

ますでファインチューニングだとえ言語

play06:51

モデル自体の知識が増えていくので一度

play06:53

学習してあげればこのPDFを与えなくて

play06:56

も回答を生成するということは原理的には

play06:59

可能になっていますじゃあそのファイン

play07:01

チューニングってのもやってみようかしら

play07:03

という風に思ってる人もえ多いと思います

play07:05

し実際開発してるところも多いんじゃない

play07:08

かなという風に思うんですけども

play07:09

Microsoftから出ている論文では

play07:11

えファインチューニングを使うよりもえ

play07:13

ラグを使った方が圧倒的に精度が高いと

play07:16

いう結果が出ていますこちらの論文に関し

play07:19

ては話してると長くなってしまうので今後

play07:21

ファインチューニングについても解説でき

play07:23

たらなという風に思うんですけども結論と

play07:25

してはファインチューニングをやるよりも

play07:28

えラグだけ使った方ががえ精度が高くなる

play07:30

よという話になっていますなのでえ言語

play07:33

モデルに学習してない内容について回答し

play07:36

て欲しいなって時はえファイン

play07:37

チューニングじゃなくてラグを使う方が

play07:40

推奨されるかなと思いますでちなみにえ

play07:43

ラグの中でまどういう風に外部情報が使わ

play07:46

れてるのかというのは押えておくといいと

play07:48

思うのでえ簡単に説明しておきます例えば

play07:52

先ほどと同じようにえにゃんタって誰って

play07:54

いう風な質問が来たとするとこの質問に

play07:57

答えるために必要な情報というのをを外部

play08:00

データとして与えるPDFのテキスト

play08:02

データから探してきますこの右側の文章は

play08:05

えPDFに書かれた文章だと思って欲しい

play08:08

んですけどもこのPDFの文章を段落とか

play08:11

で分割してあげます例えばこれだったら今

play08:15

3つの文章に分割されていますでこの文章

play08:17

の中から質問に答えるために必要な文章を

play08:21

え探してくるんですけども今回だったら

play08:23

この1番上の情報が抽出されるとえそう

play08:26

いったイメージになりますなのでこの情報

play08:29

とえニャンタって誰っていう質問文が一緒

play08:32

に言語モデルに入れられることによって

play08:34

回答ができるというイメージになりますで

play08:36

どういう風にこの3つの中から文章が選ば

play08:39

れるのかということに関してはこちらの

play08:42

動画で詳しく解説してるので興味があれば

play08:44

見てみてくださいでポイントとしてはえ

play08:47

追加で与えた情報っていうのは分割されて

play08:50

利用されるということとその中から質問に

play08:53

関連する情報が抜き出れて利用されると

play08:56

いうところになりますでラグの話が少し

play08:59

長くなったんですけどもえDFのアプリ上

play09:02

でも簡単にラグを使ったアプリを実現する

play09:04

ことができます先ほどのラグを使った

play09:07

システムを作ろうとするとま結構大変なん

play09:09

ですけどもえDFを使うとファイルを

play09:12

アップロードするだけですぐにできて

play09:14

しまいますただえ色々と設定する項目が

play09:17

あってここら辺が正しく設定できてないと

play09:21

精度の検証もうまく行えないと思うので

play09:24

続いてえ実際に画面見せながらえ各設定が

play09:27

どういうものなのかというのを解説して

play09:30

いき

play09:31

ますはいそれではえラグのアプリを作って

play09:34

いきたいと思いますでDFの基本的な操作

play09:37

に関してはえDF入門の動画で解説してる

play09:40

ので知りたい人は是非そちらを見てみて

play09:43

ください今回はラグのシステムを作る時の

play09:46

設定項目を細かく見ていきますえまず最初

play09:49

にえ参照する外部情報を設定する必要が

play09:52

ありますえそれがですねこの右上のえ

play09:55

ナレッジのところからえこういった画面に

play09:57

遷移できますちょっと大きくしてでここの

play10:01

ですねえっと知識作成というところを押し

play10:03

てもらえる

play10:05

とこういった画面に遷移するかと思います

play10:09

でここからえ外部情報をアップロードして

play10:11

いきます最初は普通にアップロードする

play10:14

だけなのでえこちらの参照から好きな

play10:16

ファイルをアップロードしてもらえればと

play10:18

思い

play10:20

ますはい私は先ほどの論文のえFind

play10:23

チニングorリトリーバルというPDFを

play10:26

アップロードしましたでこの状態でえ次を

play10:29

押し

play10:31

ますはいそうするとですねこういった画面

play10:33

に遷移するかと思いますはいでまず見方と

play10:37

してはこのプレビューのところですねえ今

play10:39

え5個のえプレビューが表示されてるん

play10:41

ですけどもこれは先ほどスライドで紹介し

play10:44

たようにえ文章が分割されるという話が

play10:47

あったと思いますでその分割された1つ1

play10:50

つがですねこういう風にプレビューとして

play10:52

え今確認できていますでこの左側を設定し

play10:55

ていくとこの右側が変わったりするので

play10:58

そちらを見ながらが設定してくという感じ

play11:00

になってますで最初にえチャンクの設定と

play11:03

いうのがありますでチャンクっていうのは

play11:05

え文章を分割することを言いますでその

play11:08

設定方法としてま今自動が選ばれてるん

play11:11

ですけどもこれDFの方で設定されたえ

play11:14

チャンク方式に乗っ取ってえ分割されてる

play11:17

ということですねでそうすると1つ1つの

play11:19

チャンクがえこういった文字数になってる

play11:21

というのが分かりますでラグの精度を

play11:23

上げるにはこのチャンクの方法って結構

play11:26

大事なのでえ今回カスタムの方で設定し

play11:28

ます

play11:30

でこちら選んでもらうとセグメント識別士

play11:32

と最大チャンク調とえチャンクの

play11:35

オーバーラップとか出てきますで

play11:37

セグメント識別肢っていうのはえ文章の中

play11:40

でどういった文字が出るとえチャンクとし

play11:43

て区切るのかとえそういうのを設定するに

play11:45

なっています今特になくていいのでコメ

play11:48

マークで設定しておきます続いて最大

play11:51

チャンク長になっていますでこれはえ文章

play11:54

を分割した時にその分割された文章のえ

play11:57

文字数になっています厳密にはトークン数

play12:00

だと思うんですけども文字数のようなもの

play12:02

だと思ってもらえればと思いますこれ今

play12:04

500となってるので500文字ずつ分割

play12:07

されるということになりますはいでこちら

play12:10

のオーバーラップっていうのがえ文章を

play12:12

分割した時のえ境目のオーバーラップを

play12:15

どれぐらい許容するかとえそういった話に

play12:17

なっています例えばえ1000文字の文章

play12:21

があったとするとえ今最大チャンク長が

play12:23

500なので500文字500文字で2つ

play12:26

の文章に分割されますその時に500文字

play12:30

と501文字にわってま文章がある場合

play12:33

ってそこが分割されてしまうので文章の

play12:36

意味が分かりにくくなってしまいますまな

play12:38

ので少しオーバーラップを許容して文章を

play12:42

分割すると精度が上がるというところでえ

play12:45

このオーバーラップを許容していますはい

play12:47

なのでこの設定が必要なんですけども

play12:50

じゃあこの分割する時のえ文章の長さとえ

play12:53

オーバーラップっていうのはえどれぐらい

play12:54

許容すれば精度がいいのかなってのはえ

play12:57

結構大事なポイントかなと思います

play13:00

でそれに関してはえこちらの

play13:01

Microsoftのブログの方で

play13:04

いろんな実験がやられていて精度が良く

play13:06

なるえ実験結果がまとめられていますえ

play13:09

こちらのブログの下の方にですねえここ

play13:14

ですねキンク長の違いによってどれぐらい

play13:17

精度が変わるのかというのが見られてい

play13:19

ますここでは512とえ1024え496

play13:23

と8191が比較されてるんですけども

play13:26

ちょっとアップしますか

play13:31

これを見ると512のインプットトークの

play13:34

時がま1番精度が高くなってるということ

play13:36

ですねまつまり分割するチャンク長は大体

play13:40

500ぐらいにするとより良いということ

play13:42

が分かるかと思いますはいで下の方見てく

play13:45

とオーバーラップはどれぐらいさせると

play13:47

いいのかというところも書かれていて大体

play13:50

25%のオーバーラップをさせるとま精度

play13:53

が良かったという風に書かれてますねで

play13:56

この実験結果はま1つの結果なので全ての

play13:59

ケースにおいてこれが当てはまるかって

play14:01

いうのは断定はできないんですけども

play14:03

Microsoftが出してる実験結果な

play14:05

ので実験もしっかりやられていてここを

play14:07

スタートとしてパラメーター設定しても

play14:09

いいんじゃないかなという風にえ個人的に

play14:11

は思いますはいなのでえ戻ってですね

play14:13

こちらの方チャンク帳設定しましょうえ

play14:17

512でえ大体125ぐらいですかね設定

play14:21

しときましょうあとはテキストの毎処理の

play14:23

ルールとしてまスペースとか開業とかです

play14:25

ねえ痴漢するとかえ色々あるんですけども

play14:28

ここら辺はデフォルトの設定のままでえ

play14:31

進めますえ確認&プレビューをしますはい

play14:35

そうするとえ分割ですねこんな感じになっ

play14:37

てますでこれ今文字数として出てるので

play14:40

トク数とは少し意味が違うんですけども

play14:43

この設定でえ文章の分割ができています

play14:46

はいで下の方に次行きます続いてえ

play14:50

インデックスモードというのがありますえ

play14:53

これ高品質と経済的というのがあって2つ

play14:55

どっちにすればいいんだろうという風に

play14:57

悩ましいのかなという風に思いますでこれ

play14:59

は違いとしてはこちらの高品質の方は

play15:03

ベクトル検索と言って分割された文章から

play15:06

え文章を検索する時に文章をベクトル化し

play15:09

て検索するという少し高度なことをやって

play15:12

います詳しい話は先ほどの紹介したこちら

play15:15

の動画を見ていただければと思うんです

play15:17

けども文章の意味的に近いものを抽出

play15:20

できるのでより精度が上がる傾向があり

play15:22

ますなので少しコストはかかってしまうん

play15:25

ですけども制度を求めるんだったらこちら

play15:27

の高品質の方を選んだがいいと思い

play15:30

ます続いて設定としてえ質問と回答形式で

play15:34

セグメントかというのがありますでこちら

play15:37

は少し難しいんですけどもえ分割した文章

play15:40

ごとにQ&A形式で質問と答えを用意して

play15:44

あげて質問同士で検索を行うという方法に

play15:48

なっていますちょっと意味わからんという

play15:50

人多いと思うので公式のページの図を参照

play15:54

するとこの左側の方がえ普通にやった場合

play15:57

ですねユーザのクエスチョンが入ってき

play16:00

たらこのデータベースの中で分割された

play16:03

文章が選び出されるとこれが一般的なラグ

play16:06

の流れになっていますそれに対して先ほど

play16:09

の設定をオンにすると各パラグラフごとに

play16:12

QAの形でえ文章が作られますこの作られ

play16:17

た文章とユーザーのインプットが似ている

play16:19

ものを探し出してその時のアンサーを

play16:22

抜き出すというのでかなり複雑なことを

play16:25

やってい

play16:26

ますで公式の方を見てみるるとThis

play16:29

IsMorePRとこれがより正確になり

play16:32

ますよという風に書かれていますただえ

play16:34

現状はえこちら使用言語がえ英語と中国語

play16:38

しか対応してないようなので英語で使う

play16:40

場合はいいんですけどもえ日本語の場合は

play16:43

少し微妙なのかなという風に思いますあと

play16:46

はこのクエスチョンとアンサーを各分割さ

play16:49

れた文章に対して生成するんですけども

play16:51

その時にえ言語モデルを使ってえこういっ

play16:54

た文章を生成してくのでコスト的にかなり

play16:57

かかってしまうというところがえ注意点か

play16:59

なと思います例えば文章めちゃくちゃ長く

play17:02

て各文章に対してQAをたくさん生成して

play17:05

たらものすごい数のトークンを使って

play17:07

しまうので少し高くなってきますはいなの

play17:10

で今回はこちらを使用せずに行きたいと

play17:12

思いますで興味がある人はこちら今英語と

play17:16

中合語しかないみたいなんですけども使っ

play17:18

てみるといいと思いますはい続いてえ検索

play17:21

設定ですねえベクトル検索とえ全文検索

play17:25

ハイブリッド検索とえ3つが選択できます

play17:28

で論から言うとこのハイブリッド検索がお

play17:31

すすめになりますでハイブリッド検索って

play17:34

のはこのベクトル検索とえ全文検索を

play17:36

合わせた検索になっていますはいこちらを

play17:39

選択しますこれ何やってるかってのを理解

play17:42

するにはこのベクトル検索とえ全文検索が

play17:45

どういうものかというのを簡単に説明して

play17:48

おきますでそもそも検索って何っていう人

play17:51

もえいると思うんですけどもこれはこんな

play17:54

感じで文章が分割されてるんですけども

play17:56

何かユーザーから質問が来た時にえその

play17:59

質問を元にこの分割された文章の中から

play18:02

どの文章かを選び出す必要がありますその

play18:06

時にどれを選び出せばいいのかなって

play18:08

ところでえ検索が必要になってきますで

play18:11

ベクトル検索っていうのはえユーザーの

play18:13

質問とえ意味が近いものを探してくると

play18:16

そういった検索方法になっていますまなの

play18:18

でユザーの質問に対してえ意味が近いえ

play18:22

分割された文章がないのかなってところで

play18:24

ま探してくるというのがえベクトル検索に

play18:27

なっていますおベクトル検索すごくいいな

play18:29

という風に思ったりするんですけども

play18:31

ベクトル検索の方は意味的に近いものを

play18:34

探すというのは得意なんですけども単語

play18:37

単位で拾ってきて欲しいという場合にえ

play18:40

弱かったりします例えばえニャンタは誰で

play18:43

すかていう風に質問した時にニャンタの

play18:45

意味っていうのはAIのモデルからすると

play18:48

学習できてないので分かりにくかったりし

play18:50

ますでそうするとこのベクトル検索では

play18:53

ニャンタって誰っていう入力に対してこの

play18:56

分割された文章から検索するのが難しく

play18:59

なってきますでその時にこの全文検索と

play19:02

いうのでえキーワードで検索するという

play19:05

方法が必要になってきますこれはユーザー

play19:09

の質問に含まれてるキーワードと同じキー

play19:12

ワードが含まれているえ文章を探してくる

play19:14

とそういったアルゴリズムになっています

play19:17

全文検索よりもこのベクトル検索の方が

play19:20

意味的に近いものを探してくるという

play19:22

ところで技術的にはえ少し高度なことやっ

play19:25

てるんですけども意味が明確じゃない固有

play19:27

名詞とかを含んでる場場合はこの全文検索

play19:30

の方がえ精度が良くなってきますで

play19:33

ベクトル検索と全文検索を組み合わせたの

play19:35

がえハイブリッド検索になっていて

play19:38

ベクトル検索とえ全文検索でえ候補を持っ

play19:41

てきた後に再ランクモデルというものを

play19:43

使ってえランク付けを行いますでこの再

play19:46

ランクモデルってのがまた出てきたので

play19:48

難しいなという風な感じかもしれないです

play19:50

けどもまずはこのベクトル検索と全文検索

play19:52

があってそれを組み合わせたのが

play19:54

ハイブリッド検索ですよというところを

play19:56

押えてもらえばと思いますはいじゃあサイ

play19:58

ランクモデルって何なのかというところに

play20:00

なってくるんですけどもまこちらについて

play20:02

はえ少し技術的に難しいのでふーんと持っ

play20:05

て聞いてもらえればと思うんですけども

play20:07

サイランクモデルはベクトル検索と似た

play20:10

ようなものになっていますこちらの図が

play20:13

ベクトル検索とサイランクモデルの処理

play20:15

方法の違いを表してるんですけどもこちら

play20:18

のバイエンコーダーってのがえベクトル

play20:20

検索を行う時のネットワークになっていて

play20:23

クロスエンコーダーってのがサイランク

play20:25

モデルを使う時の処理の方法になってい

play20:27

ますでこれを見てもさっぱり分からないと

play20:30

思うんですけどもえ端的に言うとサイ

play20:32

ランクモデルの方は2つの文章を一緒に

play20:35

入れてスコアを予測するものでベクトル

play20:38

検索の方は独立に入れてえベクトルを計算

play20:41

するとえそういったものになっています

play20:44

一般的にえこちらのクロスエンコーダーの

play20:47

方の処理構造の方が一緒に文章を入れるの

play20:50

でより性能が高いということが分かってい

play20:53

ますはいじゃあ最初からこのサイランク

play20:55

モデル使えばいいじゃんという風に思うん

play20:57

ですけどもこのサイランクモデルは計算

play21:00

するコストが高いというところが上げ

play21:01

られるのでベクトル検索とか全文検索で

play21:05

ある程度候補を絞った後にえ最後にサイ

play21:07

ランクモデルが適用されるというのが現在

play21:10

の主流になっていますはいここら辺は

play21:13

あまり詳しく知らなくてもえ問題ないのか

play21:15

なと思うんですけどもリランモデルを使っ

play21:17

た方がいいんだなというところを抑えて

play21:19

おくといいと思いますでリランモデルは

play21:22

このコヒアという会社が出してるモデルが

play21:24

有名なのでえこちらの方を選択しますこの

play21:28

コヒアのの会社に関してはこちらの

play21:30

コマンドR+の動画で解説してるので興味

play21:32

がある人は見てみてくださいでこちらの

play21:35

モデルがえアクティブじゃないという場合

play21:37

は右上の設定のところからえモデル

play21:40

プロバイダーのとこ行ってですねこちらの

play21:42

方でAPIキーの方を設定してもらえばと

play21:44

思います今だったらですねこのコヒアの

play21:47

APIは商用利用は禁止されてるんです

play21:49

けどもえ無料で使うことができますはい

play21:52

これでですね一通り設定が完了しましたで

play21:55

ここまで説明を聞いてもらえるとま各設定

play21:57

項目ですねどういう意味なのかというのが

play22:00

なんとなくイメージできたかなという風に

play22:02

思いますはいこれで保存して処理をします

play22:06

はい埋め込みが完了しましたで

play22:08

ドキュメントに移動しましょうはいそう

play22:10

するとですね今ドキュメントができてるの

play22:12

でこれをですねテストすることもできます

play22:16

えこちらでファインチューニングなんです

play22:19

かという風に質問してえテスト中と押す

play22:24

と分割された文章がえ今3つ抽出できまし

play22:28

たこれ今検索をしてえ文章が抽出できると

play22:32

いうことになりますここら辺でえユーザー

play22:35

が入力した時にえ正しく文章が抽出できる

play22:38

のかなってのを確認するといいと思い

play22:40

ますあともう1つはこの設定のところから

play22:43

えナレッジ名とナレッジの説明というのが

play22:46

ありますでこれに関してはえチャット

play22:49

ボットの中で複数のナレッジを設定する

play22:51

ことができるんですけどもえその時にどの

play22:54

ナレッジを使うのかというところを言語

play22:57

モデルの方で判断させる時にこの説明文章

play23:00

を見て判断する時に使われますなのでえ

play23:03

いろんな文章をアップロードして複数の

play23:06

データソースに対してえ検索を行いたいと

play23:09

いう時はこちらはちゃんと設定する必要が

play23:11

ありますでこちらの説明文書のえおすめの

play23:14

書き方というのもえ公式の方にですね載っ

play23:17

てますのでここら辺ですねえどういう風に

play23:20

設定すればより良い説明文になるのかなっ

play23:22

てのが気になる人はえこちらを見て

play23:24

もらえればと思いますはいであとですね

play23:26

埋め込みモデルのところですねこちら今

play23:28

テキストエンベディAD002という

play23:31

オープAIのベクトルカのモデルを使っ

play23:34

てるんですけどもこれ実はですねえあまり

play23:36

精度がよくありませんまなのでえテキスト

play23:40

エンベッド3のラージの方ですねこちらを

play23:43

使った方が精度が良くなるので設定を変え

play23:46

ておくといいと思いますはいこれでですね

play23:48

保存をしときますはいこれで慣レチが今

play23:52

作成できたのでチャットボットの方に

play23:54

組み込んでいきますえ一旦ですねスタジオ

play23:57

の方に戻ってもらって

play23:58

アプリを作成していきます私既にラグって

play24:01

の作ってるのでこちらからですね見ていき

play24:04

ますここら辺は基本的な操作なのでこう

play24:07

追加をしてもらって先ほど作成したえ

play24:11

こちらのナレッジですねこれ選択して追加

play24:13

をしますはいそうするとえこの文章を参照

play24:17

してえチャットボットが回答を生成して

play24:19

くるようになりますで1つ理解する必要が

play24:22

あるのがこのパラメーターというものに

play24:24

なっていてこれ2つ選ぶことができ

play24:26

ますでこのに関しては公式ページの方に

play24:30

ですね詳しく書かれていてNto1リトリ

play24:33

バルっていうのはユーザーの質問があった

play24:35

時に最もマッチしているえ1つの

play24:38

ノーレッジベースを探してくるというもの

play24:39

になっていますなので例えば複数の

play24:42

ファイルをですねアップロードしたとして

play24:44

もどちらかのファイルが選ばれるという

play24:46

ことになりますでこちらのマルチプル

play24:48

リトリーバルに関してはもう予想はでき

play24:51

てると思うんですけども複数の能列を参照

play24:53

してえ回答を生成できるというものになっ

play24:55

ていますなので今これ2つがあるんです

play24:58

けどもこの2つの中の分割された文章から

play25:01

サランクモデルで最も適切なものを持って

play25:03

くるというわけですねなのでえ複数の

play25:07

ファイルをアップロードしてえそれを使っ

play25:09

てラグのシステム作りたいなって場合は

play25:12

こちらのマルチパスリトリーバルを選ぶと

play25:13

いいと思いますはいで一旦こちら消します

play25:18

で最後にチャットの強化ということで引用

play25:21

の規則ということでえどのファイルを参照

play25:24

したのかという情報を表示させることが

play25:26

できますこちらもにしておくといいと思い

play25:29

ますはいこの状態でえ更新をしてえアプリ

play25:32

を実行し

play25:34

ますはいもうすでにですね色々検証してた

play25:37

ので履歴が残っちゃってるんですけどもえ

play25:39

このスタートチャットでファイン

play25:41

チューニングについて教えてくださいと

play25:43

いう風に聞いてみ

play25:45

ますはいそうすると先ほどアップロードし

play25:49

たえPDFを参照してこの情報を活用して

play25:52

回答を生成してくれていますはいこんな

play25:55

感じでえ簡単にラグの手法を使ったボット

play25:58

作れるので是非皆さんもチャレンジしてみ

play26:01

てくださいかなり長くなってしまったん

play26:03

ですけどもえどうだったでしょうかで現在

play26:06

DFに関する資料をえLINE公式の方で

play26:09

プレゼントしてるのでえ興味がある人はえ

play26:12

概要欄の方からLINEの友達登録をして

play26:15

もらってえプレゼントというキーワードを

play26:17

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

play26:20

ようになってるので是非見てみてください

play26:23

はいあとはえユミの方でもえ講座を販売し

play26:26

ていて今のところ2つベストセラーになっ

play26:29

てたりするのでえ興味があったらこちらを

play26:32

見てみてくださいでクーポン使うとま

play26:34

1800円という価格の値段で買えるので

play26:37

興味がある人はぜひ見てみてくださいはい

play26:39

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

play26:41

この動画が良かったなって思う人は高評価

play26:43

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

play26:45

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

play26:46

会いしましょうバイバイ

play26:50

[音楽]

Rate This

5.0 / 5 (0 votes)

Related Tags
言語モデルラグ手法アプリ開発DFプラットフォーム初心者向け生成AIプログラミングファインチューニングPDF活用ベクトル検索
Do you need a summary in English?