2020亚马逊云计算的轨迹线
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

不懂业务的开发人员,就不是好的数据科学家

作者 | 冯垚

当下,数字化转型浪潮席卷各行各业。就以刚过不久的七夕节为例,在这一天,看电影、聚餐、唱歌等等都成为了大家不可或缺的娱乐项目,由于线下等位人数过多,在线预约取号软件得到了广泛应用。而就在当天,某知名火锅店的排号系统却意外罢工,更是直接登上了微博热搜榜。

据了解,数据激增是导致系统崩溃的直接原因。不少“热心”网友在其官方微博留言:“什么鬼,软件崩了”、“赶紧修系统去!! ”等等。好在,该火锅店迅速修复了系统Bug,恢复了正常营业。可见,如何快速地、稳定地交付高质量应用,满足用户的多样化需求,已经成为企业必须要面对的关键问题,其直接影响到企业的利润及发展潜力。

其中,软件开发过程的改进是关键,正是DevOps开启了软件开发的新革命。它将开发、运营和业务等部门之间进行联通,实现了软件开发人员和IT运维技术人员有效沟通的工作方式。促使软件的构建、测试、发布更加迅速、可靠。

同样,在人工智能(AI)和机器学习(ML)领域,需要类似的改进方法进一步提高模型开发、训练和部署的效率,帮助企业实现机器学习的快速落地。

一、机器学习/人工智能如何轻松开发和运维?

Gartner 2020年4月的一项调查显示,全球14%的CIO已经部署了人工智能,48%的CIO将在2019年或2020年部署人工智能。人工智能及机器学习的部署上升趋势表明,大多数企业认识到机器学习的变革优势,并正在从机器学习/人工智能中获得价值,但在实际生产中应用机器学习,企业仍然面临诸多挑战。

一方面,机器学习应用本身在开发工具(如IDE,软件包/库和统计技术等)领域已经取得了长足的进步,但在部署和维护环节的关注度极低。机器学习项目同样遵循软件开发的流程——创建、训练、部署,再根据需求更迭版本。但机器学习系统与传统软件有着本质的区别,它由数据驱动,使得其不确定性很强。由于部署新模型的过程需要数周或数月,同时模型又时常变化,操作不当极易导致新模型无法投入生产。

另一方面,机器学习项目落地涉及企业众多环节,各个团队之间的协作是关键。具体到公司内部,基本涉及三类职责的人群:产品经理、应用开发、算法工程师 /数据科学家。当算法模型创建完成后,应用开发会调用相应端口,而后续则需要建立机器学习平台或者运维团队的支持。对于各部门的团队来说,机器学习平台及其运维只是整个机器学习项目中的一部分,需要数据科学家、IT等多部门能够通过监视和验证的手段管理机器学习。例如:数据科学家通常参与机器学习模型/算法的开发,但他们不负责生产流程和系统,所以实现协作和整合显得尤为重要。

此外,机器学习架构设计方面也存在缺陷。目前诸多机器学习模型代码与应用代码为紧偶关系,当模型需要快速地更新、迭代、AB测试时,机器学习团队依赖应用开发团队,使得平台运维团队、应用开发团队和机器学习团队相互抑制,直接影响到整个项目的进度。可见机器学习工作流程缺乏与通用软件工程相似的标准化流程,急需将数据科学、数据工程以及DevOps专业知识结合在一起。

由此,MLOps应运而生,MLOps基于提高工作流效率的DevOps原理和做法,将持续集成、持续交付和持续部署的理念应用到机器学习过程当中。其聚焦于机器学习新模型的持续训练、新模型的部署以及之后的技术工作,旨在保证机器学习项目快速、持续地试验和开发模型、快速地将模型部署到生产环境、减少模型衰减带来的影响。

