Important
MLflow 问题检测目前处于 测试阶段。 工作区管理员必须从预览页面启用MLflow实验问题标签页。 请参阅 Manage Azure Databricks 预览版。
MLflow问题检测使用Genie代码分析MLflow实验中的追踪数据,发现反复出现的质量和操作问题。 它检查输入、输出、跨度、工具调用、时序、错误、评估和元数据,然后将相关证据归类为你可以调查和修复的问题,例如:
客户支持人员在回应退货请求时,虚构了30天退款政策。
研究代理重复同一网络搜索五次,导致响应变慢,工具和代币成本增加。
旅行社遗漏了所需的
departure_date参数,导致预订工具失败。提取代理返回的是自然语言文本,而不是调用应用程序所需的 JSON 模式。
MLflow支持从发现到生产监控的持续改进周期。 你可以查看问题背后的追踪,修复和评估你的应用,然后在部署后跟踪问题发生率。
Requirements
MLflow 问题检测需要一个其实验跟踪存储在 Unity Catalog 中的实验。 请参阅 在 Unity Catalog 中存储的 OpenTelemetry 跟踪。
启动问题检测
打开一个MLflow实验,选择“问题”标签,点击“运行问题检测”。 Genie Code 开始分析实验中的跟踪信息。 分析通常需要5到30分钟,具体取决于痕迹的数量和大小。 你可以离开页面,稍后回来查看结果。
Tip
在 Genie Code 中使用 自动批准 模式以防止分析暂停进行工具审批。
或者,你也可以在“追踪”标签页点击“检测问题”开始同样的工作流程。
审查问题
分析结束后, 问题 标签页会列出检测到的问题,并显示支持所选问题的证据。 每条证据都链接到一个受影响的源跟踪。
如果检查结果不适用,请使用右上角下拉菜单将状态更新为 “无问题”。 MLflow会从这些反馈中学习,以避免在后续检测运行中再次出现类似问题。
修复代码代理的问题
每个问题都包含一个修复提示,包含编码代理调查问题所需的上下文和代表性跟踪信息。 将“解决此问题”部分的提示复制并将其粘贴到你应用仓库中运行的编码代理中。 代理利用问题证据检查痕迹和代码,提出针对性的变更建议,并验证修复。
在使用提示词之前:
- 在编码代理中安装 MLflow 技能。
- 确保编码代理能访问你的 Azure Databricks 工作区。
部署前请先审查拟议变更。 然后将评估更新后的代理与代表性案例进行比较,以确认修复并检查回归。
在生产环境中监控修复情况
开发中有效的修复在面对生产流量时仍然可能失败。 问题监控器显示部署后问题率是否下降,以及问题是否会再次出现。
选择问题,在监控部分点击启用监控。 MLflow 为该问题创建一个 评分器,并在最近的追踪记录中回填以建立基线。 MLflow随后在线运行评分器,对一部分新的追踪样本进行评估,以跟踪生产中的问题发生率。
部署修复后,使用图表比较部署前后的问题率。 当该问题不再出现在生产环境中时,标记为 已解决。
安排检测
定期安排问题检测以分析新的追踪。
点击“调度检测”“问题”标签中的,选择MLflow扫描问题的频率。 你可以通过元数据字段或标签值(如 environment = production)进行过滤,将分析限制为部分追踪。
自定义检测条件
点击以在齿轮图标问题页面上配置问题检测。 你可以告诉MLflow哪些发现对你的应用重要,开启或关闭内置关注区域,并为应用特定的失败添加自定义类别。 例如,你可以优先考虑用户的挫败感,忽略延迟问题。
使用 REST API 访问问题列表
使用Issues REST API将问题分诊与外部工作流程集成。 该 API 使用采用 experiments/<experiment-id>/issues/<issue-id> 形式的问题资源名称。
搜索问题
搜索支持标题文本、状态、严重性、类别、标签、排序和分页。 以下请求返回未解决的高严重性问题及其完整描述:
curl --request POST \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues:search" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{
"parent": "experiments/<experiment-id>",
"statuses": ["PENDING"],
"severities": ["HIGH"],
"sort_key": "LAST_SEEN_TIME",
"sort_order": "DESCENDING",
"page_size": 100,
"view": "FULL"
}'
更新问题
要更新问题,请包含更新掩码。 例如,以下请求标记问题已解决:
curl --request PATCH \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues/<issue-id>?update_mask=status" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{"status": "RESOLVED"}'
成本归因
手动和定时的问题检测运行使用 Genie Code。 有关定价信息,请参见 Genie定价。