使用本地数据库跟踪实验
在本教程中,您将学习如何使用本地数据库通过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
如果您正在使用笔记本,请改为运行以下单元格:
%env MLFLOW_TRACKING_URI=sqlite:///mlruns.db
note
要使用SQLite数据库时,如果数据库不存在,MLflow会自动创建一个新数据库。如果想使用其他数据库,需要先手动创建该数据库。
步骤3. 开始记录
现在您可以开始记录实验运行了。例如,以下代码在糖尿病数据集上训练一个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. 在Tracking UI中查看您记录的运行
当您的训练任务完成后,可以运行以下命令启动MLflow UI(需要通过--backend-store-uri
选项指定SQLite数据库文件的路径):
mlflow ui --port 8080 --backend-store-uri sqlite:///mlruns.db
然后,在浏览器中访问 http://localhost:8080
查看结果。
下一步是什么?
你现在已经学会了如何将MLflow Tracking与远程存储和数据库连接起来。
您可以探索一些更高级的主题:
- 团队开发的远程环境设置: 虽然将运行和实验数据存储在本地机器上对于个人开发完全可行,但当您使用MLflow Tracking设置团队协作环境时,应考虑使用MLflow Tracking Server。阅读Remote Experiment Tracking with MLflow Tracking Server教程以了解更多信息。
- 新功能: MLflow团队持续开发新功能以支持更广泛的使用场景。查看新功能了解最新特性。