検索拡張生成による質問への回答のためのソリューションパターン
検索拡張生成を適用することで、ナレッジベース内の情報に基づいてユーザーの質問に答える生成型AIソリューションを作成することができます。
ユースケースと要件
RAGパターンは、質問に対する回答を、あなたが提供する情報で補強するための基盤モデルが必要な場合に役立ちます。 例えば、新製品にチャットボットを導入し、その製品のマニュアルに基づいて質問に回答させたいとします。
製品ドキュメントに基づく質問に回答するRAGソリューションには、以下のようなタスクが含まれるかもしれません
- ユーザーの質問に対する答えを製品マニュアルで探します。
- 製品マニュアルに基づいて回答を生成する。
- 回答が記載されていたドキュメントのトピックへのリンク。
- すべての質問と回答を保存する。
- 回答に関するユーザーのフィードバックを収集する。
- ドキュメントの作成者に否定的なフィードバックを伝える。
ソリューション・アーキテクチャー
RAGパターンには通常、以下のコンポーネントが含まれます
- ソース文書を含む知識ベース。
- 文書内のテキストをベクトル埋め込みに変換する埋め込みモデル。ベクトル埋め込みは数値表現である。
- 文書のベクトル埋め込みと、コンテンツを検索・取得するベクトルインデックスを格納するベクトルデータベース。
- ユーザーの質問、検索されたコンテンツ、回答作成の指示を組み合わせたテンプレート。
- 取得したコンテンツに基づいて、ユーザーの質問に対する回答を生成する基盤モデル。
完成したソリューションには、以下のコンポーネントも含まれる場合があります
- ユーザーが質問を投稿し、回答を受け取り、回答に対するフィードバックを提供できるユーザーインターフェースを備えたアプリ。
- 検索結果が質問にどの程度類似しているかではなく、質問にどの程度よく回答しているかによって、検索結果を並べ替える再ランキングモデル。
- 質問、回答、ユーザーからのフィードバックのログ。
- フィードバックをドキュメント作成者に提供する方法。ドキュメント作成者は、ソリューションがより良い回答を生成するようにドキュメントを更新できる。
- 不十分な回答に対して、最適な専門家を特定する方法。
例えば、以下の図は、ユーザーからのフィードバックに基づいてAIの回答を改善するためにコンテンツを適応させることで、RAGソリューションを最適化する方法を示しています。
ソリューションの導入
RAGパターンソリューションを実装するには、以下の主な手順に従います
- ベクターデータベースをセットアップする。
- ベクトルインデックスを作成します。
- プロンプトでベクトルインデックスを指定します。
- プロンプトを評価する。
- オプションのコンポーネントを追加します。
- パターンをAIサービスとして展開します。
- アプリケーションでAIサービスエンドポイントを呼び出します。
ツール
You can create a quick proof of concept in the Prompt Lab. ドキュメントファイルをアップロードし、インメモリベクターストアにベクターインデックスを作成することができます。 文書とのチャットを参照してください。 ベクターデータベースをセットアップすると、プロンプトで参照できるベクターインデックスを作成できます。 グラウンディング基盤モデルプロンプトにベクトル化されたドキュメントを追加する を参照してください。
RAGソリューションをQ&Aで加速させることができます。 アクセラレータは、RAGパターンを実装したサンプルプロジェクトであり、 Python のノートブックセットを使用しています。このセットは、お客様のソリューションに合わせてカスタマイズすることができます。 RAGアクセラレータとのQ&A を参照してください。
最適なRAGパターンの検索を自動化し、 AutoAI ツールを実行してRAGソリューションを構築することができます。 AutoAI automates the end-to-end flow from experimentation to deployment. AutoAI による RAG パターンの自動化をご覧ください。
ユーザーインターフェースをスキップして、REST API、 Python ライブラリ、または Node.js SDKを使用してコードを書くことができます。 watsonx Developer Hub をご覧ください。
詳細情報
親トピック: 生成型AIソリューションの計画