重要
此功能以 Beta 版本提供。
重要
本页介绍<0.22
与 MLflow <2.x
的代理评估。 Databricks 建议使用与代理评估 >1.0
集成的 MLflow 3。 代理评估 SDK 方法现在通过 mlflow
SDK 公开。
有关本主题的信息,请参阅 生产质量监视(自动运行评分器)。
本页介绍如何使用适用于生成式 AI 的 Lakehouse Monitoring 的各种功能。 若要启用监视功能,请按照监视概述上链接的步骤进行操作。
查看监视结果
在查看监视结果之前,你必须具备以下各项:
满足这些先决条件后,可以按照以下步骤查看汇总监视器生成的结果的页面:
在 AI/ML 部分下的边栏中单击“试验”。
单击与监视器关联的 MLflow 试验。
如果不确定如何查找相关试验的名称,请按照获取监视器元数据中的说明检索试验 ID,然后在笔记本中运行
mlflow.get_experiment(experiment_id=$YOUR_EXPERIMENT_ID)
以查找试验名称。单击“监视”选项卡。
使用“选择 SQL 仓库”下拉列表选择你的 SQL 仓库。
该页面将更新以显示监视结果。 结果可能需要几分钟才能完成加载。
使用监视界面
监视界面中的所有数据(同时包括“图表”和“日志”选项卡)都受限于时间范围。 若要更改该范围,请使用“时间范围”下拉列表。
“图表”选项卡
“图表”选项卡由四个部分组成:请求、指标、延迟和错误。
“请求”部分显示跟踪量随时间的变化。
“指标”部分显示 LLM 评判所评估的回答计数。 绿色表示通过的回答,而红色表示失败的回答。 本部分列出的指标应与创建监视器时定义的指标以及总体通过/失败质量得分相对应。
“延迟”部分显示跟踪执行延迟随时间的变化,数据取自 MLflow 报告的延迟。
“错误”部分显示任何模型错误随时间的变化。 如果未发生错误,你将看到“无数据”指示信息,如下所示:
“日志”选项卡
“日志”选项卡列出了发送到所选模型的请求以及 LLM 评估的结果(如果有)。 该界面中最多可显示来自所选时间段的 10,000 个请求。 如果请求计数超过此阈值,将以与监视器配置中指定的采样率不同的速率对请求进行采样。
若要根据提交的请求中包含的文本筛选请求日志,请使用搜索框。 还可以使用“筛选器”下拉菜单按关联评估的结果来筛选日志。
将光标悬停在请求上,然后单击复选框以选择请求。 然后,可以单击“导出跟踪”以将这些请求添加到评估数据集。 该数据集必须是使用与监视器相同的 MLflow 试验记录的。
单击请求以查看其详细信息。 该模式对话框将显示评估结果、输入、回答以及为回应请求而检索的文档(如果有)。 有关请求的更多详细信息(包括计时信息),请单击该模式对话框右上角的“查看详细跟踪视图”。
添加警报
使用 Databricks SQL 警报在评估的跟踪表不符合预期时(例如,当标记为有害的请求数超过阈值时)通知用户。
更新或暂停监视器
若要更新监视器的配置,请调用 update_monitor
,该命令将接受以下输入:
-
endpoint_name: str
- 正在监视的终结点的名称 -
monitoring_config: dict
- 监视器的配置。 请参阅设置监视,了解支持的参数。
例如:
from databricks.agents.evals.monitors import update_monitor
monitor = update_monitor(
endpoint_name = "model-serving-endpoint-name",
monitoring_config = {
"sample": 0.1, # Change sampling rate to 10%
}
)
同样,若要暂停监视器:
from databricks.agents.evals.monitors import update_monitor
monitor = update_monitor(
endpoint_name = "model-serving-endpoint-name",
monitoring_config = {
"paused": True,
}
)
获取监视器元数据
使用 get_monitor
函数检索针对所部署智能体的监视器的当前配置。
from databricks.agents.evals.monitors import get_monitor
get_monitor('model-serving-endpoint-name')
该函数将返回 Monitor
对象,其中包括以下属性:
-
endpoint_name
- 正在监视的终结点的名称。 -
monitoring_config
- 监视器的配置。 请参阅设置监视,了解配置参数。 -
experiment_id
- 显示监视结果的 MLflow 试验。 请参阅查看监视结果。 -
evaluated_traces_table
- 包含监视评估结果的 Unity Catalog 表。
删除监视器
若要从终结点中移除监视器,请调用 delete_monitor
。
from databricks.agents.evals.monitors import delete_monitor
monitor = delete_monitor(
endpoint_name = "model-serving-endpoint-name",
)
调用 delete_monitor
不会删除由监视器生成的评估跟踪表。
智能体监视中的自定义指标
这一在监视中启用自定义指标的方法将来可能会发生更改。 如有疑问,请联系 Databricks 代表。
按照以下步骤在代理监视器中启用针对自定义指标的评估。
在工作区中创建 Python (
.py
) 文件并定义自定义指标。 这应该是一个 Python 文件,而不是 Databricks 笔记本。 有关在 Databricks 工作区中创建 Python 文件的说明,请参阅工作区文件的基本用法。在此文件中定义一个名为
CUSTOM_METRICS
的包含指标函数的列表。 使用mlflow.evaluate
时,可联机或脱机使用相同的自定义指标。 请参阅自定义指标(旧版)。下面是一个示例文件:
# custom_metrics.py import mlflow import pandas as pd from databricks.agents.evals import metric @metric def response_mentions_llm(response): return "LLM" in response @metric def request_too_long(request): return len(request) > 1000 CUSTOM_METRICS = [response_mentions_llm, request_too_long]
导航到“工作流”选项卡。
- 如果智能体托管在 Databricks 上,请找到标题为
[<your agent name>] Agent Monitoring Job
的工作流。 - 如果智能体托管在 Databricks 外部,请找到标题为
monitor_<monitoring table name>
的工作流(将表名中的 . 字符替换为 -)。
- 如果智能体托管在 Databricks 上,请找到标题为
编辑该工作流以添加作业参数。 请参阅配置作业参数。
创建名为
CUSTOM_METRICS_NOTEBOOK_PATH
的参数。 此参数的值应该是自定义指标 python 文件的完整路径。
将在监视器的后续运行中评估自定义指标。
若要在将自定义指标包含在监视器中之前对其进行迭代,请在跟踪的子集上运行 mlflow.evaluate
。
如果智能体托管在 Databricks 上:
import mlflow
import pandas as pd
from databricks.agents.evals import metric
@metric
def response_mentions_llm(response):
return "LLM" in response
df = spark.table("<your-monitoring-table>")
pdf = df.toPandas()[['request','response','trace']]
import mlflow
result = mlflow.evaluate(
data = pdf,
model_type="databricks-agent",
extra_metrics=[response_mentions_llm]
)
display(result)