追踪常见问题解答

问:跟踪引入的延迟开销是什么?

跟踪会以异步方式写入,以最大程度地降低性能影响。 但是,跟踪仍会增加最小延迟,尤其是在跟踪大小较大时。 MLflow 建议在部署到生产环境之前测试应用程序,以了解跟踪延迟影响。

下表显示了按跟踪大小粗略估计的延迟影响:

每个请求的跟踪大小 对响应速度延迟的影响(ms)
大约10 KB ~ 1 毫秒
~ 1 MB 50 ~ 100 毫秒
10 MB 150 毫秒 ~

问:Databricks 中 MLflow 跟踪的速率限制和配额是多少?

在 Databricks 工作区中使用 MLflow 跟踪时,以下配额和速率限制适用,以确保服务稳定性和公平使用。 这些限制按工作区进行。

  • 每个试验的最大跟踪数

    • 默认值:100,000 个跟踪。
    • 请求后,可以大幅提高此限制(例如,每个试验超过 100 万条跟踪)。 请联系 Databricks 支持团队以请求增加。
  • 跟踪创建速率

    • 限制:每个工作区每秒 200 个查询(QPS)。
    • 这是可以创建和记录新跟踪(及其初始范围)的速率。
  • 跟踪下载速率

    • 限制:每个工作区 200 个 QPS。
    • 适用于提取完整跟踪数据的操作,例如 mlflow.get_trace()
  • 跟踪搜索速率

    • 限制:每个工作区 25 个 QPS。
    • 这适用于例如 mlflow.search_traces() 这样的操作,它们查询基于筛选条件的跟踪列表。

超过这些限制可能会导致受限制的请求或错误。 如果预计生产工作负荷需要更高的限制,请与 Databricks 支持人员讨论要求。

问:我无法在 MLflow UI 中打开追踪。 我该怎么办?

在 MLflow UI 中可能无法查看跟踪的原因有多种。

  1. 跟踪尚未完成:如果仍在收集跟踪,MLflow 无法在 UI 中显示范围。 确保所有区段都以“正常”或“ERROR”状态正确结束。

  2. 浏览器缓存已过时:将 MLflow 升级到新版本时,浏览器缓存可能包含过时的数据,并阻止 UI 正确显示跟踪。 清除浏览器缓存(Shift+F5)并刷新页面。

问:模型执行停滞,我的跟踪将永远处于“正在进行中”。

有时,模型或代理会卡在长时间运行的操作或无限循环中,导致执行状态一直停留在“正在进行”状态。

若要防止出现这种情况,可以使用环境变量为跟踪 MLFLOW_TRACE_TIMEOUT_SECONDS 设置超时。 如果跟踪超过超时时间,MLflow 将自动中止具有 ERROR 状态的跟踪并将其导出到后端,以便你可以分析这些跨度以识别问题。 默认情况下,不会设置超时。

注释

超时时间仅适用于 MLflow 跟踪。 即使跟踪停止,主程序、模型或代理也会继续运行。

例如,以下代码将超时设置为 5 秒,并模拟 MLflow 如何处理长时间运行的作:

import mlflow
import os
import time

# Set the timeout to 5 seconds for demonstration purposes
os.environ["MLFLOW_TRACE_TIMEOUT_SECONDS"] = "5"


# Simulate a long-running operation
@mlflow.trace
def long_running():
    for _ in range(10):
        child()


@mlflow.trace
def child():
    time.sleep(1)


long_running()

注释

MLflow 监视后台线程中的跟踪执行时间和过期时间。 默认情况下,此检查每秒执行一次,资源消耗可忽略不计。 如果要调整间隔,可以设置 MLFLOW_TRACE_TIMEOUT_CHECK_INTERVAL_SECONDS 环境变量。

问:执行多线程处理时,我的跟踪拆分为多个跟踪。 如何将它们合并到单个轨迹中?

由于 MLflow 跟踪依赖于 Python ContextVar,因此每个线程默认都有自己的跟踪上下文,但可以使用几个附加步骤为多线程应用程序生成单个跟踪。 有关详细信息,请参阅 多线程 部分。

问:如何暂时禁用跟踪?

若要 禁用 跟踪, mlflow.tracing.disable API 将从 MLflow 中停止收集跟踪数据,并且不会将任何数据记录到有关跟踪的 MLflow 跟踪服务。

若要 启用 跟踪(如果已暂时禁用跟踪), mlflow.tracing.enable API 将为调用的已检测模型重新启用跟踪功能。

后续步骤

继续您的旅程,并参考这些推荐的行动和教程。

参考指南

浏览有关相关概念的详细文档。