ステップ2. POCを展開して関係者のフィードバックを収集する

このステップの最後には、 エージェント評価レビュー アプリが展開され、関係者が POC をテストしてフィードバックを提供できるようになります。 利害関係者の使用状況とフィードバックの詳細なログは、レイクハウスの Delta テーブルに送信されます。

RAGアプリケーションの概念実証

要件

このセクションのサンプル コードについては、GitHub リポジトリを参照してください。

概念実証RAGアプリケーション

評価主導型開発の最初のステップは、概念実証 (POC) を構築することです。 POC には、次の利点があります。

  • RAGを使用したユースケースの実現可能性に関する方向性を提供します

  • 関係者から最初のフィードバックを収集し、評価セットの最初のバージョンを作成できます。

  • イテレーションを開始する品質のベースライン測定を確立します

Databricks 、最も単純な RAG アーキテクチャを使用して POC を構築することを推奨しており、各 構造体 にはDatabricksが推奨する デフォルト が使用されています。

この推奨事項は、RAG アプリケーション内で調整できる dump の組み合わせが何百通りもあるためです。 これらの調整に数週間を費やすのは簡単ですが、RAGを体系的に評価する前に調整を行うと、 POCドゥームループと呼ばれる状態に陥り、設定を反復しながらも、改善したかどうかを客観的に知る方法がなく、関係者がレビューを待ち焦がれています。

このクックブックの POC テンプレートは、品質の反復を念頭に置いて設計されています。 これらは、Databricks 研究チームが RAG 品質を向上させるために調整することが重要であると示した内容に基づいてパラメーター化されています。 これらのテンプレートは、「魔法のように RAG を作成する 3 行のコード」ではなく、評価主導型開発ワークフローの次のステップで品質を調整できる、適切に構造化された RAG アプリケーションです。

これにより、POC を迅速にデプロイできますが、コードを書き直すことなく、品質イテレーションにすばやく移行できます。

以下は、POC アプリケーションの技術アーキテクチャです。

POC アプリケーションのアーキテクチャ

注:

デフォルトでは、POC はMosaic AI基盤モデル Servingで利用可能なオープンソース モデルを使用します。 ただし、POC ではMosaic AI Model Serving あらゆる基盤モデル をサポートする を使用しているため、別のモデルを使用するのは簡単です。モデルサービングでそのモデルを構成し、embedding_endpoint_name の とllm_endpoint_name 00_configを置き換えるだけです。

フィードバックを収集するためにPOCを展開するステップ

