获取有关代理应用程序质量的反馈

重要

此功能目前以公共预览版提供。

本文介绍如何使用 Databricks 评审应用从人工评审者那里收集有关代理应用程序质量的反馈。 其中涵盖以下内容:

  • 如何部署评审应用。
  • 评审者如何使用该应用对代理应用程序的响应提供反馈。
  • 专家如何查看记录的聊天,以使用该应用提供改进建议和其他反馈。

人工评估会发生什么情况?

Databricks 评审应用在专家利益干系人可以与之交互的环境中分阶段 LLM ,换句话说,有对话、提问、提供反馈等。 评审应用将所有问题、答案和反馈记录在推理表中,以便进一步分析 LLM 的性能。 这样,评审应用有助于确保应用程序提供的答案的质量和安全性。

项目负责人可以与应用程序机器人聊天并对这些对话提供反馈,或者对历史日志、策展跟踪或代理输出提供反馈。

要求

  • 必须在为代理提供服务的终结点上启用推理表

  • 每个人工审阅者都必须有权访问评审应用工作区,或者使用 SCIM 同步到 Databricks 帐户。 请参阅下一部分, 设置使用评审应用的权限。

  • 开发人员必须安装 databricks-agents SDK 才能设置权限并配置评审应用。

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

设置权限以使用评审应用

注意

人工审阅者不需要访问工作区才能使用评审应用。

你可以向 Databricks 帐户中的任何用户授予评审应用的访问权限,即使他们无权访问包含评审应用的工作区。

  • 对于无权访问工作区的用户,帐户管理员使用帐户级 SCIM 预配将用户和组从标识提供者自动同步到 Azure Databricks 帐户。 还可以在 Databricks 中设置标识时手动注册这些用户和组,以授予他们访问权限。 请参阅从 Microsoft Entra ID 同步用户和组
  • 对于已有权访问包含评审应用的工作区的用户,无需进行其他配置。

以下代码示例演示如何向用户授予代理评审应用的权限。 该 users 参数采用电子邮件地址列表。

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 的左侧边栏有三个选项卡:

打开评审应用时,将显示说明页。

评审应用初始屏幕

为评审者提供说明

若要为向评审者显示的说明提供自定义文本,请使用以下代码:

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. 在框中键入问题,在键盘上按 ReturnEnter,或单击框中的箭头。 应用会显示问题的答案,以及用于查找答案的来源。

  3. 查看应用的答案,然后选择“”、“”或“我不知道”。

  4. 应用要求提供更多信息。 选中相应的框,或在提供的字段中键入注释。

  5. 还可以直接编辑响应以提供更好的答案。 若要编辑响应,请单击“编辑响应”,在对话框中进行更改,然后单击“保存”,如以下视频所示。

    如何编辑响应

  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. 找到要从 request_id 推理表查看的 <model_name>_payload_request_logs。 推理表位于注册模型的同一 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 交互以提供反馈。

注意

如果启用了 Azure 存储防火墙,请联系 Azure Databricks 客户团队为终结点启用推理表。

在请求日志表上使用 mlflow.evaluate()

以下笔记本演示如何通过 mlflow.evaluate() 使用评审应用中的日志作为评估运行的输入。

对请求日志笔记本运行评估

获取笔记本