RAG データパイプライン description and processing ステップ

この記事では、RAGアプリケーションで使用する非構造化データの準備について説明します。 非構造化データとは、テキストや画像を含む PDF ドキュメントや、オーディオやビデオなどのマルチメディア コンテンツなど、特定の構造や構成を持たないデータを指します。

非構造化データには事前定義されたデータモデルやスキーマがないため、構造とメタデータのみに基づいてクエリを実行することは不可能です。 その結果、非構造化データには、生のテキスト、画像、オーディオ、またはその他のコンテンツから意味を理解して抽出できる手法が必要です。

データ準備中、RAGアプリケーションデータパイプラインは、生の非構造化データを取得し、ユーザーのクエリとの関連性に基づいてクエリを実行できる個別のチャンクに変換します。 データ前処理の主要なステップの概要を以下に示します。 各ステップには、チューニング可能なさまざまなノブがあります - これらのノブの詳細については、 RAGアプリケーションの品質を向上させるを参照してください。

RAG データパイプラインの基本コンポーネントの図。

非構造化データを取得するための準備

このセクションの残りの部分では、セマンティック検索を使用して非構造化データを取得するための準備プロセスについて説明します。 セマンティック検索は、ユーザー クエリのコンテキスト上の意味と意図を理解して、より関連性の高い検索結果を提供します。

セマンティック検索は、RAGアプリケーションの取得コンポーネントを非構造化データに実装する際に採用できるいくつかのアプローチの1つです。 これらのドキュメントでは、 取得ノブのセクションで別の取得戦略について説明します。

ステップ of a RAG application データパイプライン

以下は、非構造化データを使用するRAGアプリケーションのデータパイプラインの一般的なステップです。

  1. 生のドキュメントを解析する: 最初のステップでは、生データを使用可能な形式に変換します。 これには、PDFのコレクションからテキスト、表、画像を抽出したり、光学式文字認識(OCR)技術を使用して画像からテキストを抽出したりすることが含まれます。

  2. ドキュメントメタデータの抽出(オプション):場合によっては、ドキュメントタイトル、ページ番号、URL、その他の情報などのドキュメントメタデータを抽出して使用すると、取得ステップで正しいデータをより正確にクエリするのに役立ちます。

  3. チャンク ドキュメント: 解析されたドキュメントが埋め込みモデルと LLM のコンテキスト ウィンドウに収まるように、解析されたドキュメントを小さな個別のチャンクに分割します。 ドキュメント全体ではなく、これらのフォーカスされたチャンクを取得することで、LLM は応答を生成するためのよりターゲットを絞ったコンテキストを得ることができます。

  4. チャンクの埋め込み:セマンティック検索を使用するRAGアプリケーションでは、埋め込みモデルと呼ばれる特殊なタイプの言語モデルが、前のステップの各チャンクを、各コンテンツの意味をカプセル化する数値ベクトルまたは数値リストに変換します。 重要なのは、これらのベクトルは、表面的なキーワードだけでなく、テキストの意味的な意味を表していることです。 これにより、リテラルのテキスト一致ではなく、意味に基づく検索が可能になります。

  5. ベクターデータベース内のチャンクのインデックス作成: 最後のステップは、チャンクのベクター表現をチャンクのテキストとともにベクターデータベースにロードすることです。 ベクターデータベースは、埋め込みなどのベクターデータを効率的に保存および検索するように設計された特殊なタイプのデータベースです。 多数のチャンクでパフォーマンスを維持するために、ベクトルデータベースには通常、さまざまなアルゴリズムを使用して検索効率を最適化する方法でベクトル埋め込みを整理およびマッピングするベクトルインデックスが含まれています。 クエリ時には、ユーザーのリクエストがベクトルに埋め込まれ、データベースはベクトルインデックスを利用して最も類似したチャンクベクトルを見つけ、対応する元のテキストチャンクを返します。

類似性を計算するプロセスは、計算コストが高くなる可能性があります。 ベクトル検索などのベクトルインデックスDatabricks、多くの場合、高度な近似方法を使用して、埋め込みを効率的に整理およびナビゲートするメカニズムを提供することで、このプロセスを高速化します。これにより、各埋め込みをユーザーのクエリと個別に比較することなく、最も関連性の高い結果を迅速にランク付けできます。

データパイプラインの各ステップには、RAGアプリケーションの品質に影響を与えるエンジニアリング上の決定が含まれます。 たとえば、ステップ 3 で適切なチャンク サイズを選択すると、LLM は特定のコンテキスト化された情報を確実に受け取ることができ、ステップ 4 で適切な埋め込みモデルを選択すると、取得中に返されるチャンクの精度が決まります。

このデータ準備プロセスは、ユーザーがクエリを送信したときにトリガーされるオンライン ステップとは異なり、システムがクエリに応答する前に行われるため、オフライン データ準備と呼ばれます。