构建机器学习CI/CD管道

机器学习(ML)的背景下,持续集成/持续部署(CI/CD)是自动化软件发布流程的关键组成部分。本文将指导如何设置机器学习管道的环境,并实现一个满足Google MLOps成熟度模型第二级别的功能管道。假设已经熟悉Python、深度学习、DockerDevOpsFlask

Git仓库

该项目将包括六个强制性仓库——Dataset、DataCommit、CodeCommit、UnitTesting、PredictionAPI、Deployment——以及一个“额外”的仓库,Interface。这些在下面的图表中用红色框架标出。

Dataset仓库包含用于训练或更新模型的预处理数据集。每当管道检测到此仓库中的更改时,它将触发持续训练步骤。

DataCommit仓库包含允许管道在推送新数据时触发持续训练的代码。

CodeCommit仓库包含从头开始训练模型以支持持续集成的代码。

UnitTesting仓库包含使管道能够验证模型是否在测试注册表中可用,然后对其运行测试的代码。

PredictionAPI仓库包含负责运行预测服务本身的代码。它加载生产注册表中可用的模型,并通过API公开它。

Deployment仓库包含将模型从测试注册表复制到生产注册表的代码(一旦模型成功通过测试),然后逐渐将新模型加载到Prediction API实例中,实现零停机时间。

Interface仓库包含一个非常基础的FlaskWeb界面,它与API通信以支持预测请求。

要访问上述仓库,请在计算机上创建一个项目文件夹,从该文件夹打开一个终端窗口,然后运行以下命令:

git clone https://github.com/sergiovirahonda/AutomaticTraining-Dataset.git git clone https://github.com/sergiovirahonda/AutomaticTraining-DataCommit.git git clone https://github.com/sergiovirahonda/AutomaticTraining-CodeCommit.git git clone https://github.com/sergiovirahonda/AutomaticTraining-UnitTesting.git git clone https://github.com/sergiovirahonda/AutomaticTraining-PredictionAPI.git git clone https://github.com/sergiovirahonda/AutomaticTraining-Deployment.git git clone https://github.com/sergiovirahonda/AutomaticTraining-Interface.git

Google Cloud Platform

注意:可以使用Google以外的云提供商。在这种情况下,需要遵循该提供商的程序。

对于Google Cloud Platform (GCP):

创建一个Google Cloud Platform账户。

在Google Cloud Platform上选择或创建一个项目。创建了一个新的项目,并将其命名为"AutomaticTrainingCICD"。尝试做同样的事情,然后在完成本教程后删除整个项目以避免收费。

检查账单是否已启用。

启用Google Kubernetes Engine、Compute Engine和Container Registry API。

安装并初始化Google Cloud SDK——一个终端包,它将允许与GCP服务交互。

在GCS上创建一个桶,它将作为模型注册表:

gsutil mb -l us-central1 gs://automatictrainingcicd-aiplatform
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485