Day 06 : 什麽是 MLOps

各种商务情境都在思考如何融入 AI 提供更适切的智慧化服务,在Day 04 : 以资料为中心的人工智慧 Data-Centric AI 介绍透过关注资料为中心的 AI 焦点,更结构化的思考用於生产中的 ML 系统, MLOps 是种系统化思考的精神与落实的方针,也是发展中的学门,在这未定容许思辨的时刻,以下分为微软、Google、持续交付基金会(CDF)的定义与说明:

MLOps 定义

Google

微软

  • 微软在 MLOps on Azure 介绍说明:
    • MLOps 是使资料科学家和应用程序开发人员能够帮助将机械学习模型投入生产。
    • MLOps 使您能够追踪、版控、稽核、认证、重复使用 ML 生命周期中的每项资产及简化管理生命周期。

持续交付基金会CDF

  • 孵育出 Jenkins 开源专案与社群,由 Linux 基金会成立的「持续交付基金会(CDF)」也意识到ML布署到现实情境中的问题,於2020年2月宣布成立 MLOps SIG (CDF Special Interest Group - MLOps),依据 CDF MLOps Roadmap 2021,将 MLOps 定义为:

    • MLOps 为 "DevOps" 方法论的扩展,并将机器学习和数据科学资产作为 DevOps 生态中的一等公民纳入其中。
    • MLOps 应被视为一种实践,以与所有其他技术和非技术要素统一的方式持续管理产品的 ML 方面,以成功将这些产品商业化,并在市场上具有最大的可行性。这也包括 DataOps,因为没有完整、一致、语义有效、正确、及时和无偏见的数据的机器学习是有问题的,或者导致可能加剧内置偏见的有缺陷的解决方案。
  • MLOps 是与不是

    • MLOps 旨在您的 ML 产品服务开发、布署及维运过程中,开发阶段能持续整合、布署能实现持续布署,更藉由 ML Pipeline 缩短沟通成本,让资料科学家能自动化并在生产系统中获得宝贵的见解,让营运团队提供可再现性、可见性及托管服务和计算支援。
    • 另外, CDF MLOps Roadmap 2021,也提出MLOps 并不是"将 Jupyter Notebooks 放入生产环境" (这句话莫名莞尔)。
      /images/emoticon/emoticon07.gif

MLOps 与 DevOps 关系与区隔

  • MLOps 源自於资料科学团队与营运团队2者之间的彼此合作与需求,如同 DevOps 期待整合开发与维运实现敏捷开发的过程。
  • MLOps 与 DevOps 目标一致,缩短系统开发周期,确保持续开发高品质的软件服务, CI/CD 并在生产中维护,但 ML 有它独特需要注意的不同需求, 版本控制是为了追踪与捕捉资料与世界的变化,不仅仅是纪录程序本身。
  • 除了 ML code,诸多在 ML 专案实现、维运过程中的流程组合构成 MLOps 。

MLOps 与 Data-centric AI

  • MLOps 让处理资料更系统化,不再将资料处理任务停留在是肮脏、临时起意、靠经验的印象,而是采更系统化的方式看待整个工作流程,符合以系统化看待以资料为中心的 AI 。
  • A Chat with Andrew on MLOps: From Model-centric to Data-centric AI 有吴恩达的说明及讨论,这也是他第一次公开说明 Data-centric AI,在系列文 Day 04 有些说明可参考。

小结

  • MLOps 是持续发展的新兴学门,本日试图摘述不同 MLOps 的定义论点,笔者倾向能一句话讲清楚的方式: MLOps 是一种工程文化与实践,旨在 ML 系统开发与 ML 系统操作。可以让更多人认识 MLOps 。
  • MLOps 的实现可以让用於生产中的 ML 服务,具有多管道安排的能力、管理 ML 产品生命周期的能力、扩展 ML 服务的能力、追踪 ML 系统健康的能力、CI/CD、CT、ML 模型治理的能力。

参考


<<:  每个人都该学的30个Python技巧|技巧 6:各种运算子(下)(字幕、衬乐、练习)

>>:  [Day 05] 开发之前,先把需求弄清楚

Day 30 | ContentProvider

可以使用ContentProvider将资料库分享给其他应用程序共享资讯,或从其他应用程序操作资料 ...

Day35 - 「登愣登愣,登愣登登登」~ 隐挑战 Day11

技术是成功的基石,耐力是飞翔的翅膀,坚持下去终将展翅高飞。 老实说, 今天已经跟团员去吃铁人赛庆功...

自动化 End-End 测试 Nightwatch.js 之踩雷笔记:点击物件 III

点击物件是蛮基本的操作,不过还是有很多地方需要注意。 回顾 第一天提到了如果该物件是 div,例如这...

[Android Studio 30天自我挑战] Progress Bar练习2

上一篇的ProgressBar练习是以Horizont的方式 这篇是以环形转圈圈的ProgressB...

[13th][Day28] why k8s

为什麽要用 k8s ? 使用 k8s 的理由有很多,退一万步来说 .... IT 就是一个由新技术驱...