【云驻共创】MLOps:AI落地实践与快速迭代

举报
龙腾九州 发表于 2023/03/23 19:09:32 2023/03/23
【摘要】 本次我们主要介绍了MLOps的理念,以及在ModelArts上的一些落地经验与最佳实践。

MLOps:AI落地实践与快速迭代

本次我们将介绍MLOps的理念,以及在ModelArts上的一些落地经验与最佳实践。首先,我们先理解一些基础概念和ModelaArts平台的一些功能。然后会结合一些概念,进行一些案例的实际操作。

一、AI实践落地难和MLOps概述

当前,其实整个AI目的面临着非常多的问题。其中主要是这几点,第一,AI项目开发管理和团队协作难;第二,模型及系统可解释性低;第三,原子能力复用程度低,开发者需要重复去造“轮子”;第四,缺少专业的监控工具;第五,当模型上线之后,数据漂移导致模型衰减,精度变低;最后,流程复杂,难以审计。造成这些问题是因为我们整个AI开发和传统的软件工程开发是有一定区别的。当AI开发的时候,它除了说是单个算法模型的开发,其实还是需要多名的开发者去协同完成的。其中会涉及到算法同学,系统开发同学,还有运维同学,我们也可以看到有不少的咨询师报告也都提到了这个问题。对于整个AI项目,从它的原型转化为生产系统中的一个实际应用的话,转化率整体是不高的。所以,在前年,有一些学术界的人就提出了MLOps这个概念。MLOps可以帮助整个团队之间更好的去进行协作,提高机器学习系统的可靠性、性能、可扩展性和安全性。MLOps提高数据和算法的管理,复用它已有的能力,避免重复造轮子。其对部署持续监控,实时反馈实际效果。还有,其有持续高效迭代,模型自动化更新的功能。最后,其规范化流程,可审计可复现。

这个MLOps的概念是从DevOps来的。DevOps是我们开发者都比较熟悉的一个混合系统。DevOps,即Development and Operations,是一组过程、方法与系统的统称,用于促进软件开发、运维和质量保障部门之间的沟通、协调与整合。DevOps的出现是由于软件行业日益清晰的认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。DevOps可看作开发、运维和质量保障(QA)三者的交集。其中,会涉及到这三个点,一个是CI,一个CD,还有一个CD。CI:Continuous integration,持续集成。将修改的代码集成到共享主线。CD:Continuous Delivery,持续交付,从构建环境到声场环境的构建,测试、配置和部署的过程。CD:Continuous Deployment,持续部署。自动将应用更新到生产环境。

MLOps就是机器学习时代的DevOps,连接模型构建团队和业务,运维团队,建立起一个标准化的模型开发,部署与运维流程,使得企业组织能更好的利用机器学习的能力来促进业务增长。MLOps是在生产中有效地开发、测试、部署和维护AI应用程序的实践。MLOps可自动化和监控整个机器学习生命周期,并实现跨团队的无缝协作,从而加快生产时间并获得可重现的结果。它包含:CI:Continuous Integration,持续集成。CD:Continuous Delivery,持续交付。CT:Continuous Training,持续训练。自动化重新训练模型并部署。CM:Continuous Monitoring,持续监控。需要持续监控模型的评估结果,以保障AI应用效果。

从上面几点可以看出,MLOps不是一个单点功能就能够覆盖的,它是需要整个平台能力去支撑的。华为云的ModelArts从2017年面世以来,其实这几年积累了不少经验,在AI开发的全流程的每一个单点模块都是有一定的实践,并且把这些实践里面的一些经验也放到我们的平台上。大家可以看到,端到端的开发品的功能,都是比较完备的。为了可以自动化持续去迭代,我们增加了Workflow这个功能。这里主要会为大家介绍Workflow,并且后续会有一定的实践。

二、ModelArts平台

ModelArts,是一个功能非常丰富的一个平台,它是保障了一个全栈、全流程、全场景的一个平台。从底层的一些计算和软硬件结合,再到上面的算力框架,再到单点的每一个功能,其实都是有非常多的沉淀和应用的。而我们也会将一些业界的最佳实践放到平台上来,让客户和用户去进行使用和体验。

三、MLOps和ModelArts开发全流程

