メインコンテンツまでスキップ

DatabricksのRAG(Retrieval Augmented Generation)

Retrieval-augmented generation (RAG) は、大規模言語モデル (LLM) とリアルタイムデータ retrieval を組み合わせて、より正確で最新かつ文脈的に関連性のある応答を生成する強力な手法です。

このアプローチは、専有情報、頻繁に変更される情報、またはドメイン固有の情報に関する質問に答える場合に特に役立ちます。

検索拡張生成とは?

最も単純な形式では、RAGエージェントは次の処理を行います。

  1. 取得 : ユーザーの要求は、ベクトル ストア、キーワード検索、SQL データベースなどの外部ナレッジ ベースに対してクエリを実行するために使用されます。目標は、LLM の応答の裏付けとなるデータを取得することです。
  2. 拡張 : サポート データは、多くの場合、LLM への追加の書式設定と指示を含むテンプレートを使用して、ユーザーの要求と組み合わされてプロンプトが作成されます。
  3. 生成 : プロンプトは LLM に渡され、ユーザーの要求に対する応答が生成されます。

ユーザー要求からデータの取得と応答までのRAGアプリケーションの流れ。

RAGの利点

RAG は、次の方法で LLM を改善します。

  • 独自の知識: 特定分野の質問に答えるため、LLM の初期学習に使用されていない独自の情報(メモ、メール、文書など)を RAG に含めることができます。
  • 最新情報: RAGアプリケーションは、更新されたナレッジベースからの情報をLLMに提供できます。
  • 情報源の引用: RAG を利用すると、LLM は特定の情報源を引用することができ、ユーザーが回答の正確さを確認できます。
  • データセキュリティとアクセス制御リスト(ACL): ユーザー認証情報に基づいて個人情報や専有情報が選択的に取得されるように検索ステップを設計できます。

RAGコンポーネント

一般的なRAGアプリケーションには、いくつかの段階があります。

  1. データパイプライン :ドキュメント、テーブル、またはその他のデータを前処理してインデックスを作成し、迅速かつ正確に取得します。

  2. RAGチェーン(Retrieval、Augmentation、Generation): 一連のステップ(またはチェーン)を呼び出して、次のことを行います。

    • ユーザーの質問を理解します。
    • サポート データを取得します。
    • プロンプトをサポートデータで補強します。
    • 拡張プロンプトを使用して LLM から応答を生成します。
  3. 評価とモニタリング :RAGアプリケーションを評価して、その品質、コスト、レイテンシを判断し、ビジネス要件を満たしていることを確認します。

  4. ガバナンスとLLMOps :データリネージやアクセス制御など、各コンポーネントのライフサイクルを追跡および管理します。

RAGアプリケーションコンポーネントの図。

RAGデータの種類:構造化データと非構造化データ

RAG アーキテクチャでは、非構造化サポートデータと構造化サポートデータのいずれかを使用できます。RAG で使用するデータはユースケースによって異なります。

非構造化データ: 特定の構造や組織を持たないデータ。

  • PDF
  • Google/Office ドキュメント
  • Wiki
  • 画像
  • 動画

構造化データ: データベースのテーブルなど、特定のスキーマに従って行と列に配置された表形式のデータ。

  • BI またはデータウェアハウスシステムの顧客レコード
  • SQL データベースのトランザクションデータ
  • アプリケーション API(SAP、Salesforce など)から取得したデータ

評価とモニタリング

評価とモニタリングは、RAG アプリケーションが品質、コスト、レイテンシーの要件を満たしているかどうかを判断するのに役立ちます。評価は開発中に行われ、モニタリングはアプリケーションが本番環境にデプロイされた後に行われます。

非構造化データに対するRAGには、品質に影響を与える多くの要素があります。たとえば、データフォーマットの変更は、取得されたチャンクや、関連する応答を生成するLLMの能力に影響を与える可能性があります。そのため、アプリケーション全体に加えて、個々のコンポーネントを評価することが重要です。

詳細については、Mosaic AI エージェント評価とはを参照してください。

Databricks 上の RAG

Databricksは、RAG開発のための以下のようなエンドツーエンドのプラットフォームを提供しています。

次のステップ