Azure OpenAI Service を使用した取得拡張世代 (RAG) について
Azure OpenAI を使用した RAG を使用すると、開発者はサポートされている AI チャット モデルを使用できます。これにより、特定の情報ソースを参照して応答を実現できます。 この情報を追加すると、モデルは、提供された特定のデータとその事前トレーニング済みの知識の両方を参照して、より効果的な応答を提供できます。
Azure OpenAI では、事前トレーニング済みのモデルを独自のデータ ソースに接続することで RAG を有効にします。 データの Azure OpenAI では、Azure AI Search の検索機能を利用して、関連するデータ チャンクをプロンプトに追加します。 データが AI Search インデックスに含まれると、データの Azure OpenAI は次の手順を実行します。
- ユーザー プロンプトを受け取ります。
- プロンプトの関連コンテンツと意図を決定します。
- そのコンテンツと意図を使用して検索インデックスにクエリを実行します。
- Azure OpenAI プロンプトに、システム メッセージとユーザー プロンプトと共に検索結果チャンクを挿入します。
- プロンプト全体を Azure OpenAI に送信します。
- 応答とデータ参照 (存在する場合) をユーザーに返します。
既定では、データに対する Azure OpenAI は、データのみを使用して応答するようにモデルを推奨しますが、必要ありません。 この設定は、データを接続するときに選択されていない可能性があるため、モデルがデータに対して事前トレーニング済みの知識を使用することを選択する可能性があります。
微調整と RAG
微調整は、追加のトレーニング データのデータセットを使用して gpt-35-turbo
などの既存の基本モデルをトレーニングすることによって、カスタム モデルを作成するために使用される手法です。 微調整を行うと、プロンプト エンジニアリングのみよりも高品質の要求が発生する可能性があり、プロンプトに収まらない大きな例でモデルをカスタマイズし、ユーザーが同じ高品質の応答を得るための例を少なくすることができます。 ただし、微調整のプロセスはコストと時間の両方を要するため、必要なユース ケースにのみ使用する必要があります。
データに対する Azure OpenAI での RAG では、ステートレス API を使用してモデルに接続します。これにより、データを使用してカスタム モデルをトレーニングする必要がなく、AI モデルとの対話が簡略化されます。 AI Search は、最初にプロンプトに応答するのに役立つ情報を検索し、その情報をグラウンド データとしてプロンプトに追加し、その情報に基づいて Azure OpenAI が応答を形成します。