DevOps 在过去 15 年里一直是软件开发不可或缺的一部分。众所周知,“左移”文化被广泛应用于各个组织,因为它引入了新技术、自动化和人员系统,以帮助缩短软件开发生命周期并提供高质量软件的持续交付。
近年来,随着人工智能的兴起,随着开源技术的扩散,企业交付和消费人工智能的结构发生了巨大变化。 MLOps 是对当前企业将机器学习投入生产所面临的困难的合乎逻辑的反应。
什么是 MLOps?
机器学习操作 (MLOP)机器学习工程的主要功能,除了维护和监控要求之外,还专注于简化将机器学习模型投入生产的过程。
与 DevOps 类似,它是一个涉及数据科学家、DevOps 工程师和其他 IT 利益相关者的协作功能。从本质上讲,MLOps 实践允许用户对整个 ML 开发生命周期进行版本控制。
MLOps 与 DevOps:正面比较
MLOps 与 DevOps 范式有很多共同点。 DevOps 带来了一种快速、持续迭代的方法来部署应用程序,而 MLOps 则借鉴了相同的原则将机器学习模型投入生产。
下表概述了 MLOps 与 DevOps 在以下方面的比较:
- 团队技能
- 开发
- 测试
- 部署
- 生产
<标题>
标题>
<正文>
软件开发人员、QA 和 IT 管理员。
质量保证专业人员和 IT 管理员。
哪种组合可以提供最佳性能。
应用程序代码的单元和集成测试。
以捕获任何剩余的错误。
以及重新训练例程。
,然后部署到生产服务器上。
错误和缺陷。
表>
需要注意的是,由于其开发和交付要求,MLOps 流程的每个步骤都与 DevOps 不同。考虑到这一点,让我们详细讨论上述每个步骤。
团队技能
机器学习模型作为具有多种功能和功能性 UI 的更广泛应用程序的一部分进行部署。构建应用程序需要软件开发人员、QA 测试人员、数据库工程师和管理员、安全专家以及 IT 管理员进行环境设置。
虽然突出显示的角色适用于这两个概念,但 MLOps 需要额外的技能,通常是数据科学家和机器学习工程师。这些专业人员负责处理数据提取、创建数据管道和处理模型训练。
开发
在 DevOps 的背景下,开发是指根据客户需求将新功能编码到应用程序中或修复现有错误。此过程涉及多个开发人员处理应用程序的多个模块。
另一方面,MLOps 下的开发需要开发强大且可重用的 ETL 和模型训练管道。不断的发展确保了管道的正常运行。此外,它还涉及尝试新的数据功能和机器学习模型以提高性能。
测试
测试是 DevOps 和 MLOps 的重要组成部分。对于 DevOps,测试阶段评估代码的质量,以检查它是否能在生产中保持不变。因此,DevOps 涉及广泛的单元和集成测试,并评估每个模块以检查它们是否按预期运行。
这些测试以及数据质量检查和模型性能评估也存在于 MLOps 中。数据检查评估数据模型是否存在可能破坏管道的意外架构更改,而后者则评估新模型与之前模型相比的性能。
部署
部署阶段涉及将必要的更改推送到生产环境。对于 DevOps,这意味着打包代码及其所有必要的配置和依赖项,并将它们传输到生产服务器。
MLOps 部署涉及设置持续集成 (CI)、持续部署 (CD) 和持续培训 (CT) 管道。 CT 管道收集新数据、应用转换并重新训练模型。这些新模型是使用 CI/CD 管道结构部署的。
生产
这两种范例的生产阶段都涉及健康检查和应用程序监控。 DevOps 监视应用程序是否出现意外错误和崩溃。它还监视服务器的运行状况,检查资源利用率以防止停机。
相比之下,MLOps 监控涉及监控模型性能以检查其是否符合生产标准。此外,它还监视数据管道是否有任何故障。
常见 MLOps 挑战
尽管 MLOps 程序具有诸多优点和优势,但它也面临着一系列独特的挑战。其中许多挑战都与数据和模型管理有关。
随着训练和部署管道的每次迭代,管道组件的先前版本都将得到有效维护。
- 数据和模型版本控制:作为 数据和模型随每次训练例程进行更新,之前的版本必须保留以供将来参考,以便轻松回滚。这需要高效且强大的存储基础设施。
- 数据安全问题:用于训练的数据必须保存在安全的环境中,安全免受恶意攻击。
- 模型指标跟踪:模型指标必须被跟踪以监控性能。这些指标描述了模型是否按预期运行或者是否需要更改基础架构。
- 数据漂移监控:数据漂移在其分布发生变化时发生。必须根据预定义的指标不断监控数据,以检测任何异常变化。如果检测到漂移,则必须重新训练模型以保持准确性。
从更大的角度来看,很明显 MLOps 并不是一个全新的概念。相反,它是原始 DevOps 范式的扩展。它添加了额外的步骤和功能来适应数据科学的原理。因此,新的 MLOps 文化通过简化数据管道的创建、特征工程、模型训练和部署,使数据科学家受益。
结论
DevOps 文化旨在自动化软件产品开发、测试和部署。然而,传统的 DevOps 并不适合数据科学实践,这就需要 MLOps 范式的概念。
MLOps 借鉴了 DevOps 的一些方面,但包含了一些用于自动化数据科学和机器学习项目的元素。它包括更广泛的技能,例如数据工程师、数据科学家和机器学习工程师。
此外,DevOps 集成了软件应用程序,而 MLOps 则对数据管道以及机器学习模型训练和部署实施质量检查和测试。
这些实现使组织能够构建可靠的数据基础设施,并为机器学习模型应用持续的实现、部署和培训。