Azure OpenAI Service を使用した検索拡張生成 (RAG) を理解する

完了

Azure OpenAI を利用した RAG を使用すると、開発者はサポートされている AI チャット モデルを使用できます。これにより、特定の情報源を参照して応答を得ることができます。 この情報を追加すると、モデルは、提供された特定のデータとその事前トレーニング済みの知識の両方を参照して、より効果的な応答を提供できます。

Azure OpenAI を利用すると、事前トレーニング済みのモデルを独自のデータ ソースに接続して RAG を使用できるようになります。 独自のデータに基づく Azure OpenAI では、Azure AI 検索の検索機能を利用して、関連するデータ チャンクをプロンプトに追加します。 データが AI 検索インデックスに含まれると、独自のデータに基づく Azure OpenAI では次の手順が行われます。

  1. ユーザー プロンプトを受信します。
  2. プロンプトの関連するコンテンツと意図を特定します。
  3. そのコンテンツと意図を使用して検索インデックスにクエリを実行します。
  4. システム メッセージとユーザー プロンプトと共に、検索結果チャンクを Azure OpenAI プロンプトに挿入します。
  5. プロンプト全体を Azure OpenAI に送信します。
  6. 応答とデータ参照 (存在する場合) をユーザーに返します。

既定で、独自のデータに基づく Azure OpenAI では、モデルがデータのみを使用して応答することが推奨されますが、必要なわけではありません。 この設定は、データを接続するときにオフにできます。その結果、モデルがデータより事前トレーニング済みの知識を使用することを選択する可能性があります。

微調整とRAG

微調整は、追加のトレーニング データのデータセットを含む gpt-35-turbo など、既存の基本モデルをトレーニングすることによってカスタム モデルを作成するために使用される手法です。 微調整を行うと、プロンプト エンジニアリングのみの場合より高い品質の要求が得られ、プロンプトに収まらない大きな例でモデルをカスタマイズし、ユーザーは、より少ない例で同じ高品質の応答を得ることができます。 しかし、微調整のプロセスはコストと時間の両方を要するため、必要なユース ケースにのみ使用する必要があります。

独自のデータに基づく Azure OpenAI を使用した RAG では、引き続きステートレス API を使用してモデルに接続します。これにより、データを使用してカスタム モデルをトレーニングする必要がなくなり、AI モデルとの対話が簡略化されます。 AI 検索では最初にプロンプトに回答するのに役立つ情報を見つけ、それをグラウンディング データとしてプロンプトに追加し、Azure OpenAI ではその情報に基づいて応答を形成します。