获取关于能动性应用(MLflow 2)质量的反馈

重要说明

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

重要说明

Databricks 建议使用当前的 审阅应用 版本。

本文介绍如何使用 Databricks 评审应用收集人工审阅者关于 AI 代理质量的反馈。 其中涵盖以下内容:

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

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

Databricks 审查应用将 LLM 暂存在专家利益相关者可以与之交互的环境中 - 换句话说,进行对话、提出问题、提供反馈等。 评审应用记录推理表中的所有问题、答案和反馈,以便可以进一步分析 LLM 的性能。 通过这种方式,审查应用有助于确保应用程序提供的答案的质量和安全性。

利益相关者可以与应用程序机器人聊天,并提供有关这些对话的反馈,或提供有关历史记录日志、精选跟踪或代理输出的反馈。

要求

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

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

  • 开发人员必须安装 databricks-agents SDK 来设置权限和配置审查应用。

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

设置使用审查应用的权限

注意

人工审查者需要访问工作区即可使用审查应用。

你可以向 Databricks 帐户中的任何用户提供审查应用的访问权限,即使他们没有访问包含审查应用的工作区的权限。

  • 对于没有工作区访问权限的用户,帐户管理员使用帐户级 SCIM 预配将用户和组从标识提供程序自动同步到 Azure Databricks 帐户。 你也可以在 Databricks 中设置标识时手动注册这些用户和组以授予他们访问权限。 请参阅使用 SCIM 从 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,或单击框中的箭头。

    应用显示其对你问题的答案,以及它用于查找答案的来源。

    注意

    如果代理使用检索器,则数据源由在创建代理期间定义的检索器架构设置的 doc_uri 字段标识。 请参阅 设置检索器架构以确保 MLflow 兼容性

  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() 使用评审应用中的日志作为评估运行的输入。

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

获取笔记本