MLOps+DevOps,解决机器学习在应用性能生产运维中的困境

比起建立机器学习模型来说,模型部署需要更先进的IT技能。如果大数据专家和开发者们没能跟上节奏,未来堪忧。

在开发机器学习AI算法和投入生产时,企业面临更高挑战。机器学习开发的过程是实验性和探索性的过程,而部署则需要安全且易于管理的一致结果。

开发阶段的目标是优化算法准确性,属于实验性研究阶段,偶尔失败是正常的。然而在生产部署阶段,机器学习模型应用到客户的系统上就会有很多限制因素,例如成本计算、资源消耗以及数据模型等,这些因素在研究初期并没有考虑在内。原因是在研发中无法评估到所有可能性。而且同时要求具备更高的性能和准确性。实施的成本高,规模难度大。

看懂非结构化数据

将机器学习投入生产的最大挑战之一就是充分理解非结构化数据。因为在生产环境中,模型可能会有很多非结构化数据,结构化数据等大量不规则数据,而不是在类似“实验室”中恒定条件下的数据种类。

例如,当使用机器学习算法标记图像时,使用某个图像标记进程确定图像是什么,系统运行一段时间后,新进来的信息又修正算法引导其修正识别结果。这就需要有人在训练集中标记图像。为了能使图像标记样例更加精细化,用户必须在应用上标记好图像标签,这样算法才可进行自我学习,将像素识别成类似的图像。


MLOps+DevOps,解决机器学习在应用性能生产运维中的困境

很多机器学习进程遵循此流程

但对于机器学习模型的许多常见应用来说,流程更复杂。例如挖掘类似改善IT管理的支持请求数据,大数据专家需要找到一种方法来获取支持请求事件,并将每个数据点与内部应用数据相关联,以便优化算法,方便部署。这非常具有挑战性,即使将程序部署在合适的数据集上也是非常困难的。

数据漂移

另一个挑战是跟踪和响应投入生产的机器学习模型的性能变化。机器学习应用可能会存在数据漂移,这一点跟其他类型的应用不同。

与其他开发系统和产品不同,今天开发的机器学习产品可能明天就失败了。这是因为数据主导机器学习,数据模型具有潮汐性且变化多端。这就需要定期对新的真实数据进行重新训练,这类事情永远也做不完。

企业管理者应该把重点放在机器学习生命周期管理上,但实现难度很大。因为与模型管理相关的规则以及案例难以验证。这就使得将数据模型投入生产变得格外复杂。

提高数据监控准确率 优化数据重复训练方案

有一种解决方案叫开发机器学习部署流程,简称MLOps。它补充了与DevOps相关的流程管理。虽然DevOps专注于减少意外系统故障中断和降低系统访问率,但MLOps解决了机器学习模型的不可逆的衰减能力问题。

该流程首先需要创建一个最小可用产品或MVP,以便快速分辨出研发和部署之间的问题。一旦证明产品解决了用户问题并且测试数据与实际数据之间没有脱节,就有机会改进模型并提高准确性。

企业应当将模型系统在生产环境中运行几个周期,然后再尝试部署自动化生命周期管理。为了与数据漂移同步,模型创建者会设置数据训练频率,规划同步。尽管如此,仍无法保证模型中重复训练之间的最佳间隔保持不变,这可能意味着模型要么没有充分的重复训练,导致预测不准确;要么必须经常训练,这导致计算成本增高。

更好的做法是通过评估模型的瞬时准确性来跟踪AI机器学习模型的输入和输出的统计特征。这需要为机器学习团队添加数据监控工具并招聘数据分析师。

改善沟通

DevOps的出现是为了解决企业意识到开发人员和运营团队之间的沟通问题。MLOps可以解决构建机器学习模型的大数据专家与运营团队之间的问题。这更像是一种文化,而不是技术问题。

将机器学习投入生产时,大数据专家和运营团队之间由于在专业知识和经验方面存在差距,。而且两个团队通常都负责机器学习运营,但都不太会为对方着想。大多数企业都误认为数据团队可以解决所有问题,并持续始终,但结果往往相反。

将机器学习模型投入生产的成功必然需要运营从开始就与数据专家协作,这才可确保最终的模型产生良好效果,并且易于管理和升级产品。两种角色一起制定和优化机器学习部署,管理和扩展自动化运维。

原文出自:TechTarget

原文链接:点击左下角阅读原文可查看

原文作者:George Lawton

翻译:马强
MLOps+DevOps,解决机器学习在应用性能生产运维中的困境