【问题标题】:Building Docker images on GCP's Cloud Build pulling artefacts from bucket在 GCP 的 Cloud Build 上构建 Docker 镜像,从存储桶中提取人工制品
【发布时间】:2019-10-08 23:49:40
【问题描述】:

我正在构建机器学习管道,需要采用多个模型,构建包含它们的 Docker 映像,然后将此映像部署到客户端的机器上。

假设将模型文件烘焙到 Docker 镜像中会更容易部署?

麻烦的是如何做到这一点?

1 - 我是否下载、解压缩和复制 Dockerfile 中的模型。那我该如何处理 GCP 凭据呢?

2 - 我是否以某种方式使用 GCP 的 Cloud Build 来处理下载,然后只是在 Dockerfile 中复制?问题:在任何 CI/CD 工具(包括 Cloud Build)中没有这方面的示例。

我还没有考虑过对存储桶中的模型进行版本控制,这意味着选择要下载的模型的某种逻辑。

这些选项之一是否可以通过 Cloud Build 实现?

选项 1 是否比选项 2 更可行?

【问题讨论】:

    标签: docker machine-learning google-cloud-platform google-cloud-build


    【解决方案1】:

    根据您的描述,我可以想到您不断将 ML 模型(文件)推送到您想要提供给客户的存储库。

    您可以Run Builds with Github checks and Cloud BuildRun builds on Github(它们非常相似;不同之处在于工具的使用)。两个选项都使用Build Triggers

    使用这些选项中的任何一个来根据对源存储库的任何更改或仅符合特定条件的更改重新构建映像。有了这个,我们可以介绍如何做到这一点以及版本控制可能出现的问题。

    在为此设置您的 Github 存储库时,您只会被要求表明自己的身份。一旦它们都被链接,凭据就不会成为问题。

    我还认为您将更新调用机器学习模型的代码。如果您考虑让您的代码在 Cloud Run 上运行(例如,在将其发送给您的客户之前进行测试),您可以尝试Continuous Deployment from git on Cloud Run,它也使用 Cloud Build 触发器。

    您可以将上述信息与Quickstart for Docker and Cloud Build 结合使用。

    这里有更多关于How using GitHub and Google Cloud Build simplify your CI process的信息。

    这么说,我认为你的选项 2 是一个更好的主意。

    【讨论】:

    • 我猜这就是常规代码产品和 ML 产品之间的主要区别:代码不会随着 ML 发生太大变化,但它训练的数据会发生变化,因此触发代码更改是无关紧要的。
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2021-10-15
    • 2020-10-28
    • 2020-10-06
    • 2019-06-22
    • 2020-11-22
    相关资源
    最近更新 更多