我正在构建一个机器学习管道,需要采用多个模型,构建一个包含它们的 Docker 镜像,然后将该镜像部署到客户端的计算机上。
假设将模型文件烘焙到 Docker 镜像中将使其易于部署?
问题是如何做到这一点?
1 - 我是否下载、解压并复制 Dockerfile 中的模型。那么我该如何处理 GCP 凭据?
2 - 我是否以某种方式使用 GCP 的 Cloud Build 来处理下载,然后直接复制到 Dockerfile 中?问题:任何 CI/CD 工具(包括 Cloud Build)中都没有这方面的示例。
我什至还没有考虑过对存储桶中的模型进行版本控制,这意味着选择要下载的模型的某种逻辑。
这些选项之一可以通过 Cloud Build 实现吗?
选项 1 比选项 2 更可行吗?
最佳答案
根据您的描述,我可以想到您不断将 ML 模型(文件)推送到您想要提供给客户的存储库。
您可以Run Builds with Github checks and Cloud Build或Run builds on Github (它们非常相似;区别在于工具的使用)。两个选项都使用 Build Triggers 。
使用这些选项中的任何一个,可以根据对源存储库的任何更改或仅匹配特定条件的更改来重新构建镜像。这样,我们就可以了解如何做到这一点以及版本控制可能出现的问题。
为此设置 Github 存储库时,只会要求您表明身份。一旦它们链接起来,凭据就不再是问题。
我还认为您将更新调用 ML 模型的代码。如果您考虑在 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 是一个更好的主意。
关于docker - 在 GCP 的 Cloud Build 上构建 Docker 镜像,从存储桶中提取工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58295307/