将 MLflow 项目与 docker-compose 相结合

问题描述 投票:0回答:1

我面临以下情况:

我们在 docker 容器中训练模型,该容器是通过运行 docker-compose 文件构建的。我已经实现了 MLflow 来与 docker-compose 一起使用(通过执行类似于这篇文章的操作:https://towardsdatascience.com/deploy-mlflow-with-docker-compose-8059f16b6039),创建另外两个容器(一个用于服务器和 postgresql 后端)。

然而,故事并没有结束。我们的目标是实现完整的机器学习管道,其中包括数据创建、预处理步骤等。我知道,机器学习项目有助于创建这样的管道。我已经看到它被设计为与 docker 图像一起使用(https://www.mlflow.org/docs/latest/projects.html),但我不明白,如何将它与 docker 一起使用-撰写。

您可以通过提供任何提示、指南、文档等来帮助我吗?

或者一般来说,有什么建议吗?如何使用 mlflow 实现完整的机器学习管道?

非常感谢!

machine-learning docker-compose pipeline mlflow
1个回答
0
投票

我建议在 conda 环境中训练模型,并且仅进行 docker 化以进行部署。这样,您就可以从 Pycharm 等 IDE 调试模型代码。

那么,

conda create -n env_name
conda run -n env_name pip install requirements.txt

这是我的做法,尽管它可能比您需要的更复杂: https://github.com/bdzyubak/torch-control/blob/main/run_setup_all.py

MLflow 原生支持模型训练,只需导入并调用 autolog 即可。

mlflow.autolog()
mlflow.set_experiment('Energy Use Forecasting')
with mlflow.start_run(): 
    [your training code]

https://github.com/bdzyubak/torch-control/blob/main/projects/MachineLearning/energy_use_time_series_forecasting/time_series_forecasting_energy_use.py

然后,您可以使用单个命令从 mlflow 中拉取已注册的模型来构建它。

https://mlflow.org/docs/latest/cli.html

mlflow models build-docker --model-uri "runs:/some-run-uuid/my-model" --name "my-image-name"
# Serve the model
docker run -p 5001:8080 "my-image-name"
© www.soinside.com 2019 - 2024. All rights reserved.