问题描述
我正在一个docker环境(docker-compose)上使用jupyter笔记本docker映像和postgres docker映像来运行ML模型并使用Google云存储来存储模型工件。将模型存储在云存储上工作正常,但我无法在MLFlow UI中显示它们。我见过类似的问题,但没有解决方案使用google cloud storage作为工件的存储位置。错误消息显示以下Unable to list artifacts stored under <gs-location> for the current run. Please contact your tracking server administrator to notify them of this error,which can happen when the tracking server lacks permission to list artifacts under the current run's root artifact directory.
可能是什么原因导致了此问题?
解决方法
我遇到了完全相同的问题。关键词是 docker-compose、谷歌云存储、在 GCS 中存储成功,但在 UI 中列出工件失败。 就我而言,事实证明,在 docker-compose 文件中,如果您通过读取 .env 文件(例如 GOOGLE_APPLICATION_CREDENTIALS)来分配环境变量,则服务器可能会在分配之前启动。快速解决方案是直接使用键 environment: 分配 env var,而不是使用键 env_file:。 对于仍然需要放入.env文件中的敏感数据,可以添加服务器等待时间,并在docker-compose文件中添加depends on:以确保数据库容器在启动前启动mlflow 服务器(如果您使用的是数据库支持的存储)。