总的来看,随着机器学习技术和实践与现有的软件交付系统和流程结合起来,MLOps将获得迅速发展。不过,必须明确,MLOps所具备的优势并不等于它是万能的,虽然MLOps改善了机器学习解决方案的质量和一致性,但整个方案相对复杂,企业自身无法独自实现,因此需要一个平台来处理这些频繁的事件。

二、Amazon SageMaker赋能企业应用AI/ML

为此,Amazon Web Services(AWS)作为人工智能与机器学习的先驱者之一,推出了完全托管端到端MLOps服务的Amazon SageMaker平台。Amazon SageMaker可帮助开发人员和数据科学家快速地大规模构建、训练和部署机器学习 (ML) 模型,消除了机器学习过程中各个步骤的繁重工作,让开发高质量模型变得更加轻松。

在传统的机器学习项目中,如图所示,数据科学家会需要参与每个步骤,将不断更新的新模型投入到实际生产中。如部署周期是每月一次或每季度一次,传统流程还可满足需求。但如今,企业需要新功能、高可操作性的机器学习功能,传统的机器学习流程逐渐成为机器学习落地、规模化、生产化的阻力。

Amazon SageMaker覆盖整个机器学习项目全阶段,将机器学习算法的开发过程、业务流程与部署过程进行了松耦,以全托管、自动化的方式提供监视、验证和管理机器学习模型等服务,加速企业建设MLOps的过程。

构建机器学习模型

Amazon SageMaker Autopilot可帮助用户自动构建、训练和调优完全可视和可控的模型,即可自动检查原始数据、应用功能处理器、选择最佳算法集、训练和调优多个模型、跟踪模型性能以及根据性能对模型进行排名。

训练机器学习模型

Amazon SageMaker Experiments通过自动捕获输入参数、配置和结果并将其存储为案例,帮助用户组织和跟踪机器学习模型的迭代。此外用户还可使用SageMaker Studio,以可视化的方式来浏览进行中的机器学习实验,根据实验特征搜索先前的实验、查看先前的实验及结果,以及直观地比较实验结果。

部署机器学习模型

用户可依靠Amazon SageMaker模型监控器来检测和修复概念偏差,让模型保持精确。当模型在生产环境中运行时,一些功能可能会出现偏差,这表明需要对模型进行再训练,模型监控器会自动检测已部署模型中的概念偏差,并提供详细的警报,帮助用户确定问题的根源。

与此同时,AWS针对中国市场的特点,为开发者提供十分开放的使用环境,帮助用户在AI时代实现智能转型。

开放性

AWS不断积极参与众多开源社区项目。Amazon SageMaker对包括TensorFlow、PyTorch、Apache MXNet在内的主流框架进行了深度优化。例如:在全球范围内使用TensorFlow框架的机器学习项目约85%的负载跑在AWS平台上,其针对TensorFlow进行优化后能够实现同时跨百余个GPU提供近线性扩展效率,为开发者解决了在云端运行时的大量处理开销。根据实际案例,256 GPU扩展效率可达到90%,训练时间从30分钟缩短到14分钟,开发者可在更短时间内训练更准确、更专业的模型。

此外,在今年4月AWS和Facebook合作推出了PyTorch模型服务库TorchServe。借助TorchServe, PyTorch用户可以更快地将其模型应用于生产,而无需编写自定义代码:除了提供低延迟预测API之外,TorchServe还为一些最常见的应用程序嵌入了默认处理程序,例如目标检测和文本分类。目前Amazon SageMaker支持的深度学习框架包括:TensorFlow、PyTorch、Apache MXNet、Chainer、Keras、Gluon、Horovod、Scikit-learn、Deep Graph Library、Deep Java Library等。

值得关注的是,AWS在重视技术创新发展的同时,一样关注当下存在的社会问题。在疫情期间,上海AWS人工智能实验室发布了基于深度学习的有关制药领域的知识图谱计算库Deep Graph Library。通过调用该库,能帮助人们更快、更有效地从现有药物中查找针对新冠病毒有潜在治疗效果的药物。