跳到主要内容

使用本地数据库跟踪实验

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

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

步骤 1. 获取 MLflow

MLflow 可在 PyPI 上获取。如果您尚未在本地机器上安装它,可以使用以下命令安装它

bash
pip install mlflow

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

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

bash
export MLFLOW_TRACKING_URI=sqlite:///mlruns.db

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

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

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

步骤 3. 开始记录

现在您可以开始记录您的实验运行了。例如,以下代码在 diabetes 数据集上为 scikit-learn RandomForest 模型运行训练

python
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 数据库文件的路径)

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

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

下一步是什么?

至此,您已学会如何将 MLflow Tracking 连接到远程存储和数据库。

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