使用本地数据库跟踪实验
在本教程中,您将学习如何使用本地数据库通过 MLflow 跟踪您的实验元数据。
默认情况下,MLflow Tracking 会将运行数据(写入)到本地文件,这可能会由于零碎的小文件和缺乏简单的访问接口而导致一些麻烦。此外,如果您使用 Python,可以使用运行在本地文件系统上的 SQLite(例如 `mlruns.db`)及其内置客户端 `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
如果您在笔记本电脑中,请改运行以下单元格:
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 与远程存储和数据库连接。
您还可以探索一些更高级的主题:
- 远程环境设置用于团队开发:虽然将运行和实验数据存储在本地计算机上对于单人开发完全没问题,但在设置 MLflow Tracking 的团队协作环境时,您应该考虑使用 MLflow Tracking Server。请阅读 使用 MLflow Tracking Server 进行远程实验跟踪 教程以了解更多信息。