本篇文章架构
为什么想要使用CI/CD pipelines练习教材来源流程与架构课前準备1.为什么想要使用CI/CD pipelines
用Azure Machine Learning (AML)服务来执行机器学习专案真的很方便。在一开始还不是很懂这个服务的时候,会觉得没有AML也没有关係,但是随着越来越了解这个工具之后,用来管理与辅助模型开发真的方便许多。如果你还没有AML使用经验、或者对于AML属于初阶使用者,想要开始学习与感受这个服务的强大,非常推荐一起学习 Azure Machine Learning 系列文章。
随着团队的需要管理的模型越来越多、许多模型服务上线了一阵子之后,一定会遇到模型再训练、部署与管理的难题,如果能够把AML模型训练、AML模型注册自动化,会减轻开发人员许多负担,这个理念就是CI/CD,自动整合与部署(Continuous Integration/Continuous Deployment)。
如果在模型生命週期中如果能导入了CI/CD流程,代表模型开发是有依循MLOPS的精神。MLOPS的精神是什么呢?我会认为最主要会有两大面向,第一个就是前面提到的「自动化流程」,第二个就是「版本控管」。
机器学习的三大元素:【资料】、【训练模型的程式码】、【模型】都能做到自动化流程与版本控管,
自动化流程「清整训练资料」自动化 (data preprocessing)「训练模型」自动化 (model training)「部署模型」自动化 (model depolyment)版本控制资料版本 (training dataset)训练模型的程式码版本 (training code)模型版本 (models)如果做好三大元素的版本控制,那么模型也可以被追蹤、也会拥有高度的再现性。MLOPS有不同做法,会因为专案需求不同,选择不同自动化程度、和版本受控程度。如果团队想要在自己的机器学习专案做到CI/CD pipelines,会需要使用Azure DevOps服务。
2.练习教材来源
本次练习,我用的是微软的AI MVP分享的教学Azure MLOps - DevOps for Machine Learning,如果想要知道原汁原味的教学,可以看看老师的影片,这系列的发文会使以重现老师教学、还有概念补充为主,另外,MG的频道里面还有许多也很棒的练习教学,对初学者帮助很大。
在这个练习里面,会需要的必备知识如下:
了解Git版控原理了解Azure基础知识Bash scripts / 基础Linux指令曾经使用过Azure Machine Learning (AML)训练/注册/部署模型3.流程与架构
本系列练习架构如下:
建立机器学习的资源群组在DevOps中建立CI pipeline在DevOps中建立CD pipeline实现CI/CD pipeline4.课前準备
Azure DevOps免费帐户是有些限制,但是在我们这次练习範围中都可以实现,直接开始使用吧Azure DevOps。
接下来,建立组织名称:
因为免费帐户限制,需要填写申请表格才有免费的使用时间额度,请至Azure DevOps Parallelism Request填表格,因为会需要三个工作天,练习前需要先申请,申请通过后,会收到一封通知信。
为了执行机器学习,我申请了一个新的Azure试用帐号,搜寻机器学习或Machine Learning,点选了之后,建立资源:
并且开启了一个机器学习的资源群组,其他相关的资源会同时申请建立。
简而言之,上传训练资料的时候会需要预测的储存帐户(Storage),部署模型时会需要容器登入(Container Registry),等等相关资源,所以现在就乾脆一起建立,要自己重新命名或者使用预设的名称也可以。

建立完后,练习的事前準备就完成了!
下一篇【Azure MLOps - 2】使用Azure DevOps建立专案与连线设定
或其他篇
【Azure MLOps - 3】使用Azure DevOps建立训练模型的CI pipeline(上)
【Azure MLOps - 4】使用Azure DevOps建立训练模型的CI pipeline(下)
【Azure MLOps - 5】执行Azure DevOps CI pipeline
【Azure MLOps - 6】建立CD pipeline:把机器学习模型部署到staging area
【Azure MLOps - 7】建立CD pipeline:把机器学习模型部署到production area
【Azure MLOps - 最终篇】END TO END CI/CD MLOPS