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

プレビュー

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

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

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

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

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

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

Databricks レビュー アプリは、専門家の利害関係者が LLM と対話できる環境 (つまり、会話をしたり、質問をしたり) で LLM をステージングします。 このように、レビューアプリを使用すると、アプリケーションに関するフィードバックを収集でき、提供される回答の品質と安全性を確保するのに役立ちます。

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

要件

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

  • 各人間のレビュー担当者は、レビュー アプリ ワークスペースにアクセスできる必要があります。 次のセクション「 レビュー アプリ ワークスペースへのアクセス許可を設定する」を参照してください。

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

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

レビューアプリワークスペースへの権限を設定する

レビュー担当者がレビューアプリを含むワークスペースにすでにアクセスしている場合は、何もする必要はありません。

レビュアーがまだアクセス権を持っていない場合、アカウント管理者はアカウントレベルのSCIMプロビジョニングを使用して、アイデンティティプロバイダからDatabricksアカウントにユーザーとグループを自動的に同期させることができます。DatabricksでIDを設定する際に、これらのユーザーとグループを手動で登録することもできます。これにより、適格な査読者として含めることができます。「IDプロバイダーからユーザーとグループを同期する」を参照してください。

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=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()を使用した評価実行への入力として使用する方法を示しています。 mlflow.evaluate()の詳細については、オープンソース MLflowを使用した大規模言語モデルの評価 を参照してください。

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

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