このチュートリアル シリーズでは、Azure AI Search で RAG ソリューションを構築するための従来のパターンを示します。 クラシック RAG では元のクエリ パイプラインが使用され、結果を LLM に渡して回答を定式化する場合を除き、パイプラインの末尾を除き、LLM 統合は行われません。
注
RAG ワークフローの エージェント検索 をお勧めしますが、従来の RAG の方が簡単です。 アプリケーションの要件を満たしている場合は、引き続き適切な選択肢です。
このシリーズでは
このシリーズでは、関連性を最大化し、コストを最小限に抑えるためのコンポーネント、依存関係、最適化について説明します。
サンプル データは、Azure Storage にアップロードされた PDF のコレクションです。 この内容は NASA の「地球」という無料の電子書籍からのものです。
サンプル コードはこちらの Python ノートブックにありますが、このシリーズの記事はコンテキスト、分析情報、代替アプローチを調べる場合に使用することをお勧めします。
このシリーズの演習
埋め込みとチャットのモデルを選択する
会話検索用のインデックスを設計する
検索可能なコンテンツの読み込み、チャンク化、埋め込み、取り込みを行うインデックス作成パイプラインを設計する
クエリとチャット モデルを使って検索可能なコンテンツを取得する
関連性を最大にする
ストレージとコストを最小にする
複雑さを減らすため、RAG パターンのいくつかの側面を省略しました。
チャット履歴とコンテキストの管理はありません。 通常、チャット履歴はグラウンディング データとは別に格納および管理され、これは手順とコードが増えることを意味します。 このチュートリアルでは、LLM と既定の LLM エクスペリエンスからのアトミックな質問と回答を想定しています。
結果に対するユーザー セキュリティのユーザーごとの制御はありません ("セキュリティによるトリミング" と言います)。 詳細とリソースについては、セキュリティによるトリミングから始めて、記事の最後にあるリンクを確認してください。
このシリーズでは、RAG ソリューションの開発の基礎について説明します。 基本を理解したら、アクセラレータや他のコード サンプルに進んでください。より高いレベルの抽象化を提供するものや、それ以外で運用環境やより複雑なワークロードに適したものがあります。
RAG に Azure AI 検索を使用する理由
チャット モデルには、要求で受け入れられるデータの量に関して制約があります。 LLM に渡されるコンテンツの "品質" が RAG ソリューションの成功を左右する可能性があるため、Azure AI 検索を使う必要があります。
チャット モデルに最高品質の入力を提供するため、Azure AI Search は、AI 統合と包括的な関連性チューニングを含むクラス最高の検索エンジンを備えています。 検索エンジンでは、ベクトル類似性検索 (複数のアルゴリズム)、キーワード検索、あいまい検索、地理空間検索、フィルターがサポートされています。 これらのコンポーネントをすべて含むハイブリッド クエリ要求を作成でき、各クエリが要求全体にどの程度寄与するかを制御できます。