このチュートリアルでは、検索拡張生成 (RAG)と呼ばれるパターンを使用する大規模言語モデル (LLM) チャットボットを構築します。

RAG で構築されたチャットボットは、ChatGPT などの汎用会話モデルが持ついくつかの制限を克服できます。特に、以下のことについて議論したり質問に答えたりすることができます。

  • 組織に固有の情報。
  • トレーニング データセットの一部ではなかったイベント、または LLM がトレーニングを終了した後に発生したイベント。

追加の利点として、RAG は LLM を事実に基づいて「根拠づける」のに役立ち、返答をでっち上げたり「幻覚」を起こしたりする可能性が低くなります。

これを達成するための秘訣は、LLM から回答を得るために 2 段階のプロセスを使用することです。

  • まず、検索フェーズで、ユーザーのクエリに対して 1 つ以上のデータ ソースが検索されます。この検索で見つかった関連文書が取得されます。これにはElasticsearchインデックスを使用するのが最適なオプションであり、キーワード、稠密ベクトル検索方法と疎ベクトル検索方法、さらにはそれらのハイブリッド組み合わせから選択できます。
  • 次に、生成フェーズでは、ユーザーのプロンプトが拡張され、最初のフェーズで取得されたドキュメントが含まれるようになり、取得された情報からユーザーの質問に対する回答を見つけるための LLM への指示が追加されます。質問に追加されたコンテキストを含む拡張プロンプトは、元のクエリの代わりに LLM に送信されます。

チュートリアルの構造

このチュートリアルは主に 2 つの部分で構成されています。

最初の部分では、Python バックエンドと React フロントエンドを備えた完全なアプリケーションであるChatbot RAG App の例を実行する方法を学習します。

サンプル アプリケーションを起動して実行したら、このチュートリアルの 2 番目の部分では、サンプル コードを独自のニーズに合わせて調整できるように、RAG 実装のさまざまなコンポーネントについて説明します。

次へ

要件

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう