AWS发布的AI新特性,更能体现云上机器学习的优越性

美国时间12月8日,在亚马逊 re:Invent 2020 上,AWS 人工智能副总裁 Swami Sivasubramanian 宣布了云上机器学习服务——Amazon SageMaker的诸多更新,从这次更新中,看到了云上机器学习方案的优越性。

在全球发布后的第一时间,AWS大中华区云服务产品管理总经理顾凡和AWS大中华区机器学习产品总监代闻及时向中国媒体分享并解读了这次连珠炮一样的发布。

从顾凡的介绍中了解到,2016年,AWS开始在云上提供机器学习服务,2017年开始加速,最近三年,每年新增的服务和功能超过200个,全球有超过十万家企业用户在使用AWS云上的机器学习服务,这些用户遍布多个行业,可谓遍地开花。从AWS的全球化视野来看,中国区用户是在机器学习应用方面走的比较领先的。

在谈到AWS构建云上机器学习服务的侧重点时,顾凡提到了三点,一个是在服务的宽度和深度上发力,一个是考虑与用户应用环境的集成,最后一个是帮助用户构建机器学习的能力,要授人以渔。

上图提到的是AWS的云上机器学习服务的三个维度:多元的基础架构,包括各种AI开发框架、各种算力架构类型以及各种机器学习实例主机;高级的API服务,各种训练好的模型,只需调用API即可使用;另外一层是机器学习炼丹炉一样的服务——Amazon SageMaker,是AWS最具特色的云上机器学习服务,是目前已知同类产品中功能最强大的一个。

随着数据越来越多的出现在云上,随着云上机器学习功能的完善,体验的一步步优化,云上机器学习优势将更明显,此次新发布中,分布式的机器学习方案就非常体现云的优越性,同时也能明显感觉到,企业对机器学习的接受度在快速提高,应用更加普遍了,机器学习不再是纸上谈兵,一个行之有效的服务可以帮助企业快速落地机器学习的能力。

在详细介绍此次发布的内容前,先简单介绍下我个人对新功能的看法:

其中有几个功能是预料之中的,比如Amazon SageMaker Data Wrangler是做数据准备工作的,这是继续Ground Truth之后,在数据准备方面的又一个大动作,它通过预配置的一些操作来帮助用户进行数据准备,能节省很大一部分数据准备的工作时间。此前一直觉得AWS在这部分做的不多,这下做了很好的补充。

机器学习的工作流(Pipeline)工具Amazon SageMaker Pipelines也是预料之中的发布,能帮助用户分享和复现机器学习的训练过程,便于组织内协作,还配合训练迭代记录工具来优化模型。当机器学习应用于生产环境中,成了一种家常便饭一样的操作,工作流就非常有必要。

最能体现云上机器学习优越性的发布Distributed Training on Amazon SageMaker。以分布式来进行机器学习训练是很多人翘首以盼的高级特性,机器学习大都局限在单台设备上,为此,很多人不得不选一台配置尽可能高的机器,但训练速度仍旧局限在单台设备的算力。Distributed Training on Amazon SageMaker把训练负载分配到多台设备上,让训练时间变的可控,模型训练和迭代会更及时。我最大的感受是,这种分布式的方案最能体现云上机器学习的优越性。

有几个功能期待值不是特别高,但做出来仍非常有价值,比如Amazon SageMaker Feature Store,是管理特征数据的,便于分享和复用特征数据;Deep Profiling for Amazon SageMaker Debugger 是查看训练过程资源利用情况的工具,能优化成本;Amazon SageMaker Edge Manager是帮助把模型运行在边缘端的工具;

最让我惊讶的是Amazon SageMaker Clarify还能进行偏差检测和模型解释。在训练前,能结合Amazon SageMaker Data Wrangler来分析检测数据是否有倾向性,是否公正,能检测数据分布的情况并给出提示。在模型训练完成,在推理阶段,还能帮用户看出来哪些特征对模型的影响比较大。有类似能力的方案似乎并不多,能让开发者对于模型本身有更深的认识,为模型优化找方向。

