エージェントアプリケーションの品質に関するフィードバックを得る

プレビュー

この機能はパブリックプレビュー段階です。

この記事では、Databricks レビュー アプリを使用して、 エージェント アプリケーションの品質に関するフィードバックを人間のレビュー担当者から収集する方法について説明します。 内容は次のとおりです。

  • レビュー アプリをデプロイする方法。

  • レビュアーがアプリを使用してエージェント アプリケーションの応答に関するフィードバックを提供する方法。

  • 専門家がログに記録されたチャットを確認して、アプリを使用して改善の提案やその他のフィードバックを提供する方法。

人間による評価では何が行われますか?

Databricks レビュー アプリは、専門家の利害関係者が LLM と対話できる環境 (つまり、会話、質問、フィードバックの提供など) で LLM をステージングします。 レビューアプリは、すべての質問、回答、フィードバックを推論テーブルに記録するため、LLMのパフォーマンスをさらに分析できます。 このように、レビューアプリは、アプリケーションが提供する回答の品質と安全性を確保するのに役立ちます。

利害関係者は、アプリケーション ボットとチャットして、それらの会話に関するフィードバックを提供したり、履歴ログ、キュレーションされたトレース、またはエージェントの出力に関するフィードバックを提供したりできます。

要件

  • 推論テーブル は、エージェントにサービスを提供するエンドポイントで有効にする必要があります。

  • 各人間のレビュー担当者は、レビュー アプリのワークスペースにアクセスできるか、SCIM を使用して Databricks アカウントに同期されている必要があります。 次のセクション レビュー アプリを使用するためのアクセス許可を設定するを参照してください。

  • 開発者は、 databricks-agents SDK をインストールして、アクセス許可を設定し、レビュー アプリを構成する必要があります。

    %pip install databricks-agents
    dbutils.library.restartPython()
    

レビュー アプリを使用するためのアクセス許可を設定する

注:

人間のレビュー担当者は、レビュー アプリを使用するためにワークスペースにアクセスする 必要はありません

Databricks アカウント内の任意のユーザーにレビュー アプリへのアクセス権を付与できます (レビュー アプリを含むワークスペースへのアクセス権がない場合でも)。

  • ワークスペースにアクセスできないユーザーの場合、アカウント管理者はアカウント レベルの SCIM プロビジョニングを使用して、ユーザーとグループを ID プロバイダーから Databricks アカウントに自動的に同期します。 また、これらのユーザーとグループを手動で登録して、 Databricksで ID を設定するときにアクセス権を付与することもできます。 ID プロバイダからのユーザーとグループの同期を参照してください。

  • レビュー アプリを含むワークスペースへのアクセス権を既に持っているユーザーの場合、追加の構成は必要ありません。

次のコード例は、エージェントのレビュー アプリに対するアクセス許可をユーザーに付与する方法を示しています。 users パラメーターは、Eメール アドレスの一覧を受け取ります。

from databricks import agents

# Note that <user_list> can specify individual users or groups.
agents.set_permissions(model_name=<model_name>, users=[<user_list>], permission_level=agents.PermissionLevel.CAN_QUERY)

チャット ログを確認するには、ユーザーに CAN_REVIEW 権限が必要です。

レビュー アプリをデプロイする

agents.deploy()を使用してエージェントをデプロイすると、レビューアプリが自動的に有効になり、デプロイされます。コマンドの出力には、レビュー アプリの URL が表示されます。 エージェントのデプロイに関する情報については、生成AIアプリケーションのエージェントのデプロイを参照してください。

ノートブックのコマンド出力からアプリを確認するためのリンク

デプロイメントへのリンクを失った場合は、 list_deployments()を使用して見つけることができます。

from databricks import agents

deployments = agents.list_deployments()
deployments

アプリのUIを確認する

レビュー アプリを開くには、表示された URL をクリックします。 レビューアプリのUIには、左側のサイドバーに3つのタブがあります。

レビュー アプリを開くと、手順ページが表示されます。

アプリの起動画面を確認する

レビュー担当者に指示を出す

レビュー担当者に表示される指示のカスタム テキストを提供するには、次のコードを使用します。

from databricks import agents

agents.set_review_instructions(uc_model_name, "Thank you for testing the bot. Use your domain expertise to evaluate and give feedback on the bot's responses, ensuring it aligns with the needs and expectations of users like yourself.")
agents.get_review_instructions(uc_model_name)
Pythonの例を指定したレビューアプリの説明書のスクリーンショット。

アプリとチャットしてレビューを送信する

