Press "Enter" to skip to content

什幺是 MLOps ? 以 Machine Learning 角度看 DevOps 潮流

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

什幺是 MLOps ? 简单来说就是以 Machine Learning 为主的元素加上 DevOps 的概念让整个 Machine Learning 生命週期有一个完整的 Pipeline 管理, 如果说 DevOps 是为了解决 Developer 和 Operator 的问题,而 MLOps 就是为了解决资料科学家 (Data science) 和资料工程师 (Data engineer) 的问题

 

MLOps 与 DevOps 的差异 ? 这是我刚接触 MLOps 时心中的疑问。

 

与其说是差异,不如说 MLOps 是 DevOps 的延伸,MLOps 本身也涵盖了 DevOps 必须做到的版本控管 (Source Control)、持续整合 (Continuous integration)、持续交付(Continuous Delivery)、持续部署 (Continuous Deploy) 除此之外 MLOps 更多了资料集处理 (DataSet)、Machine Learning (Model training, Algorithms) 元素。

为何需要 MLOps ? 其实和 DevOps 的核心概念一样,就是为了让整个流程更为顺畅、自动化,让团队之间可以更紧密的合作,但 MLOps 更在乎以下要点

DataSet Sources

资料的来源通常很多元,也有可能是集中储存的大型 Datalake 无论是在哪里都需要考量如何自动化获取这些资料来源,而并非手动批次处理,当然我也遇过可能一个月才需要更新一次 DataSet 的情况就需要 Case-by-case 讨论。

Training Model 版本控管、演算法程式版本控管

基本上版本控管已经是不可或缺的一部分,MLOps 除了程式控管以外还必须考量参数配置,唯有最佳化的参数才能调教出最好的 Model,而每一次的版本 Release 纪录也是很重要的一环。

Training Model History

Training Model 的历程也是很重要的一环,常常听到 Data science 反应过去曾经 train 过某一版的 Model 效果很好,但因为没有留下当时的 Model 和参数纪录,即使有 train 好的 model 但也无法再重现当时 training 的设定。

Training Model Costs

记得过去有一位前辈跟我谈到 Machine Learning 是一个很花钱的技术,不是金融或电信业等够有钱的公司根本无法负担 training 要支付的庞大成本,但是 Cloud 的出现让 Machine Learning 的成本大幅降低,所以几乎在这个时代要进行 ML/AL 一定都少不了使用云端平台,而成本这件事情也随着 pay-as-you-go 的概念将钱花在刀口上。

Model 执行环境的一致性

说到要跑程式,当然免不了环境一致性啊,尤其是 Training Model 如果遇到环境问题导致 Inference 不理想可是很严重的问题,所以 Model 的环境几乎都是採用 Container 来跑,除了便利性以外更能确保环境一致。

Model 的回溯性

Model 的回溯性其实和 Training Model History 有着密切的关係,MLOps 的设计有一个很大的重点是「Model 必须纪录版号」举例 face-model-v1.0.1 而 training job 最好也是以 face-model-v1.0.1-train 命名,为的是可以回推当时是在哪一个 training job 产生出来的,而 training job 也要纪录使用的 DataSet, Algorithms, Config 用于反推。

平行训练 Model 的工作流程

Training Model 的 Scale-out,当你的 ML 团队逐渐扩大后,在同时间 training 多组 Model 的情况就会变多,最好在设计 MLOps 初期就把这件事情考量好,降低需要调整的幅度与风险。

Model Blue/Green deployment

程式要 Blue/Green,Model 当然也要能 Blue/Green 啊!一次更换的风险实在太大,即使 Test Data 再齐全也比不上 Production 环境那髒到不行的资料,如果能 Blue/Green 先分配新旧 Model 权重 (e.g. 10%/90%) 慢慢更换会是风险最低的方式。

Inference 的时机

Inference 的时机通常关乎 Deployment 的方法,是 Real-time 或 Batch 都需要被定义清楚,而 Real-time 通常需要一个 HTTP Endpoint 常驻等待被 inference 所以成本也相对拉高。

 

谁适合导入 MLOps ? 当初期需求量不大时且 train model 只需要短短几分钟,其实没有必要大费周章地建立一个 MLOps,跟 DevOps 的概念差不多,搞不好转头跟旁边的 Data science 乔一下就搞定了,根本不用浪费时间跑 Pipeline,但是当你的 ML 团队越来越庞大时, 通常 3 位以上就可以开始考虑 MLOps 的建立 ,因为 3 位以上就有可能产生小团体了 XDD …

 

这篇其实是一个比较粗略的 MLOps ,每一个团队 Build 出来的 MLOps Pipeline 因为应用情境与产业可能都会有一些不同,但核心概念大多相同,都是让时间与金钱花在刀口上。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注