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)
}'