MLFlow - xd21303/Notebook GitHub Wiki

设置MLFLOW_TRACKING_URI环境变量

一、训练

docker

使用docker训练,project文件中如下设置。

docker_env:
  image:  mlflow-docker-example

首先根据dockerfile生成image

docker build -t mlflow-docker-example -f Dockerfile .

然后运行docker容器进行训练(在project目录下运行),注意生成的模型文件有可能是root创建的,导致serve服务时的权限问题。

mlflow run . -P alpha=0.5 --experiment-name dfc

虚拟环境

project文件中设置:

conda_env: conda.yaml

mlflow会创建虚拟环境,进行训练

mlflow run sklearn_elasticnet_wine -P alpha=0.5

二、服务

docker服务

根据生成的id,build docker

mlflow models build-docker -m runs:/4af5372533894f76903bc045d8d3adb4/model -n model-serve

运行docker

docker run -p 5001:8080 "model-serve"

为了加快build docker 的速度,修改mlflow源代码。

在/opt/anaconda3/envs/mlflow/lib/python3.7/site-packages/mlflow/models/docker_utils.py

_get_mlflow_install_step 函数中合适的位置添加

	    "RUN mkdir ~/.pip && touch ~/.pip/pip.conf\n"
            "RUN echo '[global]' >> ~/.pip/pip.conf\n"
            "RUN echo 'index-url = https://pypi.tuna.tsinghua.edu.cn/simple' >> ~/.pip/pip.conf\n"

虚拟环境服务

注意训练时用docker的,生成模型文件的root权限问题。

mlflow models serve -m runs:/4af5372533894f76903bc045d8d3adb4/model --port 5001

三、预测

curl http://127.0.0.1:5001/invocations -H 'Content-Type: application/json' -d '{
    "data": [7,0.27,0.36,20.7,0.045,45,170,1.001,3,0.45,8.8](/xd21303/Notebook/wiki/7,0.27,0.36,20.7,0.045,45,170,1.001,3,0.45,8.8)
}'