每个人都应该理解这三个基本的 MLOps 概念
提供机器学习解决方案远不止仅提供模型那么简单。机器学习运维 (MLOps) 的基础理论可以帮助数据科学团队更快、更有信心地交付模型,其涉及版本控制、测试和流水线这三个关键概念。
MLOps(https://ml-ops.org/)是指机器学习运维。这是一种旨在使机器学习在生产中高效、流畅的实践,它不是一项单独的技术,而是对如何正确做事的共同理解。
MLOps 的实际实现包括采用某些最佳实践和为支持这些最佳实践搭建的基础设施。让我们来看一下,MLOps 改变机器学习如何开发的三种方式:它对版本控制的影响,如何构建保障措施,以及关注机器学习流水线的必要性。
1. 版本控制不仅仅适用于代码
一谈到在组织内利用机器学习,就应该最先考虑版本控制。然而,这个理念并不仅仅适用于驱动模型的代码。机器学习版本控制应该涉及在训练算法时使用的代码、底层数据和参数。
ML 的版本控制并不像传统软件那样只局限于代码。可以从建立再现性检查表(https://www.cs.mcgill.ca/~jpineau/ReproducibilityChecklist.pdf)开始。
首先,让我们来讨论一下代码中的版本控制,应用 Git 通常能够充分满足这一领域的需要。
其次,还应该针对用于训练模型的数据进行版本控制。场景和用户在不断变化和调整,因此你的数据也不会一成不变。因此,需要适当地进行版本控制以维持再现性。
最后不仅我们用来构建模型的数据在演变,元数据也在演变。元数据指的是所收集的关于底层数据和模型训练的信息,元数据需要严格的版本控制。
最后,必须对模型本身进行适当的版本控制。通过适当的版本控制,你可以确保任何时候都具有可再现性,这对于治理和知识共享是至关重要的。
2. 在代码中构建保障措施
当涉及到在机器学习过程中构建保障措施时,应该让它们出现在代码中,而不仅仅是停留在你的大脑里!
尽量避免手工或不一致的流程。所有收集数据、数据测试和模型部署的过程都应该写入代码。
数据测试通常会以一种专门的方式进行,但它应该予以程序实现。应该在机器学习流水线中编写代码,以保证训练数据应该是什么样的 (训练前测试) 和训练模型应该如何执行 (训练后测试)(https://www.jeremyjordan.me/testing-ml/,这样你就可以放宽心了,因为生产模型遵循你设定的所有规则。实现 MLOps 平台的伟大之处在于,所有这些步骤都是自动编写和可重用的。这些保障措施很容易就可以用于其他机器学习用例,并且可以应用相同的标准。
3. 流水线是产品,而不是模型
应该认识到的第三个 MLOps 概念是,机器学习流水线是产品,而不是模型本身。机器学习流水线的最终目标是实现自修复的机器学习系统。机器学习模型对于克服业务挑战和满足组织的即时需求非常重要。然而,有必要承认模型只是暂时的,不像产出它的系统。
支持模型的底层数据会迅速变化,模型也会漂移。这意味着最终,将不得不重新训练和调整模型,以在新的环境中提供准确的结果。
如果没有 mlop 和建立的机器学习流水线,更新模型将即耗时又很困难。流水线消除了这个问题,而不是临时完成这些任务,只在出现问题时解决问题。它为模型更新和变更提供了一个清晰的框架和管理。
机器学习流程包括收集和预处理数据、训练机器学习模型、将其投入生产,以及在准确率下降时对它持续监控以重新启动训练。一个构建良好的流水线可以帮助你在整个组织中扩展此流程,以便你可以最大化地使用生产模型,并确保这些功能始终符合标准。
开发的机器学习流水线还允许你控制如何在业务中实现和使用模型。它还可以改善部门间的沟通,使其他人能够评审流水线 (而不是手工工作流),以确定是否需要进行更改。同样,它减少了生产瓶颈,并允许你最大限度地利用数据科学能力。
总而言之,每个人都应该理解这三个基本的 MLOps 概念:
在整个机器学习过程中,版本控制是必不可少的。这不仅涉及代码,还涉及数据、参数和元数据。
应该建立自动工作的保障措施——不要依赖人工或不一致的过程,从而使机器学习模型的结果存在风险。
最后一点,流水线是产品,而不是机器学习模型。一条成熟的流水线是长期支持生产机器学习的唯一途径。
本文完
本文为《MLOps 正在改变机器学习模型的开发方式》概述,没有看过瘾的伙伴记得阅读原文哦(https://mp.weixin.qq.com/s/R3gsEXEdZyWDip24nufRsw)
评论