MLOps开发的全流程,由我们的算法同学把它抽象总结为以下几个点。从实验调试开始,实验调试就是说我们在模型开发的时候,算法是需要去对那个实验的数据进行一个调试。当它的模型结构确定下来之后,就到了模型训练。模型训练这个时候可能会用全量的数据,在云上的资源去进行一个较大规模的训练,得出几个模型。几个模型之间,我们去进行对比,就是到了模型评估这一步。评估出来后,我们就会把最好的那个打包成一个应用。这个应用并不是单单的一个模型文件,很多时候会为了部署方便把它打包成一个镜像文件,即我们的模型会放到一个镜像里面,这个镜像文件会方便我们在多个系统里面去进行一个部署和上线。同时,平台也会提供一个服务测试的能力。当前面全部的流程都确定下来之后,我们就可以说用机器学习的一个工作流去把它的这些步骤进行了一个串联,实现这些步骤后续迭代的一个自动化。当确定下来后,模型就可以正式上线,然后它的服务,可以说在线监控,还有说多个服务可以进行管理。这样ModelArts为这些单点多多少少提供了一些功能,在试验调试阶段我们提供了ModelArts的开发环境。

我们可以看到,ModelArts开发环境就是提供代码开发与调测,本地IDE+ModelArts插件远程开发能力,贴近开发人员的使用习惯。云上开发环境,我们提供了一个AI的计算资源,云上存储,还有预制的一些AI引擎,方便我们的用户在云上开箱即用。此外,高阶的一些开发者可以对整个环境去进行一部分的自定义,把开发环境直接保存成镜像,然后在训练或者说推理阶段进行使用。

对于模型训练,也提供了非常多的能力,我们在云上看到非常多的AI应用,其实都是在ModelArts平台训练得来的。这里着重强调下日志和容错方面,它们为我们开发者优化了一些功能,可以说单独的在云平台上进行一个体验。在模型评估这个环节,因为它是和我们业务是常相关的,所以ModelArts在这个环节并没有说对那个模型的单点功能去进行特别的优化,我们非常多的一些实际应用都是自定义去完成的。

在线服务这块,我们提供了多个模型的统一管理,就是多个厂商,多个框架,多个功能的模型,我们统一可以在ModelArts上进行一个管理,然后支持各种部署的场景,端边云快速的去进行部署。其包含,统一管理:支持多厂商多框架多功能模型统一纳管;部署支持高并发、低延时访问,并支持弹性伸缩,灰度发布、滚动升级。灵活部署:支持各种部署场景,既能部署为云端的在线推理服务和批量推理任务,也能部署到端,边等各种设备;大模型在线推理及模型秒级快速更新,适配快速迭代的业务场景。性能提升:通过自研推理框架,屏蔽底层软硬件差异,提升推理运行性能。迭代式模型更新:支持数据采集/难例挖掘,自动识别难例,快速适应数据变化。

当服务上线的时候,我们就可以使用ModelArts进行一个简单的测试。当这些步骤全部确认下来之后,我们就可以说使用到机器学习的工作流。在ModelArts这里,我们是叫Workflow。Workflow,面向不同的使用群体,会提供不同的形态,像面向各位开发者,我们提供开发态。开发态,我们着重会介绍这三点去进行一个优化。第一点,用户体验:面向开发者,提供Python SDK低代码编排体验;支持本地调试能力,实验记录管理。第二点,基于DevOps原则和实践,应用于AI开发过程中,提升AI应用开发效率;更快的模型实验和开发,更快的将模型部署到生产。第三点,易于复用及二次开发:通过组件和Workflow复用及二次开发,快速创建端到端解决方案,而无需每次重建。而对于运行:1.可视化操作界面,低门槛使用;2.嵌入AI能力工作流,可自主更新模型;3.多样评估可视化,帮助理解模型效果;4.面向行业的Al Gallery用例库。

四、构建垃圾分类AI应用