アプリとチャットしてレビューを送信するには:

  1. 左側のサイドバーで ボットをテストをクリックします。

  2. ボックスに質問を入力して、キーボードの Return キーまたは Enter キーを押すか、ボックス内の矢印をクリックします。 アプリは、質問に対する回答と、回答を見つけるために使用したソースを表示します。

  3. アプリの回答を確認し、はいいいえ、または わからないを選択します。

  4. アプリは追加情報を求めます。 該当するボックスにチェックを入れるか、表示されたフィールドにコメントを入力します。

  5. また、応答を直接編集して、より適切な回答を提供することもできます。 レスポンスを編集するには、次のビデオに示すように、 Edit responseをクリックし、ダイアログで変更を加えて Saveをクリックします。

    応答を編集する方法
  6. 完了をクリックして、フィードバックを保存します。

  7. 追加のフィードバックを提供するために、引き続き質問をしてください。

次の図は、このワークフローを示しています。

  1. レビューアプリを使用して、レビュアーはエージェントアプリケーションとチャットします。

  2. レビューアプリを使用して、レビュアーはアプリケーションの応答に関するフィードバックを提供します。

  3. すべてのリクエスト、レスポンス、フィードバックは推論テーブルに記録されます。

専門家がエージェント アプリケーションとチャットしてフィードバックを提供するレビュー アプリを実行します。

チャットログを専門のレビュアーによる評価に利用できるようにする

ユーザーが REST API またはレビュー アプリを使用してアプリを操作すると、すべてのリクエスト、レスポンス、追加のフィードバックが推論テーブルに保存されます。 推論テーブルは、モデルが登録されたのと同じ Unity Catalog カタログとスキーマにあり、<model_name>_payload<model_name>_payload_assessment_logs<model_name>_payload_request_logs という名前が付けられています。 スキーマなど、これらのテーブルの詳細については、エージェント拡張推論テーブルを参照してください。

これらのログをレビューアプリにロードして専門のレビュー担当者による評価を受けるには、まず request_id を見つけて、次のようにその request_id のレビューを有効にする必要があります。

  1. <model_name>_payload_request_logs推論テーブルからレビューするrequest_idを見つけます。推論テーブルは、モデルが登録されたのと同じ Unity Catalog カタログとスキーマにあります。

  2. 次のようなコードを使用して、レビュー ログをレビュー アプリに読み込みます。

    from databricks import agents
    
    agents.enable_trace_reviews(
      model_name=model_fqn,
      request_ids=[
          "52ee973e-0689-4db1-bd05-90d60f94e79f",
          "1b203587-7333-4721-b0d5-bba161e4643a",
          "e68451f4-8e7b-4bfc-998e-4bda66992809",
      ],
    )
    
  3. 結果セルには、選択したログがレビュー用に読み込まれたレビュー アプリへのリンクが含まれています。

専門家によるレビューのためにチャットログがロードされたレビューアプリ

他のユーザーとアプリとのインタラクションのログを専門家がレビューする

以前のチャットのログを確認するには、ログがレビュー用に有効になっている必要があります。 チャットログを専門のレビュー担当者による評価に利用できるようにするを参照してください。

  1. レビュー アプリの左側のサイドバーで、 レビューのためのチャットを選択します。 有効なリクエストが表示されます。

    レビュー用のチャットの有効化
  2. リクエストをクリックすると、レビューのために表示されます。

  3. 要求と応答を確認します。 このアプリには、参照用に使用したソースも表示されます。 これらをクリックすると、リファレンスを確認し、ソースの関連性に関するフィードバックを提供できます。

  4. 応答の品質に関するフィードバックを提供するには、 はいいいえ、または わからない を選択します。

  5. アプリは追加情報を求めます。 該当するボックスにチェックを入れるか、表示されたフィールドにコメントを入力します。

  6. また、応答を直接編集して、より適切な回答を提供することもできます。 レスポンスを編集するには、レスポンスを編集をクリックし、ダイアログで変更を加えて 保存をクリックします。 このプロセスを示すビデオについては、アプリとのチャットおよびレビューの送信を参照してください。

  7. 完了をクリックして、フィードバックを保存します。

次の図は、このワークフローを示しています。

  1. レビューアプリまたはカスタムアプリを使用して、レビュアーはエージェントアプリケーションとチャットします。

  2. すべての要求と応答は推論テーブルに記録されます。

  3. アプリケーション開発者は、 enable_trace_reviews([request_id]) ( request_id<model_name>_payload_request_logs 推論テーブルからのものです) を使用して、アプリのレビューにチャット ログを投稿します。

  4. レビューアプリを使用して、専門家がログをレビューし、フィードバックを提供します。 専門家のフィードバックは推論テーブルに記録されます。

レビュー担当者がレビューアプリまたはREST APIを操作してフィードバックを提供するトレースレビューを実行します。

要求ログ・テーブルでmlflow.evaluate()を使用します

次のノートブックは、 mlflow.evaluate()を使用してレビュー アプリからのログを評価実行の入力として使用する方法を示しています。

リクエストログノートブックの評価を実行する

ノートブックを新しいタブで開く