取得するデータを準備する
Tip
詳細については、「 テキストと画像 」タブを参照してください。
検索は、検索可能にされた情報のみを検索できます。 RAG アプリケーションが質問に答える前に、ソース データを準備する インデックス作成パイプライン が必要です。
インデックス作成パイプラインは、通常、次のタスクを実行します。
- ソース テキストを抽出します。
- テキストを集中した通路にチャンクします。
- テキスト トークンを、セマンティック属性をカプセル化する埋め込みベクターとしてエンコードします。
- 埋め込みの検索に使用できるインデックスを作成します。
これらの各タスクについて詳しく見ていきましょう。
ソース データの選択と処理
RAG ナレッジ ソースには、製品マニュアル、ポリシー、Web ページ、データベース レコード、サポート チケット、またはその他の承認済みコンテンツが含まれる場合があります。 準備プロセスには、通常、次の手順が含まれます。
- 各ソースからコンテンツを読み込みます。
- PDF ファイル、プレゼンテーション、Web ページ、テーブルなどの形式から便利なテキストと構造を抽出します。
- 繰り返しヘッダー、ナビゲーション テキスト、または質問に答えるのに役立たないその他の要素を削除して、コンテンツをクリーンアップします。
- タイトル、ソース URL、カテゴリ、アクセス許可、最終更新日などのメタデータを追加します。
ソースの品質が重要です。 重複したドキュメント、古いドキュメント、または矛盾したドキュメントは、取得が不十分で信頼性の低い回答につながる可能性があります。 アクセス制御も不可欠です。ユーザーは、表示が許可されているコンテンツのみを取得する必要があります。
コンテンツをチャンクに分割する
多くの場合、ドキュメントは大きすぎるため、モデルに完全に送信する必要があります。 それらはチャンクと呼ばれる小さな通路に分 かれています。 各チャンクには、特定のトピックに焦点を当てたまま、意味のある十分なコンテキストが含まれている必要があります。
たとえば、旅行ポリシーは、フライト、ホテル、食事、地上輸送用の個別のチャンクにセクションごとに分割できます。 ホテルの制限に関する質問は、プロンプトにポリシー全体を追加せずにホテル セクションを取得できます。
チャンクにはトレードオフが伴います。
- チャンクが大きすぎると、無関係な情報が含まれる可能性があり、モデルのコンテキスト ウィンドウの多くが使用されます。
- チャンクが小さすぎると、ステートメントを理解するために必要な見出し、定義、またはその他の情報から分離できます。
多くの場合、チャンクは少し重なって、重要なコンテキストが境界で失われないようにします。
埋め込みを作成する
RAG ソリューションでは、通常、 埋め込みモデルを 使用して各チャンク を埋め込みに変換します。これは、コンテンツのセマンティック特性を表す数値ベクトルです。 類似した意味を持つチャンクには、異なる単語を使用する場合でも、ベクトル空間内で互いに近い埋め込みがあります。
データのインデックスを作成する
このソリューションは、チャンク、その埋め込み、および有用なメタデータを検索インデックスまたはベクター対応データ ストアに格納します。 インデックスは次をサポートする場合があります。
- キーワード検索。これは、正確な単語、識別子、または製品コードが重要な場合に有効です。
- ベクトル検索。セマンティックに類似したコンテンツを検索します。
- キーワード検索とベクター検索を組み合わせたハイブリッド検索。
データの準備は 1 回限りではありません。 インデックス作成パイプラインでは、新しいコンテンツを追加し、変更されたコンテンツを更新し、無効になったコンテンツを削除して、取得に現在の信頼できるソースが反映されるようにする必要があります。