Jupyter Notebook 中的 MLflow 追踪

🚀 我们很高兴地宣布对 MLflow Tracing 体验的重大升级!
如果您不熟悉 MLflow Tracing,它是一个可观测性工具,允许您记录中间函数执行的输入和输出。它在调试 GenAI 应用程序方面特别有用,MLflow 拥有超过 十几种与流行 GenAI 框架的集成,可以在不要求您更改现有代码的情况下自动生成跟踪。
从 MLflow 2.20 开始,您现在可以直接在 Jupyter notebook 中查看 MLflow Trace UI,从而无需切换到开发环境之外即可调试应用程序。上下文切换通常会扰乱工作流程,此功能使您在能够可视化生成的跟踪数据的同时,更易于保持专注。

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 将显示出来
- 在单元格中生成跟踪(通过自动跟踪或在手动跟踪函数运行时)
- 当明确显示跟踪对象时(例如,通过 IPython 的
display()函数) - 当调用
mlflow.search_traces()API 时
要亲身体验此功能,请尝试运行我们的 演示 notebook!该 notebook 包含上述所有三种场景的详细示例,以及一个简短的 LangChain RAG 演示,以便更真实地了解此功能在开发循环中的感受。
禁用和重新启用显示
此功能默认启用,但可以随时通过调用 mlflow.tracing.disable_notebook_display() 来关闭。要删除已渲染的显示,您需要重新运行单元格(或只需清除单元格输出)。
如果您想重新启用显示,可以调用 mlflow.tracing.enable_notebook_display()。
错误报告和反馈
要报告错误或提供反馈,请在 MLflow GitHub 仓库中提交问题。我们期待您的反馈!
