MLOps最佳实践:引入敏捷的MLOps

344 阅读5分钟

image.png

不是每一个机器学习模型都能进入生产。部署、优化和运行ML模型是一个重大挑战,有很多出错的空间。训练服务倾斜、模型性能衰减和无意的模型偏差只是其中的几个潜在问题。处理大规模的敏感数据、扩展ML模型以及创建/管理ML管道只会增加挑战。

这就是MLOps出现的地方。作为DevOps、数据工程和机器学习的组合,MLOps可以帮助缓解一些挑战,并简化端到端的流程。MLOps简化了管理过程,使生产环境中的许多ML和深度学习模型自动化,并提高了培训和成果的质量。

高效的MLOps战略为人工智能和机器学习项目创造了一个精益、敏捷的过程。

什么是敏捷MLOps?

敏捷MLOps是一个简化和自动化机器学习模型开发和部署的过程。通过纳入DevOps的元素,如持续集成和持续交付(CI/CD),敏捷MLOps在机器学习模型的生命周期中高效、可靠地部署ML模型。

敏捷MLOps的最佳实践

MLOps在很大程度上借用了软件开发的敏捷方法,以提高灵活性和交付速度。这些最佳实践可以帮助你优化产品的开发。

首先建立商业目标

为了优化模型性能,你需要明确定义你的目标,以及你需要从结果中获得什么信息。换句话说,你想从数据中得到什么?虽然这听起来很简单,但人工智能和机器学习项目往往有多个利益相关者。在模型建立、模型训练或将模型投入生产之前,你需要就商业目标和如何实现这些目标达成共识。

召集合适的团队

在部署敏捷开发流程时,你的数据科学、工程团队和运营团队必须在目标上保持一致。你必须把你建立生产模型所需的所有主题专家、数据科学家、软件工程师和分析师聚在一起。

评估你的团队并填补任何技能差距,对于减轻任何技术债务和优化模型性能至关重要。在敏捷开发中,你还需要发展一种团队氛围,以便于:

  • 沟通和协作
  • 团队的凝聚力
  • 平衡团队成员的贡献
  • 协调

成功实施MLOps需要一个团队。他们需要能够很好地合作,以实现MLOps的好处。

允许自我组织的团队

有效的开发团队的一个关键组成部分是他们通常是自我组织的,并决定自己的路径。他们聚在一起,创建框架,如何执行工作,以及谁将做什么。任务被建立在一个时间表中,并被分为较小的迭代,在每个冲刺阶段完成。

自组织团队分享管理团队的责任,必须能够从错误或失误中学习和适应。

时间框定

时间是一种限制性的约束,所以有效地管理项目的规划和执行是至关重要的。MLOps从业者通过给特定的活动规定固定的时间来克服这些限制,包括:

  • 冲刺计划:冲刺计划是确定每个冲刺期间需要完成的任务并设定目标的过程。会议时间根据冲刺的持续时间而变化,但通常在冲刺的每一周最多持续两个小时。
  • 每天的scrum:采用敏捷的方法,团队每天都会对其表现进行评估。敏捷的MLOps团队聚集在一起,分享哪些是有效的,哪些是无效的,然后确定最佳的前进道路。为了提高效率,这些会议每天在同一时间、同一地点举行,通常持续15分钟。
  • 冲刺回顾:在冲刺的最后一天,团队成员回顾进展和结果,以验证成功完成冲刺目标和未解决的问题。冲刺回顾的时间框架一般限制在每周冲刺的一个小时。
  • 冲刺回顾:冲刺回顾是一个单独的会议,重点是冲刺期间学到的东西,以浮现、错误、陷阱,并确定流程改进,使下一个冲刺更有效率。冲刺回顾会也应该限制在每周冲刺的一个小时内。

数据和模型验证

也许开发机器学习模型的最重要步骤是验证数据集。MLOps依赖于一个严格的数据和模型验证过程。

模型验证依赖于数据的真实性,以确保真实世界的结果。准备数据可能是一项耗时而繁琐的工作,要确保所有东西都是标准化的,以便使用。例如,如果机器学习模型被训练用于图像检测,每张图像都需要被标记并裁剪出一个边界框。

数据科学家必须让每个人负责,确保数据被正确准备。

持续监控和训练

一旦模型准备好进入生产阶段,MLOps结合了DevOps的持续集成和持续交付(CI/CD)策略,但继续更新数据集和模型。这不仅允许对生产本身进行优化,还允许持续监测和培训以提高性能。