[DAY30] 浅谈 Azure Machine Learning 的 MLOps 做法

DAY30 浅谈 Azure Machine Learning 的 MLOps 做法

终於来到最後一天,我们学完了整套 Azure Machine Learning 的基础用法了,最後我们来谈谈 MLOps 的部分吧!

「每个来跟我谈 MLOps 的,都只是想要卖我工具!」

之前笔者在客户做专案时,和客户聊到了 MLOps,客户就说:「每个来跟我谈 MLOps 的,都只是想要卖我他们开发或是代理的工具!」这句话真的很有意思,因为要做好 MLOps,真的不能缺少工具。

根据 ml-ops.org 网站里所写的,在建构一个 MLOps 环境时,有几个 Component 是不可或缺,而这些 Component 有都着对应的工具:

1. Source control:
这个最没有争议,版本控制就是 MLOps 的基础,也是 DevOps 的基础。在 AML 里也是可以使用 git 做版本控制,但是除了程序码以外,资料集、模型等等的,也是需要做版本控制的。资料集和模型在 AML 里的版本控制,我们也在过去 30 天里面学到了。

2. CI/CD service:
在微软的生态系里,CI/CD 服务主要会采用 Azure DevOps 这项服务来建构,当然这项服务也可以整合到 AML 之中。不过短短的 30 天内难以涵盖到这部份,未来或许还有机会和读者们分享这一块的知识。

3. Model Registry:
要导入 MLOps,模型的管理是非常重要的。这项功能我们也在 AML 里也是有的,而且我们再过去的 30 天里一再地看到。

4. Feature Store:
我们在做资料前处理时得到的 feature,要可以存起来,并可以在模型训练时的 Pipeline 里使用。还记得我们在讲 Pipeline 时教过的 OutputFileDatasetConfig 吗?这就是一种 Feature store 的作法。

5. ML Metadata Store:
我们要可以追踪模型训练时的 metadata,包含了参数、超参数、metrics 等等的讯息,甚至要可以重现我们的模型。我们在教 SDK 的过程中,教过了 Run、MLflow、hyperdrive、还有 Application Insights 等等的功能,都是可以达成这项目的的哦!

6. ML Pipeline Orchestrator:
这个是在讲 Pipeline 步骤的自动化。我们之前也教过 PythonScriptStep,以及其自动化的方式啦!

这样看下来,有没有觉得 AML 真的是 MLOps 很棒的工具?把我们做 MLOps 所需要的功能都提供了呢!

微软的 MLOps maturity model

再来谈谈微软写的 MLOps 成熟度模型的五个等级吧!

0. No MLOps:
恩,就是都手动人工来做。

1. DevOps but no MLOps:
这个阶段已经开始导入 DevOps 了,可是对於 AI 模型和环境的管理还很差,也很难重现训练出来的模型。

2. Automated Training:
训练的环境已经完全受控和可追踪,也可以重现训练出来的模型,但是 release 还是手动的。

3. Automated Model Deployment:
基本上已经都自动化,并且可以追踪。有完整的训练、测试、生产的环境了。

4. Full MLOps Automated Operations:
整个环境都是自动且易於监控的,并且生产系统能提供改善的资讯、甚至有些时候自动改善。系统可以接近零停机。

虽然很多公司初期导入 AI,都会在 0 级或是 1 级。但是 MLOps 是企业大规模导入 AI 一定要走的路,如果你公司只打算导入一个 AI 专案并且就此停住,或许可以考虑不用 MLOps,但是这是不可能的事情(如果真的有,建议快点换工作)。大家就尽可能利用 AML 的优势,把自己的公司的 MLOps 成熟度升级吧!

结语

这是我第一次参加铁人赛,没想到居然完赛了,真的很感动。

这段日子我很难熬,因为女儿刚出生,事情超级多超级忙。而且刚出生的宝宝会在半夜哭闹,我都半夜爬起来喂奶,喂完奶哄宝宝睡了之後,就开始写铁人赛的文章。真的写得很累很辛苦,尤其我又希望图文并茂,每篇文章都是亲自实作并且截图的。後半段在写 AML SDK 时,也坚持每段程序码都跑过。第一次写铁人赛真的不小心把格局弄得太大,差点没把自己操死。还好看到女儿和老婆安详的睡眠,我也就有继续努力的动力了。

再来是做为现役的 Microsoft AI MVP,我觉得我有义务把这麽好的工具分享给大家,希望大家可以在导入 AI 的过程中,可以更加的顺利。这样子的信念也支持了我写完这 30 天的动力吧!


<<:  Day30-我也想要写感言_终於解脱啦

>>:  JS Library 学习笔记:Three.js 初见面,在2D画面创造三维世界 (五)

Day 8: jest-dom

Jest-Dom 以及接下来的主角React-Testing-Library 在做测试时,我们需要针...

30天打造品牌特色电商网站 Day.18 文字的样子

之前曾在 Day8 有跟大家提过字体常用的样式,今天来带大家深入探讨各式文字怎麽设计,才会带给使用者...

23. 闲聊 x VFS 办理英签申请

今天去 VFS 办理英签申请,纪录一下流程骗一天文章。 有後续应该也不会在这里更新 XD 流水帐 V...

LineBot - 自动回覆 API

申请完 Line 机器人的帐号後,接下来要做的就是建立一个自动回覆的 api 程序,Line 也有提...

Day#07 新增(2)

前言 接续着前一天没做完的新增功能,今天继续接着做~边做也一边介绍用到的方法与程序码。 Storyb...