首页 > 解决方案 > MLFlow 如何将后端存储 uri 从文件存储更改为数据库

问题描述

我正在使用带有文件存储的 mlflow 跟踪作为后端存储一段时间,我在系统中记录了很多运行。
最近我想开始使用模型注册表,但不幸的是,目前只有 DB 作为后端存储才支持此功能。
如何在不丢失我已经记录的所有运行的情况下更改后端存储?

我用来运行服务器的命令:

mlflow server --backend-store-uri /storage/mlflow/runs/ --default-artifact-root /storage/mlflow/artifactory/ --host 0.0.0.0 --port 5000

标签: mlflow

解决方案


如果要使用模型注册功能,我们确实需要一个数据库。这就是我通过几个步骤在我的 Linux 机器上设置(使用 MySQL)的方式:-

1)- 在您的系统中安装 MySQL。

sudo apt install mysql-server

2)- 创建一个数据库用作 MLflow 后端跟踪服务器。

CREATE DATABASE mlflow_tracking_database;

3)- 使用 MySQL 作为后端跟踪存储启动 MLflow 跟踪服务器。

 mlflow server \
   --backend-store-uri  mysql+pymysql://root@localhost/mlflow_tracking_database \ 
   --default-artifact-root  file:/./mlruns \
   -h 0.0.0.0 -p 5000

4)- 设置 MLflow 跟踪 uri(在代码部分内)。

mlflow.set_tracking_uri("http://localhost:5000")

注意:在第三步中,该命令会自动在数据库中创建所有必要的表,并使用 MySQL 作为后端存储而不是本地文件系统。


推荐阅读