我面临以下情况:
我们在一个由docker-compose文件构建的Docker容器中训练模型。我已经实现了MLflow与docker-compose的结合(通过类似于这篇文章的方法:https://towardsdatascience.com/deploy-mlflow-with-docker-compose-8059f16b6039),创建了两个额外的容器(一个用于服务器,一个用于postgresql后端)。
然而,故事并未到此结束。我们的目标是实现一个完整的机器学习流程,包括数据创建、预处理步骤等。我知道,ML项目可以帮助创建这样的流程。我看到它被设计为与Docker镜像一起工作(https://www.mlflow.org/docs/latest/projects.html),但我不明白如何将其与docker-compose一起使用。
您能否通过提供任何提示、指南、文档等来帮助我?
或者总的来说,关于如何使用mlflow实现完整的机器学习流程,有什么建议吗?
非常感谢!
回答:
我建议在conda环境中训练模型,并仅在部署时使用Docker。这样,您就可以从像Pycharm这样的IDE中调试模型代码。
所以,
conda create -n env_nameconda 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"# 服务模型docker run -p 5001:8080 "my-image-name"