下面,将结合一些实例来讲解一下ModelArts工作流及Workflow的一个使用。整个讲解的过程主要涵盖两大块的内容,一个是开发态,一个是运行态。首先,结合我们官方发布在AI Gallery上面的一个图像分类的工作流,给大家带来一个零基础构建垃圾分类AI应用的一个案例。同时,这里会更进一步的给大家介绍如何去自己动手开发一个上述案例中使用的一个工作流。甚至动手能力强一些的同学,可以尝试将自己开发的工作流发布到Gallery上供其他用户去进行使用。最后,会结合华为云其他服务给大家展示一下我们在MLOpsCT,也就是持续训练方面的一些最佳实践。下面给大家带来我们今天第一个案例,就是我们垃圾分类的一个AI应用的一个构建的案例。这个案例,在我们Workflow的文档中有此案例的体现,在这个案例中,我们有详细的操作步骤的介绍。

当我们的工作流上线之后,也就是说服务已经部署上线了。服务其实是会提供一部分的监控信息,像是哪个cpu,还有一些内存,还有其占用的gpu的一些运行的次数。如果说我们存在多个服务,整个系统还有一个服务管理,方便大家去进行查看。

五、最佳实践-智慧新零售

除了一些开发,偏开发者的一些最佳实践,其实内部还有一些已经开发好的工作流,大家可以去订阅进行使用。这些工作流可以通过用户灌入自己的一些数据,去训练出自己的一些偏场景化模型。像在新零售场景里面,我们其实是对货架识别和地推识别,做了一些研究。其中,有一个客户一年节省大概是100万。在我们实际操作中,根据这样的一个解决方案的架构图,去构建属于我们自己的一个工作流,到时候使用者可以直接把这个工作流接入到他们的智能化系统里面去,就可以使用此模型了。

六、最佳实践-刀具检测

另一个最佳实践是刀具检测。在刀具工厂,它的制造车间使用到这个模型之后,可以提高他们的那个刀具使用率10%以上,并且可以说是有了模型准确率的持续迭代。在良品率不变的情况下,刀具使用效率提升10%以上,原本平均加工900个工件后人工进行更换的刀具,自动化管理下可以加工接近1000个零件更换。提供了Workflow工作流,可以针对不同刀具进行扩展,同时可以针对预测不准例外情况进行迭代训练,让模型更加准确,随时间的推移刀具的效率还可持续提升。

、答疑和总结

这里有几个比较典型的问题,我们一起来探究下。如有同学提到昇腾算法和云上算法的区别是什么?这两者的概念不是两个并列的概念。昇腾是华为推出对标gpu的一个芯片,所以很多的相关算法是在昇腾上运行。跑在昇腾上的一些算法是需要做一些硬件上的适配。如果熟悉华为云的话,可能比较了解MindSpore,MindSpore平台对昇腾有个很好的适配性,ModelArts对整个昇腾生态也有个很好的适配和支撑,在ModelArts上可以比较好的去适配昇腾算法,其他的一些算法,也可以把它们放到云上来。

MLOps上的持续训练是不是跟持续学习类似,这种持续性是数据集的增加,还是任务的增加?这里的持续训练是比较宽泛的一个概念,就是在MLOpsML里面,不管是数据集的一个演进,还是训练代码的优化,还是一些参数和超参的一个调整等,在这个过程中,其实都是在持续的去优化的一个模型。所以,我认为这些都可以包含在持续训练这个范畴之内,并且我们刚刚给大家讲到的一些实践的案例里面,也说到这个数据的变化,还有参数的变化,以及训练代码的一些变化,其实都可以方便的在Workflow里面去做一个持续的训练。

MLOps除了ModelArts还需要包含哪些基础的架构呢?MLOps是一个近期在AI领域比较新的一个概念,它其实本质上不是一个特定的产品,没有一个产品说它完成了MLOps这件事情。MLOps是一套方法论,像我们传统的APP开发的GameOS的这个概念,它其实本质上是一套工具集,ModelArts也在这块领域内做了持续的探索,会提供出一些解决方案,或者提供出一些最佳实践。但是在这个过程中,当然也是会跟其他的一些工具,包括平台有非常好的一个兼容性和协作性。

其余问题在此不一一列举了。本次我们主要介绍了MLOps的理念,以及在ModelArts上的一些落地经验与最佳实践。

本文参与华为云社区【内容共创】活动第22期

任务9华为云ModelArts关键AI能力宣讲会 NO.6 MLOps:AI落地实践与快速迭代

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。