问:跟踪引入的延迟开销是什么?
跟踪会以异步方式写入,以最大程度地降低性能影响。 但是,跟踪仍会增加最小延迟,尤其是在跟踪大小较大时。 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 中可能无法查看跟踪的原因有多种。
跟踪尚未完成:如果仍在收集跟踪,MLflow 无法在 UI 中显示范围。 确保所有区段都以“正常”或“ERROR”状态正确结束。
浏览器缓存已过时:将 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 将为调用的已检测模型重新启用跟踪功能。
后续步骤
继续您的旅程,并参考这些推荐的行动和教程。
- 为你的应用程序添加跟踪功能 - 了解如何在你的应用程序中进行跟踪设置
- 生产可观测性与跟踪 - 为生产环境设置跟踪
- 调试并监控您的应用 - 使用追踪解决问题
参考指南
浏览有关相关概念的详细文档。