在本系列文章中,已经介绍了机器学习操作(MLOps)的基础知识,包括MLOps的流程、模型训练、测试、打包和注册。本文将深入探讨模型部署和监控环节,这是将之前构建的机器学习模型投入生产环境的关键步骤。
部署模块使能够将之前构建的机器学习模型投入生产或类似生产的环境中,以确保模型的健壮性和可扩展性。这个模块包括应用测试和生产发布两个步骤,通过连续集成/持续部署(CI/CD)流水线将开发环境与生产环境连接起来。
CI/CD流水线是软件开发中的一个实践,包括两个主要部分:持续集成(CI)和持续交付(CD)。持续集成是指所有代码存储在中央仓库中,频繁地进行修改,并集成产品。持续交付则是自动化产品(软件/应用)的发布过程。
在前一个阶段,注册了训练好的模型,并使用测试数据评估了模型。但是,作为一个完整的应用,还没有测试它。因此,有“应用测试”阶段,该阶段在类似生产环境的测试环境中进行。这个环境将模仿生产环境,但并不完全相同。
模型作为API或流媒体服务部署在测试环境中。部署后,模型将使用未用于训练模型的测试数据预测目标。在测试环境中,将测试模型的健壮性和性能。质量保证专家将自动或手动检查模型的健壮性和性能,以获得良好的结果。一旦机器学习模型的性能达到标准,它将被批准部署到生产环境。
一旦模型在测试环境中获得批准,它们就准备好部署到生产环境了。这将通过CI/CD流水线实现。
监控模块涵盖了之前构建并部署到生产中的模型。在监控阶段,监控产品化的模型,分析结果,并管理部署的机器学习模型。
在监控阶段,监控机器学习模型和应用的性能,分析指标和结果,并在需要时对机器学习应用进行治理。
这个阶段监控信息、模型漂移和应用性能。有时,还需要监控生产中的设备性能。生产设备的绩效和健康状况可以通过遥测数据(如温度、压力、磁力计等)来监控。
在这个阶段,主要监控数据完整性、模型漂移和应用性能。通常,会监控部署在连接到CCTV摄像头的计算机上的API服务的准确性、F1分数、精确度和召回率,以对汽车和卡车进行分类。
一旦得到结果,就需要分析这些结果以进一步改进。这个阶段非常重要,因为它将对业务决策产生重大影响。将计算模型的公平性、信任度、偏见、透明度和错误,以提高模型性能。
有时,模型在几天、几周或几年后可能表现不佳。这是因为依赖(目标)变量的属性发生了变化。这种变化可能使模型变得无用。因此,这种变化被称为模型漂移。如果在用例中发生这种情况,必须分析失败的结果以获得目标变量的新属性。
在监控模型并分析结果之后,需要生成警报并采取行动来管理系统。例如,在某些用例中,当模型的性能不符合标准时,需要向相关团队和部门发出警报。在这种情况下,可以为准确性、精确度和召回率等指标指定一些阈值。如果模型的性能低于阈值,必须生成警报。
MLOps是机器学习、开发和运维的结合。目标是将模型部署到云端,以便全球用户都可以从他们的地方使用它。机器学习团队的工作不会在模型部署到云端后就结束,下一个重要阶段是监控它们。在监控性能时,如果性能不够好,可能会有机会改变模型的某些特性或改变模型本身。