コンテンツにスキップ

リトリーバル拡張生成 (RAG)

はじめに

リトリーバル拡張生成 (RAG) は、テキスト生成を強化するためにリトリーバルメカニズムと生成モデルを統合した自然言語処理における革新的なアプローチです。

既存のソースからの外部知識を取り入れることで、RAGは文脈に関連し、情報豊かなテキストを生成するという課題に対処します。この統合により、RAGは生成されたテキストが事実情報と文脈に基づいていることを保証することで、従来の生成モデルの限界を克服します。RAGは、生成されたテキストに最も関連性の高い情報のみを効率的に取得し組み込むことで情報過多の問題を解決することを目指しており、これにより一貫性と正確性が向上します。全体として、RAGはNLPにおける重要な進展を示しており、テキスト生成に対するより堅牢で文脈を意識したアプローチを提供します。

この技術の応用例には、知識ベースを使用してサポートリクエストに応答するカスタマーサービスチャットボットなどがあります。

リトリーバル拡張生成 (RAG) の文脈において、知識シーディングは生成プロセスに既存のソースからの外部情報を組み込むことを含み、クエリはこれらのソースから関連する知識を取得して一貫性があり文脈に正確なテキスト生成を促すメカニズムを指します。両者は以下に示されています。

知識シーディング

図 1: 知識シーディング

  1. クライアントアップロード: ドキュメントをAPIエンドポイントにPOSTリクエストで送信します。
  2. 入力処理: Workersを使用して受信リクエストを処理し、処理バックログを追加するためにQueuesにメッセージを送信します。
  3. バッチ処理: Queuesを使用して、下流のオーバーロードを防ぐために入力ドキュメントをバッチで処理するコンシューマーをトリガーします。
  4. 埋め込み生成: ドキュメントのためにWorkers AIテキスト埋め込みモデルを呼び出して埋め込みベクトルを生成します。
  5. ベクトルストレージ: 埋め込みベクトルをVectorizeに挿入します。
  6. ドキュメントストレージ: 永続的なストレージのためにドキュメントをD1に挿入します。
  7. Ack/Retryメカニズム: 各ドキュメントのためにコンシューマー内でQueues Runtime APIを使用して成功/エラーを信号します。Queuesは、必要に応じて再試行をスケジュールします。

知識クエリ

図 2: 知識クエリ

  1. クライアントクエリ: クエリをAPIエンドポイントにGETリクエストで送信します。
  2. 埋め込み生成: 受信クエリのためにWorkers AIテキスト埋め込みモデルを呼び出して埋め込みベクトルを生成します。
  3. ベクトル検索: クエリのベクトル表現を使用してVectorizeをクエリし、関連するベクトルを取得します。
  4. ドキュメントルックアップ: Vectorizeからの検索結果に基づいてD1から関連するドキュメントを取得します。
  5. テキスト生成: 元のクエリと取得したドキュメントの両方を文脈としてWorkers AIテキスト生成モデルに渡して応答を生成します。

関連リソース