我面临以下情况:
我们在 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 实现完整的机器学习管道?
非常感谢!
我建议在 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]
然后,您可以使用单个命令从 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"