以下内容是更为具体的介绍:

Amazon SageMaker Data Wrangler ——数据清洗、特征提取神器

机器学习的训练需要数据,但是有很多数据不能直接拿来做训练,需要做处理,比如,处理数据格式不一样的情况,要处理数据缺失的情况,处理数据明显出错的情况等等,这种把数据规范化的过程就属于数据准备过程,然后,还需要将数据转化为特征,这部分工作称为特征工程。

在机器学习工作中,这些工作要消耗开发人员大量的时间。Amazon SageMaker Data Wrangler就是为了简化这一过程。

Amazon SageMaker Data Wrangler首先可以从多种数据源接收数据,然后,用内置的300多个数据转换器,对特征进行规范化、转换和组合,将原始数据进行处理后得到可用于训练的数据,整个构成不需要用户写一行代码。

转换过程能在Amazon SageMaker Studio里查看,看这些转换是否符合预期。这些提取出来的特征数据会保存在 Amazon SageMaker Feature Store 中,以供重复使用。

Amazon SageMaker Feature Store——特征存储和管理神器

Amazon SageMaker Feature Store 提供了一个新的存储库,可以存储、更新、检索和共享用于训练和推理的特征数据,如果没有这一服务,用户只能把特征数据存在S3上。

真的需要这种服务吗?其实,AWS是考虑到很多特征(Feature)需要复用的情况,包括同一个人训练不同模型,同一家公司不同部门都可能会复用特征,作为机器学习专家的AWS发现了复用特征时会的管理负担,于是就推出了Amazon SageMaker Feature Store。

在训练过程中,需要大批量访问特征数据,推理过程中,模型需要实时访问部分特征数据。两个过程需要使用一样的特征数据,但有不同的访问模式,开发者自己来做这件事其实并不容易。

Amazon SageMaker Feature Store就是为了解决这一问题,它提供了一个可供开发人员访问和共享特征的服务。

训练阶段它能方便地组织和更新大批量特征数据,推理阶段它能提供单毫秒级的低延迟访问,来访问少量特征数据,既降低了生成模型的难度,又提供高了预测的精度和预测的性能。

Amazon SageMaker Feature Store 集成在 Amazon SageMaker Studio 中,

Amazon SageMaker Pipelines 实现工作流管理和自动化

开发过程中的CI/CD可以加速软件开发和部署的效率,为了加速机器学习的工作效率,Amazon SageMaker Pipelines出现了,这是第一个专为机器学习构建的CI/CD(持续集成和持续交付)服务,目前此类服务很少,而且,使用起来比较麻烦。

Amazon SageMaker Pipelines可以设置机器学习的工作流,包括数据加载步骤、数据转换过程(用Amazon SageMaker Data Wrangler)、保存特征(用Amazon SageMaker Feature Store)、训练配置及算法设置、调试步骤,以及优化步骤,设置机器学习的全流程。

Amazon SageMaker Pipelines可以使用相同的设置来重复进行端到端的工作流,也可以定期使用新数据重新运行工作流,来更新模型,更新模型的过程可以用Amazon SageMaker Experiments来记录,帮助开发者调参和迭代模型。

创建的Amazon SageMaker Pipelines可以在团队之间共享和重复使用,可以用一个工作流重新创建一个模型,也可以在基础上修改,创建一个新的模型。

用户可以通过Amazon SageMaker Studio来使用Amazon SageMaker Pipelines。

使用 Amazon SageMaker Clarify进行偏差检测和模型解释

开发人员有时会尝试使用开源工具检测训练数据中的统计偏差,这需要大量的编程工作。而Amazon SageMaker Clarify能帮助用户检测整个机器学习工作流中的统计偏差,并能为模型所做的预测提供解释。

Amazon SageMaker Clarify已集成到Amazon SageMaker Data Wrangler,它运行了一系列基于特征数据的算法,用以识别数据准备过程中的偏差,并且清晰描述可能的偏差来源及其偏差程度。这样,开发人员就可以采取措施来减小偏差。

