【问题标题】:MLflow Artifacts Storing artifacts(google cloud storage) but not displaying them in MLFlow UIMLflow Artifacts 存储工件(谷歌云存储)但不在 MLFlow UI 中显示它们
【发布时间】:2021-10-29 20:44:35
【问题描述】:

我正在使用一个带有 jupyter notebook docker 镜像和一个 postgres docker 镜像的 docker 环境(docker-compose)来运行 ML 模型并使用谷歌云存储来存储模型工件。将模型存储在云存储上工作正常,但我无法在 MLFlow UI 中显示它们。我见过类似的问题,但没有一个解决方案使用谷歌云存储作为工件的存储位置。错误消息显示以下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.可能导致此问题的原因是什么?

【问题讨论】:

  • 检查项目中的权限:IAM roles for Cloud Storage。你应该有适当的权限。此外,您能否分享您尝试访问 Bucket 的 sn-p 代码?
  • @JossBaron,我拥有存储桶的存储对象创建者、查看者和存储管理员权限。这是我使用的 sn-p 代码:import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '*************.json' from google.cloud import storage client = storage.Client()
  • 这些权限是否授予适当的 SA?这仍然是一个问题吗?如果没有,您能分享一下解决方案吗?
  • @Joss Baron,这仍然是一个问题。已授予适当的权限。
  • 您可以在Public Issue Tracker组件下的Public Trackers > Cloud Platform > Storage and Databases > Cloud Storage > Private Cloud Storage issues中打开工单。确保您设置了私有组件,以便您可以共享敏感信息,以便它们可以为您的问题提供进一步的帮助。

标签: docker-compose google-cloud-storage artifacts mlflow


【解决方案1】:

我遇到了完全相同的问题。关键字是 docker-compose、google cloud storage、在 GCS 中存储成功,但在 UI 中列出工件失败。 就我而言,事实证明,在 docker-compose 文件中,如果您通过读取 .env 文件(例如 GOOGLE_APPLICATION_CREDENTIALS)来分配环境变量,则服务器可能会在分配之前启动。快速解决方法是直接使用键 environment: 分配 env var,而不是使用键 env_file:。 对于还需要放入 .env 文件的敏感数据,可以添加服务器的等待时间,并在 docker-compose 文件中添加 depends: 以确保数据库容器在如果您使用的是数据库支持的存储,则为 mlflow 服务器。

【讨论】:

    【解决方案2】:

    从本地运行 mlflow 时,我遇到了同样的问题。将 GOOGLE_APPLICATION_CREDENTIALS 添加到环境变量后,问题得到解决。

    https://googleapis.dev/python/google-api-core/latest/auth.html

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      相关资源
      最近更新 更多