MLflow基于Windows通过Docker和Minio搭建mlflow server

MLflow基于Windows通过Docker和Minio搭建mlflow server,第1张

1. 首先下载Docker 1.1 下载与安装教程:windows系统下安装docker比较详细的教程

       在上面的教程中,安装好docker之后需要进行【换源】设置,按教程 *** 作即可,如果需要帮助可以留言。上面的教程可以参考的内容为:【安装Docker Desktop】--【Docker基础使用】,其余内容暂时可以不看。(我的安装路径:"C:\Program Files\Docker\Docker\Docker Desktop.exe")

1.2 测试docker安装是否正确:顺利运行hello-world

在cmd或Windows PowerShell中输入以下命令:

docker container run hello-world

下面是在Windows PowerShell终端中打印出来的日志:

 此时表示指令运行成功,在Docker Desktop中的Images中你会看到新建的一个镜像:

2. 在Docker的基础上搭建MinIO
搭建MinIO的目的是为了给mlflow提供模型数据的存储后台,mflow的元数据存储采用mysql。
2.1 docker下载镜像(在cmd或Windows PowerShell中输入以下命令):
docker pull minio/minio
2.2 docker配置容器:(注意:将下面的分行整合为1行后再输入)
docker run -p 9000:9000 -p 9090:9090 
    --name miniotest1  
    -e "MINIO_ROOT_USER=admin" 
    -e "MINIO_ROOT_PASSWORD=admin1234" 
    -v /mydata/minio/data:/data   
    -v /mydata/minio/config:/root/.minio   
    -d minio/minio server /data --console-address ":9000" --address ":9090"

此处分行只是因为方便展示与介绍,在cmd中输入命令时需变为1行。

name:容器的名字,可以自己设置;

MINIO_ROOT_USER:登录minio的用户名,可以自己设置,至少3位字符;(有的教程是MINIO_ACCESS_KEY,但是运行会报错。貌似是因为minio更新了,只能是MINIO_ROOT_USER);

MINIO_ROOT_PASSWORD:登录minio的密码,至少8位;(同样MINIO_SECRET_KEY也不能使用了);

9000:9000  9090:9090:分别对应控制台和API的访问端口,需要一一和后面的--console-address和--address对应;

指令运行成功,在Docker Desktop中的Containers/Apps中你会看到新建的一个容器:

 2.3 访问localhost:9000,则可以直接看到UI界面

在浏览器中访问localhost:9000,出现界面后输入用户名和密码登录Minio

 之后创建一个bucket,命名为mlflow,用于后续mlflow配置:

3. 搭建mlflow tracking server

mlflow的搭建主要是mlflow tracking server的搭建,tracking server主要是用于模型的元数据以及模型的数据存储,本篇以minio作为模型数据的存储后台,mysql作为模型元数据的存储。

前提:          平台:Win10          IDE:Visual Studio Code 或 Pycharm          需要预装:Anaconda3 3.1 安装mysql

下载与安装教程:下载与安装mysql(该教程下载连接失效,可用本文的下载地址)

下载地址: https://dev.mysql.com/downloads/mysql/.

上方的教程可以参考至第六步【6. 启动MySQL】,接下来的内容参考本文内容。

对上方下载与安装教程的补充:

(1) 原文第三步(3. 创建并修改配置文件)中需要新建一个文件my.ini----可在记事本中编写后另存为ini文件;

(2) 原文第四步(4. MySQL安装初始化)中的指令是在cmd中进入mysql的bin后输入;

例如:我的安装地址为D:\Program Files\mysql,cmd中的指令如下图:(注意指令的书写规则)

(3) 原文第五步(5. 安装MySQL)中的指令“mysqld install MySQL” 更改为:

.\mysqld install MySQL

(4) 原文第七步(7. 连接MySQL)更改为下方指令:

.\mysql -u root -p 

具体 *** 作如图:(初始 *** 作没有密码,直接回车就可以进入)

 

 接下来,创建名为mlfolw_test的数据库,指令如下:

CREATE DATABASE mlflow_test;

具体 *** 作如图:

 3.2 为MLflow创建虚拟环境,安装依赖

此指令在Anaconda PowerShell Prompt或Anaconda Prompt中输入:

# 创建名为mlflowtest的conda环境 并安装 python 3.8(名字自定义,可以任意自定)
conda create -n mlflowtest python==3.8

#激活名为mlflowtest的conda环境(名字需与上方相同)
conda activate mlflowtest

# 安装mlfow tracking server python需要的依赖包
pip install mlflow==1.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn 
pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
pip install boto3 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

安装完成后,接着在Anaconda PowerShell Prompt或Anaconda Prompt中输入以下指令:

#暴露出minio url以及需要的USER和PASSWORD,因为mlflow tracking server在上传模型文件时需要 
set AWS__ROOT_USER=admin
set AWS__ROOT_PASSWORD=admin1234
set MLFLOW_S3_ENDPOINT_URL=http://localhost:9001

最后在Anaconda PowerShell Prompt或Anaconda Prompt启动mlflow server:

mlflow server --backend-store-uri mysql://root:@localhost/mlflow_test --host 0.0.0.0 -p 5002 --default-artifact-root s3://mlflow 

–backend-store-uri是记录任务参数、指标、标签等字段信息的地址,默认会存本地路径,即这些字段信息以文件的形式存在server启动目录下的./mlruns路径中。本文是储存在名为mlflow_test的mysql数据库中,如果你的mysql有设置密码,需要填写对应密码;示例中没有是没有设置密码的情况。
–default-artifact-root是存储client端输出的大型文件,如文本、图片、模型文件等。artifacts文件默认会存在client端运行工程的./mlruns路径下,官方建议将artifacts存在Amazon S3, FTP server, HDFS等共享文件路径下。

访问localhost:5002, 就能看到如下界面:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/714023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存