次の手順では、POC 生成AIアプリケーションを実行およびデプロイする方法を示します。 デプロイ後、レビュー アプリへの URL を取得し、関係者と共有してフィードバックを収集できます。

  1. データの種類に基づいて 、A_POC_app 内の POC コード フォルダーを開きます。

    • PDF ファイルの場合は、 pdf_uc_volumeを使用します。

    • Powerpoint ファイルの場合は、 pptx_uc_volume.

    • DOCX ファイルの場合は、 docx_uc_volume.

    • テキスト、マークダウン、HTMLコンテンツ、メタデータを含むJSONファイルの場合は、 json_uc_volumeを使用します。

    データが上記の要件のいずれかを満たしていない場合は、上記の POC ディレクトリ内の02_poc_data_pipeline内の解析関数 (parser_udf) をカスタマイズして、ファイルの種類を操作できます。

    POC フォルダー内には、次のノートブックが表示されます。

    ノートブックファイル

    注:

    これらのノートブックは、選択した特定の POC に関連しています。 たとえば、 00_configへの参照が表示され、 pdf_uc_volumeを選択した場合、関連する00_configノートブックはA_POC_app/pdf_uc_volume/00_configにあります。

  2. 必要に応じて、デフォルトを確認します。

    上記で選択した POC ディレクトリ内の00_configライブラリを開き、データパイプラインと RAG チェーンの POC アプリケーション デフォルト ボディを表示します。

    重要

    Databricksが推奨する デフォルト は完璧ではありませんが、出発点としては役立ちます。 このワークフローの次のステップでは、これらの実行を繰り返す方法について説明します。

  3. 構成を検証します。

    01_validate_configを実行して、構成が有効であり、すべてのリソースが利用可能であることを確認します。 rag_chain_config.yaml ファイルがディレクトリに表示され、アプリケーションのデプロイに使用されます。

  4. データパイプラインを実行します。

    POC データパイプラインは、 をベースにしたDatabricks セットです。Apache Spark02_poc_data_pipelineを開き、 [すべて実行]を押してパイプラインを実行します。 パイプラインは次のことを実行します。

    • UCボリュームから未加工のドキュメントをロードします

    • 各ドキュメントを解析し、結果をDeltaテーブルに保存します。

    • 各ドキュメントをチャンク化し、結果をDeltaテーブルに保存します。

    • ドキュメントを埋め込み、Mosaic AI Vector Searchを使用してベクトルインデックスを作成します。

    出力テーブルや構成などのデータパイプラインに関するメタデータはMLflowに記録されます。

    データパイプラインを示すGIF

    出力を確認するには、タイムラインの下部近くにあるDelta Tables または vector indexes 出力へのリンクを探します。

    Vector index: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>_poc_chunked_docs_gold_index
    
    Output tables:
    
    Bronze Delta Table w/ raw files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_raw_files_bronze
    Silver Delta Table w/ parsed files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_parsed_docs_silver
    Gold Delta Table w/ chunked files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_chunked_docs_gold
    
  5. POC チェーンをレビュー アプリにデプロイします。

    デフォルトの POC チェーンは、LangChain を使用して構築されたマルチターン会話 RAG チェーンです。

    注:

    POC チェーンは MLflow コードベースのログ記録を使用します。 コードベースのログ記録の詳細については、「 コードベースのログ記録とシリアル化ベースのログ記録」を参照してください。

    1. 03_deploy_poc_to_review_appノートブックを開く

    2. ノートブックの各セルを実行します。

    3. MLflow トレースは、POC アプリケーションがどのように動作するかを示します。 入力質問をユースケースに関連するものに調整し、セルを再実行してアプリケーションの「雰囲気チェック」を行います。

      MLflow トレースを示す GIF
    4. デフォルトの手順をユースケースに合わせて変更します。 これらはレビューアプリに表示されます。

         instructions_to_reviewer = f"""## Instructions for Testing the {RAG_APP_NAME}'s Initial Proof of Concept (PoC)
      
         Your inputs are invaluable for the development team. By providing detailed feedback and corrections, you help us fix issues and improve the overall quality of the application. We rely on your expertise to identify any gaps or areas needing enhancement.
      
         1. **Variety of Questions**:
            - Please try a wide range of questions that you anticipate the end users of the application will ask. This helps us ensure the application can handle the expected queries effectively.
      
         2. **Feedback on Answers**:
            - After asking each question, use the feedback widgets provided to review the answer given by the application.
            - If you think the answer is incorrect or could be improved, please use "Edit Answer" to correct it. Your corrections will enable our team to refine the application's accuracy.
      
         3. **Review of Returned Documents**:
            - Carefully review each document that the system returns in response to your question.
            - Use the thumbs up/down feature to indicate whether the document was relevant to the question asked. A thumbs up signifies relevance, while a thumbs down indicates the document was not useful.
      
         Thank you for your time and effort in testing {RAG_APP_NAME}. Your contributions are essential to delivering a high-quality product to our end users."""
      
         print(instructions_to_reviewer)
      
    5. デプロイメント セルを実行して、レビュー アプリへのリンクを取得します。

      Review App URL: https://<your-workspace-url>.databricks.com/ml/review/<uc-catalog>.<uc-schema>.<uc-model-name>/<uc-model-version>
      
  6. レビューアプリにアクセスする権限を個々のユーザーに付与します。

    Databricks「レビュー アプリ ワークスペースへのアクセス許可を設定する」 の手順に従って、 以外のユーザーにアクセス権を付与できます。

  7. 自分でいくつかの質問をしてフィードバックを提供して、レビューアプリをテストします。

    注:

    MLflowトレースとレビュー アプリからのユーザーのフィードバックは、構成したカタログ スキーマのDeltaテーブルに表示されます。 ログがこれらのDeltaテーブルに表示されるまでには最大 2 時間かかる場合があります。

  8. レビューアプリを関係者と共有する

    POC RAGアプリケーションを関係者と共有して、フィードバックを得ることができるようになりました。

    重要

    Databricks では、POC を少なくとも 3 人の関係者に配布し、それぞれに 10 ~ 20 個の質問をしてもらうことを推奨しています。 複数の関係者に POC をテストしてもらい、評価セットに含める多様な視点を持つことが重要です。