ステップ 2.POC をデプロイして関係者のフィードバックを収集する
このステップの最後には、 エージェント評価レビューアプリを デプロイし、関係者がPOCをテストしてフィードバックを提供できるようにします。 ステークホルダーの使用状況とフィードバックの詳細なログは、レイクハウスのDelta Tablesに送られます。
要件
「前提条件: 収集要件」のデータは、レイクハウスの Unity Catalog ボリューム内で使用できます。
このセクションのサンプル コードについては、 GitHub リポジトリ を参照してください。
概念実証RAGアプリケーション
評価駆動型開発の最初のステップは、概念実証 (POC) を構築することです。 POC には、次の利点があります。
RAGを使用したユースケースの実現可能性について方向性を提供します
利害関係者から初期フィードバックを収集できるため、評価セットの最初のバージョンを作成できます
反復を開始する品質のベースライン測定値を確立します
Databricks 、最も単純なRAGアーキテクチャを使用してPOCを構築することを推奨し Databricks 各パラメーターに推奨されるデフォルトを使用します。
この推奨事項は、RAGアプリケーション内でチューニングできるパラメーターの組み合わせが数百あるためです。 これらのチューニングに何週間も費やすのは簡単ですが、RAGを体系的に評価する前にそれを行うと、 POCドゥームループと呼ばれるもの、つまり設定を反復してしまい、改善が行われたかどうかを客観的に知る方法がなく、その間、ステークホルダーはレビューを待ちきれずに座っていることになります。
このチュートリアルの POC テンプレートは、高品質のイテレーションを念頭に置いて設計されています。 これらは、Databricks の研究チームが RAG の品質を向上させるために調整することが重要であることを示した内容に基づいてパラメーター化されます。 これらのテンプレートは、「魔法のようにRAGを作る3行のコード」ではなく、評価主導の開発ワークフローの次のステップで品質を調整できる、適切に構造化されたRAGアプリケーションです。
これにより、POC を迅速にデプロイしながら、コードを書き直すことなく、質の高いイテレーションに迅速に移行できます。
以下は、POCアプリケーションの技術アーキテクチャです。
注:
デフォルトでは、POC は Mosaic AI 基盤モデル Serving で利用可能なオープンソース モデルを使用します。ただし、POCはMosaic AI Model Serving 任意の基盤モデル をサポートする を使用しているため、モデルサービングでそのモデルを設定し、embedding_endpoint_name
llm_endpoint_name
00_config
ノートブックの と を置き換えるだけで、別のモデルを使用するのは簡単です。
で利用可能な他のオープンソースモデルについては、 プロビジョニング スループット 基盤モデルのAPIsDatabricks Marketplace に従ってください。
Create_OpenAI_External_Model ノートブックまたは 外部モデルMosaic AI Model Serving に従って、サポートされているサードパーティ ホスト型モデル(Azure OpenAI、OpenAI、Cohere 、Anthropic 、Google Geminiなど)を参照してください。
フィードバックを収集するためのPOCをデプロイするステップ
次のステップは、POC 生成AI アプリケーションを実行およびデプロイする方法を示しています。 デプロイすると、レビュー アプリへの URL を取得し、それを関係者と共有してフィードバックを収集できます。
データの種類に基づいて、 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 で見つけることができます。必要に応じて、デフォルト パラメーターを確認します。
上記で選択した POC ディレクトリ内の
00_config
ノートブックを開き、データパイプラインと RAG チェーンの POC のアプリケーション デフォルト パラメーターを表示します。重要
Databricks推奨されるデフォルト パラメーターは、完璧を意図したものではなく、出発点として役立ちます。このワークフローの次のステップでは、これらのパラメーターの反復処理について説明します。
構成を検証します。
01_validate_config
を実行して、構成が有効であり、すべてのリソースが使用可能であることを確認します。rag_chain_config.yaml
ファイルがディレクトリに表示され、アプリケーションのデプロイに使用されます。データパイプラインを実行します。
POC データパイプラインは、 に基づくDatabricks ノートブックです。Apache Spark
02_poc_data_pipeline
ノートブックを開き、[実行すべて]を押してパイプラインを実行します。パイプラインは、次の処理を行います。UCボリュームから未加工のドキュメントをロードします
各ドキュメントを解析し、結果を Delta テーブルに保存します
各ドキュメントをチャンク化し、結果を Delta テーブルに保存します
ドキュメントを埋め込み、Mosaic AI Vector Searchを使用してベクターインデックスを作成します
データパイプラインに関するメタデータ (出力テーブルや構成など) は、次の MLflowログに記録されます。
出力を調べるには、ノートブックの下部にある 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
POC チェーンをレビューアプリにデプロイします。
デフォルトのPOCチェーンは、LangChainを使用して構築されたマルチターンカンバセーションRAGチェーンです。
注:
POC チェーンは、MLflow コードベースのログ記録を使用します。 コードベースのロギングの詳細については、「エージェントのログと登録AI」を参照してください。
03_deploy_poc_to_review_app
ノートブックを開くノートブックの各セルを実行します。
MLflow トレースは、POC アプリケーションの動作を示します。 入力された質問をユースケースに関連するものに調整し、セルを再実行してアプリケーションを「バイブチェック」します。
デフォルトの指示をユースケースに関連するものに変更します。 これらはレビューアプリに表示されます。
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)
デプロイメントセルを実行して、レビューアプリケーションへのリンクを取得します。
Review App URL: https://<your-workspace-url>.databricks.com/ml/review/<uc-catalog>.<uc-schema>.<uc-model-name>/<uc-model-version>
レビューアプリにアクセスする権限を個々のユーザーに付与します。
Databricks 以外のユーザーにアクセス権を付与するには、「レビュー アプリを使用するためのアクセス許可を設定する」のステップに従います。
レビューアプリをテストするには、自分でいくつかの質問をし、フィードバックを提供してください。
注:
MLflow トレースとレビュー アプリからのユーザーのフィードバックは、構成したカタログ スキーマの Delta テーブルに表示されます。 ログがこれらの Delta テーブルに表示されるまでに最大2時間かかる場合があります。
レビューアプリを関係者と共有する
これで、POC RAGアプリケーションを関係者と共有して、フィードバックを得ることができます。
重要
Databricksでは、POCを少なくとも3人のステークホルダーに配布し、それぞれに10〜20の質問をさせることを提案しています。 複数のステークホルダーにPOCをテストしてもらうことで、評価セットに多様な視点を含めることが重要です。