跳到主要内容

Jupyter Notebook 中的 MLflow 追踪

·3 分钟阅读
Daniel Lok
Databricks 软件工程师

Thumbnail

🚀 我们很高兴地宣布,MLflow 追踪体验迎来重大升级!

如果您不熟悉 MLflow 追踪,它是一个可观测性工具,允许您记录中间函数执行的输入和输出。它在调试 GenAI 应用中特别有用,MLflow 已与超过十几个流行的 GenAI 框架集成,可以自动生成追踪,而无需您更改现有代码。

截至 MLflow 2.20 版本,您现在可以直接在 Jupyter Notebook 中查看 MLflow 追踪 UI,从而无需切换开发环境即可调试您的应用程序。上下文切换通常会干扰工作流程,而此功能使您能够更轻松地保持专注,同时仍能可视化生成的追踪数据。

MLflow Trace UI in Jupyter Notebook

JupyterLab 中 UI 的示例

开始使用

要开始使用,您需要使用MLflow 追踪服务器。在底层,MLflow 客户端需要发出网络请求来获取 UI 资源和追踪数据。

如果您不使用远程服务器,可以通过运行 mlflow server CLI 命令在本地启动一个。默认情况下,服务器将在 https://:5000 启动。

在您的 Notebook 中,只需确保将 MLflow 追踪 URI 设置为您的追踪服务器,即可开始使用!

import mlflow

# replace this with your own URI, if it differs
tracking_uri = "https://:5000"
mlflow.set_tracking_uri(tracking_uri)

# create a new experiment to avoid cluttering the default experiment
experiment = mlflow.set_experiment("mlflow-trace-ui-demo")

# the trace UI should now show up whenever traces are generated,
# for example:
@mlflow.trace
def add(a, b):
return a + b

# running the traced function triggers the UI display
add(1, 2)

只要发生以下任何事件,追踪 UI 就会显示

  1. 单元格中生成追踪(通过自动追踪,或运行手动追踪的函数时)
  2. 显式显示追踪对象时(例如,通过 IPython 的 display() 函数)
  3. 调用 mlflow.search_traces() API 时

要亲身体验此功能,请尝试运行我们的演示 Notebook!该 Notebook 包含上述所有三种情况的详细示例,以及一个简短的 LangChain RAG 演示,以便更真实地了解此功能在您的开发循环中的体验。

禁用和重新启用显示

此功能默认启用,但可以通过调用 mlflow.tracing.disable_notebook_display() 随时将其关闭。要移除已渲染的显示,您需要重新运行单元格(或清除单元格输出)。

如果您想重新启用显示,可以调用 mlflow.tracing.enable_notebook_display()

Bug 报告和反馈

要报告 Bug 或提供反馈,请在MLflow GitHub 仓库中提交一个 issue。我们期待您的反馈!