Step 2: Deploy POC to collect stakeholder feedback — Databricks Generative AI Cookbook [2024/6/25時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricks生成AIクックブックのコンテンツです。
ステップ2: ステークホルダーのフィードバックを収集するPOCのデプロイ
想定時間: 30-60分
要件
- ステップ1: コードレポジトリのクローンと計算資源の作成のステップを完了している。
- お使いのレイクハウスのUnity Catalogボリュームで、要件にあるデータが利用できるようになっている。
期待される成果
このステップの最後には、ステークホルダーがテストし、あなたのPOCに対するフィードバックを提供できるようにするエージェント評価レビューアプリをデプロイすることになります。ステークホルダーの使用方法に関する詳細なログと彼らのフィードバックは、あなたのレイクハウスのDeltaテーブルに流れ込みます。
概要
評価ドリブン開発の最初のステップは、POCを構築することです。POCはいくつかのメリットを提供します:
- RAGを用いたあなたのユースケースの実現可能性に関して指導になるビューを提供する
- あなたの評価セットの初期バージョンの作成を可能にするステークホルダーからの初期フィードバックの収集を可能にする
- 試行錯誤を開始するための品質のベースライン指標を確立できる
Databricksでは、最もシンプルなRAGアーキテクチャとそれぞれのノブ/パラメーターの推奨デフォルト値を用いてPOCを構築することをお勧めします。
注意
なぜシンプルなPOCからスタートするのか? あなたのRAGアプリケーションで調整できるノブには数百の組み合わせが存在します。これらのノブの調整に簡単に数週間を費やすことができますが、システマティクにRAGを評価できるようになる前にそうしてしまうと、POCの破滅的ループと呼ばれるものに陥ってしまうことになります。ステークホルダーがイライラして座っている中であなたは設定を試行錯誤しますが、改善しているのかどうかを客観的に知る方法がありません。
このクックブックのPOCテンプレートは、品質の試行錯誤を念頭に置いて設計されています。すなわち、我々の研究によってRAGの品質を改善するために調整することが重要であることが明らかになったノブでパラメータ化されています。言い換えると、これらテンプレートは"RAGを魔法のように作り出す3行のコード"ではなく、むしろこれらは評価ドリブン開発ワークフローのステップに沿って、品質を調整できる適切に構造化されたRAGアプリケーションです。
これによって、クイックにPOCをデプロイできつつも、コードを書き直すことなしに品質のイテレーションにクイックに移行することができます。
以下にPOCアプリケーションの技術的アーキテクチャを示します:
注意
デフォルトでは、このPOCではMosaic AI 基盤モデルサービングで利用できるオープンソースを使用します。しかし、このPOCではすべての基盤モデルをサポートするMosaic AIモデルサービングを使うので、別のモデルを使用することは簡単です - シンプルにモデルサービングでそのモデルを設定し、00_config
ノートブックのembedding_endpoint_name
とllm_endpoint_name
を置き換えます。
手順
-
あなたのデータタイプに応じたA_POC_appの中にあるPOCコードフォルダーを開く
ファイルタイプ ソース POCアプリケーションフォルダー PDFファイル UCボリューム pdf_uc_volume Powerpointファイル UCボリューム pptx_uc_volume DOCXファイル UCボリューム docx_uc_volume テキスト/マークダウン/HTMLコンテンツを伴うJSONファイルとメタデータ UCボリューム json_uc_volume 上記の要件に合わない場合は、ご自身のファイルタイプで動作するように上のPOCディレクトリにある
02_poc_data_pipeline
のパーシング関数(parser_udf
)をカスタマイズすることができます。ティップス
以下で参照するノートブックは、あなたが選択した特定のPOCに対して相対的なものとなります。例えば、pdf_uc_volume
を選択している状態で00_config
を参照する際、適切な00_config
ノートブックはA_POC_app/pdf_uc_volume/00_config
となります。 -
デフォルトパラメーターをレビューする(オプション)
データパイプラインとRAGチェーンに対するPOCアプリケーションのデフォルトパラメーターを確認するために、上で選択したPOCディレクトリの
00_config
ノートブックを開きます。注意
重要: 我々の推奨デフォルトパラメーターは完璧なものではなく、それを意図したものでもありません。むしろ、スタート地点です - 我々のワークフローの次のステップは、これらのパラメーターに対する試行錯誤をガイドするものです。 -
設定を検証する
あなたの設定が適切ですべてのリソースが利用可能であることをチェックするために
01_validate_config
を実行します。あなたのディレクトリにrag_chain_config.yaml
ファイルが出現します - アプリケーションをデプロイするためにステップ4でこちらを使用します。 -
データパイプラインを実行する
POCのデータパイプラインはApache SparkをベースとしたDatabricksノートブックです。パイプラインを実行するために
02_poc_data_pipeline
を開き、Run Allを押します。- UCボリュームから生のドキュメントをロード
- それぞれのドキュメントをパースし、Deltaテーブルに結果を保存
- それぞれのドキュメントのチャンクを作成し、Deltaテーブルに結果を保存
- Mosaic AI Vector Searchを用いてドキュメントのエンベディングを作成し、ベクトルインデックスを作成
データパイプラインのメタデータ(出力テーブル、設定など)はMLflowに記録されます:
ノートブックの下の方にあるDeltaテーブル/ベクトルインデックスの出力へのリンクを参照することで出力を調査することができます:
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のコードベースのロギングを使用します。よりコードベースのロギングを理解するには、ドキュメントをご覧ください。-
03_deploy_poc_to_review_app
ノートブックを開きます -
ノートブックのそれぞれのセルを実行します
-
POCアプリケーションがどのように動作しているのかを示すMLflow Traceが表示されます。あなたのユースケースに適した質問になるように入力を調整し、アプリケーションの"vibe check"のためにセルを再実行します。
-
あなたのユースケースに合わせてデフォルトの指示を修正します。これらはレビューアプリに表示されます。
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 Traceとレビューアプリからのユーザーフィードバックは、設定したカタログ/スキーマのDeltaテーブルに表示されます。Deltaテーブルにログが現れるまでには最大2時間を要します。 -
ステークホルダーにレビューアプリを共有する
フィードバックを得るために、ステークホルダーにPOCのRAGアプリケーションを共有できるようになりました。
重要
少なくとも3人のステークホルダーにPOCを配布し、それぞれに10-20の質問をすることをお願いすることをお勧めします。あなたの評価セットに広範な観点を盛り込めるように、複数のステークホルダーにPOCをテストしてもらうことが重要です。
- 目次
- 前のセクション: ステップ1: コードレポジトリのクローンと計算資源の作成
- 次のセクション: ステップ3: ステークホルダーのフィードバックから評価セットを作成