跳到主内容

使用本地数据库跟踪实验

在本教程中,您将学习如何使用本地数据库来跟踪您的 MLflow 实验元数据。

默认情况下,MLflow Tracking 将运行数据记录(写入)到本地文件,这可能会因为文件分散且缺乏简单的访问接口而带来一些不便。此外,如果您使用 Python,您可以使用 SQLite,它运行在您的本地文件系统上(例如 mlruns.db),并且内置了客户端 sqlite3,无需安装任何额外的依赖项和设置数据库服务器。

步骤 1. 获取 MLflow

MLflow 可通过 PyPI 获取。如果您的本地机器尚未安装,您可以使用以下命令安装:

pip install mlflow

步骤 2. 配置 MLflow 记录到 SQLite 数据库

要将 MLflow 指向您的本地 SQLite 数据库,您需要设置环境变量 MLFLOW_TRACKING_URI(例如,sqlite:///mlruns.db)。这将在当前目录中创建一个 SQLite 数据库文件(mlruns.db)。如果您想将数据库文件存储在其他位置,请指定不同的路径。

export MLFLOW_TRACKING_URI=sqlite:///mlruns.db

如果您在 notebook 中,请运行以下单元格:

%env MLFLOW_TRACKING_URI=sqlite:///mlruns.db
注意

使用 SQLite 数据库时,如果数据库不存在,MLflow 会自动创建一个新数据库。如果您想使用不同的数据库,您需要先创建该数据库。

步骤 3. 开始记录

现在您已准备好开始记录您的实验运行。例如,以下代码使用 diabetes 数据集训练了一个 scikit-learn RandomForest 模型:

import mlflow

from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressor

mlflow.sklearn.autolog()

db = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(db.data, db.target)

# Create and train models.
rf = RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3)
rf.fit(X_train, y_train)

# Use the model to make predictions on the test dataset.
predictions = rf.predict(X_test)

步骤 4. 在跟踪 UI 中查看记录的运行

训练任务完成后,您可以运行以下命令启动 MLflow UI(您需要使用 --backend-store-uri 选项指定 SQLite 数据库文件的路径)

mlflow ui --port 8080 --backend-store-uri sqlite:///mlruns.db

然后,在浏览器中导航到 https://:8080 查看结果。

下一步是什么?

您现在已经学会了如何将 MLflow Tracking 连接到远程存储和数据库。

还有一些更高级的主题您可以探索:

  • 用于团队开发的远程环境设置:虽然将运行和实验数据存储在本地机器非常适合个人开发,但当您使用 MLflow Tracking 设置团队协作环境时,应考虑使用MLflow 跟踪服务器。阅读使用 MLflow 跟踪服务器进行远程实验跟踪教程以了解更多。
  • 新特性:MLflow 团队不断开发新特性以支持更广泛的使用场景。请参阅新特性以了解最新功能。