在当今的科技领域,机器学习(ML)模型的应用越来越广泛,但将这些模型从实验阶段成功转移到生产环境却是一个挑战。MLOps作为一种新兴的实践,旨在弥合数据科学家与IT运维之间的鸿沟,确保机器学习模型能够高效地部署和维护。本文将简要介绍MLOps的基本概念,并探讨如何将机器学习模型投入生产环境。
机器学习模型本质上是实验性的,需要尝试多种模型和不同的超参数以找到最佳模型。然而,超过85%的机器学习模型未能投入生产,原因在于IT团队与数据科学家之间存在隔阂,且大多数IT组织对部署机器学习模型所需的软件工具和专业硬件(如Nvidia GPU)不熟悉。MLOps通过整合数据科学家、DevOps团队和机器学习工程师的最佳实践,协同工作,将算法过渡到生产系统,从而覆盖机器学习模型的端到端生命周期阶段,包括模型的源代码、训练、打包(版本控制)、验证(测试)、部署、监控(模型可能因数据变异性高而随时间退化)和重新训练。
MLOps工作流程中常用的一些正式术语包括DevOps和ML Pipelines。DevOps是开发和运维实践的结合,旨在加快组织交付应用程序和服务的能力,缩短系统开发生命周期,频繁地交付特性、修复和更新,与业务目标紧密对齐。ML Pipelines是自动化机器学习多个步骤的过程,如数据提取、预处理和部署,最终产生最终的机器学习模型。
在MLOps中,CI(持续集成)、CD(持续交付)和CT(持续训练)的概念与软件开发中的类似,但ML系统中有一个额外的组件CT,因为模型可能因数据变异性高而随时间退化。因此,在ML系统中,CI更多地是测试和验证数据和模型,CD更多地是关于训练管道(而不是单个软件包)并自动部署模型预测服务,而CT是ML系统独有的,负责在设定的模型阈值被突破时自动重新训练模型。