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

Поделиться
HTML-код
  • Опубликовано: 1 окт 2024

Комментарии • 36

  • @seijichishiki5123
    @seijichishiki5123 9 дней назад +1

    Difyに触れてまだ日が浅いですが、大変参考になりました。
    3ヶ月経過するとUIも少し変わっているので、なかなか難しいですが、うまいことアップデートしていってもらえるとありがたいです。

    • @aivtuber2866
      @aivtuber2866  8 дней назад +1

      少しでも役に立ったようで、良かったです!
      近々、Difyの最新機能の紹介動画投稿予定です!😊

  • @hiroyukifuruta2725
    @hiroyukifuruta2725 4 месяца назад +7

    DifyはOllama経由でオープンソースモデルも使えるみたいなので、RAGで大手の有料APIに比べてオープンソースモデルは使えるのかもやってくれるとありがたいです。phi-3とかmistralとかyiとかココ1か月で更新されたモデルはだいぶ使えるようになった感じがします

    • @aivtuber2866
      @aivtuber2866  4 месяца назад +1

      リクエストありがとうございます!
      オープンソースモデルの活用も興味あるのですね!🤔
      何か動画にできないか考えてみます😊

  • @猫日向
    @猫日向 17 дней назад +2

    結論、結局学習コストを払ってlangchainを使う。

  • @fudousanphp
    @fudousanphp 4 месяца назад +2

    RAGですらまだうまくいかないという声があるのにじゃあfinetuningかと思ったけどRAGのほうがいいのか?これは少し衝撃。ファインチューニングはパラメータ更新なので精度高いと思っていた

  • @cantoneseslang
    @cantoneseslang 4 месяца назад +4

    毎回有料級の内容ありがとう😊ございます 使いながら実は原理がよく理解してできてなかったので非常に助かりました。次は更なるテンプレからもう少しだけ上級のコード組み込みも見れたら嬉しいです😊

    • @aivtuber2866
      @aivtuber2866  4 месяца назад

      ありがとうございます!
      ちょっとマニアックだったかな?と思ってたので良かったです😆
      もう少し実用的なDifyの使い方などあったら良さそうですね!

  • @kmoc1105
    @kmoc1105 4 месяца назад +3

    にゃんたさん、にゃんたさん、あなたは天からの使いの者ですか😭✨✨この動画は、まるで私の為の動画でした!教えて欲しい事をいち早く教えてくださり、ありがとうございます!しかもプレゼントでDifyまとめ資料まで😂💕
    これなら、私でも出来そうです、感謝です!!

    • @aivtuber2866
      @aivtuber2866  4 месяца назад +1

      コメントありがとうございます!
      そんなに感謝されるとは笑
      そう言って貰えてこちらとしても良かったです!

  • @ch.1734
    @ch.1734 3 месяца назад +2

    最高に分かりやすくて何より引用してる情報がしっかりしたものなのが大変ありがたいです!!
    コンテキストの文章量って利用トークン数に含まれるんでしょうか?
    トークン数がどんな時にカウントされるかが分かるととても嬉しいです!

    • @aivtuber2866
      @aivtuber2866  3 месяца назад +1

      ありがとうございます!
      ベクトル化する設定であれば、embeddingのモデルのトークン数に含まれますね!(激安)
      後は質問をした時に関連文書を抽出してプロンプトに入れるので、その分は言語モデルのトークン数にカウントされます!

  • @yoshidamasanori3184
    @yoshidamasanori3184 4 месяца назад +2

    とても分かりやすい解説ありがとうございます!
    チャットボットの設定画面で、手順のテキストボックスが一瞬映りましたが、一言「あなたは優秀なAIです。」は、クスっとしてしまいました。この一言があるだけでも変わるのですかね。笑

    • @aivtuber2866
      @aivtuber2866  4 месяца назад

      ありがとうございます!
      何もプロンプト無いのも寂しいから入れとくか・・・という感じで入れてます笑

  • @ht4869
    @ht4869 Месяц назад +1

    いつも非常に参考になってます!
    分かりやすい動画を公開いただきありがとうございます!
    ちなみにですが、チャンク長とオーバーラップの数の実験がなされているmicrosoftの記事のリンクっていただくことは可能でしょうか?

    • @aivtuber2866
      @aivtuber2866  Месяц назад

      ありがとうございます!
      マイクロソフトの記事のリンクは下記になります!
      techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-ai-search-outperforming-vector-search-with-hybrid/ba-p/3929167

  • @tk84gf
    @tk84gf 2 месяца назад +1

    議事録作成やら調べ物でAIをちょろっと使う程度の者ですが、持っていない知識を学習させるのはmyGPTでも出来ると思うのですが同様のものと考えて良いのでしょうか?

    • @aivtuber2866
      @aivtuber2866  2 месяца назад

      はい、同様の技術となるかと思います!
      厳密にはGPTsの方は文書検索ロジックが公開されていないので
      アルゴリズムに差はあると思いますが、実用上は大きく変わらないと思われます!

  • @seijichishiki5123
    @seijichishiki5123 9 дней назад +1

    ちなみになのですが、RAGのデータに文字PDFではなく、チャットフローを使ってhttpでJSONを取得する場合、KVS形式のJSONのデータをうまく「キー:値」として認識してくれません。例えば「idが10のレコードを表示して」という質問ではヒットせず、「"id":"10"のレコードを表示して」でヒットします。
    JSONを意味のあるレコード集合体として認識させるよう、何か指定などにコツがあるのでしょうか?

    • @aivtuber2866
      @aivtuber2866  8 дней назад

      ありがとうございます!
      ちょっと状況が正確に理解できておらず、申し訳ないのですが
      RAGのデータに文字PDFではなく、httpリクエストで、
      JSONを取得するというのはどのような状況でしょうか?🤔
      httpリクエストを送る先はどこになるのでしょうか?

    • @seijichishiki5123
      @seijichishiki5123 8 дней назад +1

      @@aivtuber2866 すみません、ありがとうございます。
      私のこれまでのゴルフプレーのスコアを自分のサーバでDB管理してまして、自作のプログラムでAPIを作ってhttpアクセス出来るようにしています。
      以下のようなJSONデータを、チャットフローを使って取得は出来ています。
      {
      "round_no": "1",
      "score": "88"
      },
      {
      "round_no": "2",
      "score": "94"
      }
      これを次のフローのLLMノードで「ラウンド1のスコアを表示して下さい」としても回答が得られない、という状況なのです。。
      ひとつ分かったのは、GPT-4oモデルではちゃんと表示しますが、Ollamaの「gemma2」ではダメでしたので、モデルの学習能力の差かな、とも思っています。

    • @seijichishiki5123
      @seijichishiki5123 8 дней назад +1

      もう一つは、JSONではなくてCSVを書き出してナレッジとして登録しても良いのかなと思っていますが、後のことを考えて動的にデータを取得したいとも考えている次第です。なのでチャットフローでデータを動的に取得したいと考えています。

    • @seijichishiki5123
      @seijichishiki5123 8 дней назад +1

      あ、もし私の質問が、無料での回答範囲内で無ければ、遠慮無くおっしゃって下さい。

    • @aivtuber2866
      @aivtuber2866  8 дней назад

      ありがとうございます!興味深い使い方されてますね!
      プロンプトに埋め込むのも手ですが、
      おっしゃるようにモデルの性能に依存するためパラメタ抽出ノードと
      コードノードを併用すると良いと思います!
      ユーザーの入力からパラメタ抽出ノードを用いてround_numberを抽出した後
      httpリクエストのレスポンスのbodyと一緒にコードノードに渡します。
      import json
      def main(body: str, round_number: int):
      parsed_data = json.loads(f"[{body}]")
      score = parsed_data[round_number + 1]["score"]
      return {"score": score}
      これで、scoreが出てくるかと思います!
      bodyは下記のような文字列が入る想定で、レスポンスはラウンドナンバーの連番で取得すると仮定しています!
      body = """{
      "round_no": "1",
      "score": "88"
      },
      {
      "round_no": "2",
      "score": "94"
      }"""

  • @ちょこ-s9h1o
    @ちょこ-s9h1o 27 дней назад +2

    エンジニアをしており社内の機密情報を使用したRAGのシステムを構築したいのですが、機密情報は外部に漏洩するのでしょうか?また、外部に情報が漏洩しないLLMの構築方法を知っていましたら教えていただきたいです。データはエクセル、PowerPoint、Wordを使用しようと考えています。

    • @aivtuber2866
      @aivtuber2866  27 дней назад

      APIKEYを登録してモデルを利用する場合は、外部に流出してしまいますね・・・!
      自分の講座を勧めるのは、ちょっとあれなのですが、環境構築では無くて実装だけであれば
      Udemyで出している「オープンソースAIモデル活用入門」のセクション6で
      ローカルモデルを利用したRAGの実装は紹介してますので興味があれば・・・!
      購入しなくてもGitHubの方から実装だけでも確認できると思います😊
      colab.research.google.com/github/nyanta012/open-model-tutorial/blob/main/section6/RAG.ipynb

    • @ちょこ-s9h1o
      @ちょこ-s9h1o 17 дней назад

      @@aivtuber2866 返信遅れました、ありがとうございます!!

    • @seijichishiki5123
      @seijichishiki5123 9 дней назад +1

      横やりになってしまい申し訳ありません。
      私もプログラマー・エンジニアをしており、なかなか皆に読まれないプログラム仕様書を読ませるためにRAGを活用出来ないかと思い、Difyに触れてみました。
      まだ触り始めて日が浅いので、この動画が大変参考になっています。
      私の場合も同様に外部に情報を流出させたくないので、自分のPC(Mac)に「Ollama」というローカルLLM実行ツールを導入し(Macならインストールは比較的簡単)、同じくローカルDockerでDifyをインストール・localhost/app で動作させ、Difyの「モデルプロバイダー」で「OpenAI」ではなく「Ollama」のLLM(gemma2:2b)とTEXT EMBDING(nomic-embed-text)を使用して、完全ローカル化に成功して精度を高めるべく試行錯誤しています。
      自分のPCのLANを遮断しても使えるので、見えないところでAPIなどが走っていることは無さそうです。
      ただし問題は、高いスペックのPCじゃないと動かないこと。私のMacは高いGPUは無いですが、Corei9 8coreでメモリ16GBとそこそこのスペックを積んでます。それでも1応答に30秒ほど掛かります。
      もう一つの問題は、これをどうやって社内スタッフに見てもらうかということ。
      社内に置いてあるサーバでは完全にスペック不足、GPUクラウドサービスの独自インスタンスなら外部に情報が漏洩する心配も無く安心ですが、費用は最低でも50円/1時間(HDD利用など入れて月間で5万円以上)の費用が掛かり維持が大変です。
      ある程度費用があっても安めのGPUのインスタンスがすぐに枯渇して使えない、グローバルサービスとして外部に公開出来ず単なる機械学習だけのGPUプラン、面倒なGPUドライバーのインストールが必要なプラン、AWSやAzure、GCPではとんでもない金額になる、など、テクニックだけが進行し、まだまだ環境面で解決しなければならないことが多い感じがしています。
      参考になれば幸いです。

  • @papua-
    @papua- 3 месяца назад +3

    語尾を伸ばさずに話してくれると聞きやすくなりそう

    • @aivtuber2866
      @aivtuber2866  3 месяца назад

      ありがとうございます!癖なので気を付けます・・・!