Amazon SageMaker Clarify还与Amazon SageMaker Experiments集成使用,它还能详细说明输入到模型中的每个特征是如何影响预测的。最后,Amazon SageMaker Clarify与 Amazon SageMaker Model Monitor集成,一旦模型特征的重要性发生偏移,导致模型预测质量发生改变,它就会提醒开发人员。

用 Deep Profiling for Amazon SageMaker Debugger 做模型训练剖析

Deep Profiling for Amazon SageMaker Debugger 能够自动监控系统资源利用率,为训练瓶颈提供告警。开发人员没有一个标准的监控系统利用率的方法(例如 GPU、CPU、网络吞吐量和内存 I/O)以识别和排除训练作业中的瓶颈。因此,开发人员无法以最快的速度、最高的成本效益来训练模型。

Amazon SageMaker Debugger通过最新的 Deep Profiling 功能扩大了监控系统资源利用率的范围,在 Amazon SageMaker Studio 中或通过 AWS CloudWatch 发送训练期间的问题告警,将使用情况关联到训练作业中的不同阶段,或者训练期间的特定时间点。

Amazon SageMaker Debugger 还可以根据告警触发别的操作,比如,当检测到 GPU 使用情况不正常时,即停止训练作业。Amazon SageMaker Debugger  Deep Profiling 目前支持 PyTorch、Apache MXNet 和 TensorFlow 等框架,无需在训练脚本中更改任何代码即可使用。

用 Distributed Training on Amazon SageMaker 缩短训练时间

Distributed Training on Amazon SageMaker 使得训练大型复杂深度学习模型的速度比当前的快上两倍。当一些模型太大,无法容纳在单个 GPU 提供的内存中时,用户会尝试在多个 GPU 间拆分模型,但拆分模型的方式和调整训练代码的过程非常复杂。业内也有一些别的实现方案,是许多人都致力于实现的一个功能。

为了克服这些挑战,AWS拿出了自己的解决方案,用Distributed Training on Amazon SageMaker 提供两种分布式训练功能,一种是拆分数据,一种是拆分训练好的模型。

第一种,Distributed Training 与 Amazon SageMaker 模型并行引擎一起,通过在多个 GPU 间自动分割数据,将训练作业从一个 GPU 扩展到数百个或数千个 GPU,将训练时间缩短多达 40%。

第二种,Distributed Training 与 Amazon SageMaker 模型并行引擎一起,自动剖析和识别分割模型的最佳方式,在多个 GPU 上高效分割具有数十亿参数的大型复杂模型。

使开发人员能够在不增加成本的情况下,提高大型模型的训练速度,这一功能充分体现了云上分布式架构的优势。

使用 Amazon SageMaker Edge Manager管理边缘设备模型

Amazon SageMaker Edge Manager 可以帮助开发人员优化、保护、监控和维护部署在边缘设备集群上的机器学习模型。

能在降低内存占用率的同时,提升运行速度,而且,准确性也没有损失,当发现模型出现问题,可以重新训练模型以便开发人员不断提高模型的质量。

通过Amazon SageMaker JumpStart开启机器学习之旅

Amazon SageMaker JumpStart 为开发人员提供了一个易于使用、可搜索的界面,用于查找同类最佳解决方案、算法和 notebook 示例。

当前,缺乏机器学习经验的客户很难开始机器学习部署,而高级的开发人员发现很难将机器学习应用到所有应用场景。

通过 Amazon SageMaker JumpStart,客户现在可以快速找到针对其机器学习场景的相关信息。新接触机器学习的开发人员可以从多个完整的端到端机器学习解决方案中进行选择(例如欺诈检测、客户流失预测或时序预测),并且可以直接部署到 Amazon SageMaker Studio 环境中。有经验的用户则可以从一百多个机器学习模型中选择,快速开始模型构建和训练。