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

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

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

要件

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

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

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

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

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

  • 反復を開始する品質のベースライン測定値を確立します

Databricks 、最も単純なRAGアーキテクチャを使用してPOCを構築することを推奨し Databricks 各パラメーターに推奨されるデフォルトを使用します。

この推奨事項は、RAGアプリケーション内でチューニングできるパラメーターの組み合わせが数百あるためです。 これらのチューニングに何週間も費やすのは簡単ですが、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_name00_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 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をテストしてもらうことで、評価セットに多様な視点を含めることが重要です。