在DevOps的概念尚未被完全消化之际,MLOps这一新术语又出现在视野中。对于那些已经理解DevOps的人来说,理解MLOps并不困难。如果知道DevOps和机器学习(ML)的含义,那么将这两个概念结合起来,就能大致理解MLOps的含义。那些最初不理解DevOps概念的人可能会对MLOps感到困惑。本文将详细阐述MLOps的概念,帮助不需要了解DevOps也能把握MLOps的精髓。
有时候,认为技术领域的术语实在太多了。也许是因为技术领域是人造的,所以事物容易迅速繁殖和变得复杂,相比之下,在自然界中即使是微小的变异也需要数十亿年的时间。有时觉得,如果将所有术语收集并整理,一些术语可能会变得多余,因为它们是重复的。技术是一个市场,所以每个品牌都试图保持独特性,导致术语泛滥成灾。
MLOps是Machine Learning Operations的缩写,从字面上理解,它就是涉及机器学习的一系列活动(操作),但它被精心设计以更高效地满足行业标准。MLOps创建了一种从开发到部署再到维护的标准方法,用于开发ML模型。MLOps的核心原因是集成。不仅仅是构建模型,还包括ML从业者与整个技术世界的协作。
ML实践与外部世界的这种结合成为创建机器学习和AI解决方案的非常有用的方法。它还允许数据科学家和ML工程师协作,改进新模型的开发方式和旧模型的维护方式。Azure ML + AzureDevOps管理数据集、实验、模型和注入ML的应用程序。
MLOps中提出的指导方针和最佳实践有助于提供一个系统地改善常规机器学习生命周期的氛围。由于ML旨在改善人类生活,必须有一种方法将其引入生活的各个方面。这就是ML工程师与IT和其他技术领域携手合作的地方。这只是DevOps和ML的融合。
也可以将MLOps看作是劳动分工的一部分。ML工程师不必再担心从模型构建到部署再到维护和行业需求的全过程,他只需要专注于ML。他与“Ops”或常规的DevOps系统携手合作。
MLOps的好处在于开发更高效、可扩展和可控的ML系统。ML的承诺在这个标准化操作中变得容易实现。它创建了一个管道,促进数据团队节省开发时间,同时实现高性能系统。例如,即使是部署的系统也可以进行持续测试,自动满足新需求。让尝试指出MLOps的一些更多好处。
版本控制是软件系统中的常见活动。开发的数据和模型也需要在这个领域进行版本控制。在模型部署后向系统引入新数据也可以很好地进行版本控制,无论是作为新数据使用还是与历史数据合并。这可以通过元数据和其他方式完成。对于某些系统,合并旧数据可能是有意义的,而在某些情况下则不是。在这两种情况下,MLOps都会提供解决方案。
作为一个团队工作,而不是让ML工程师单独工作,其他集成空间也单独工作,两者可以更有组织地工作。这可以防止许多问题并提高效率。
数据和模型验证。科学家现在有一个更大的团队来验证和验证模型的结果,无论是在部署之前、部署期间还是部署之后。验证不仅可以发现真相,还可以带来新的可能性。即使是呈现给ML工程师的数据也可以由MLOps进行适当的验证。
ML管道。让从这个角度看看机器学习管道以及MLOps如何介入。MLOps更多地从用户端看待ML,以及如何最好地在生产中使用它。
数据收集和问题范围。这涉及到ML的第一步。数据必须被仔细识别,不仅仅是作为数据,还基于范围或问题领域。除了ML中这一步的通常好处之外,这可以进一步改进,以节省其他问题,如避免数据泛滥。尽管ML需要大量数据,现在仔细处理这种需求,避免其他挑战。
数据验证和验证。在验证中,检查数据是否完整、格式良好、组织良好、干净等;在验证中,仍然确认它是否满足外部世界的需求。这些对于避免浪费时间非常重要。
特征规范和提取。不仅可以消费,还可以选择最适合目标的特征。并非所有内容都可能需要最终的预测、聚类或优化。在这里,可能会发现需要进一步清理数据。
内部配置。MLOps的目标是一个健壮的系统,它应该在其子系统和外部系统之间有高效的通信。
编码。代码还应该遵循最佳实践。不仅仅是作为一个自然的ML模型编码,还考虑其他艺术,这些艺术也将支持MLOps的目标。编码方式应该促进良好的文档编写和自动化测试和集成。
MLOps是Machine Learning Operations的缩写。从字面上理解,它就是涉及机器学习的一系列活动(操作),但它被精心设计以更高效地满足行业标准。
MLOps涵盖了各种学科,相应地协助企业拥有高效的工作流程,并避免开发过程中的许多挑战。根据研究,只有少数ML公司有效地使用了它。
机器学习模型在非常动态的空间中努力。变量有很多可能性和形式。数据是连续的,需要比硬编码操作更多的关注。
MLOps的主要好处在于开发更高效、可扩展和可控的ML系统。