AWS持续拓展机器学习应用版图,推出涵盖多项功能的集成式开发环境,以及高端商用型AI服务

《美国拉斯维加斯现场报道》机器学习是当前企业发展AI应用的重要技术基础之一,在AWS今年re:invent大会的第二天,该公司首席执行官Andy Jassy所发布的主题演讲,也证实了这股技术应用趋势,正在持续发展、扩张其中,因为,该类云计算服务目前正是AWS增长最快的业务应用,他表示,AWS目前已拥有数万名采用机器学习服务的用户,而且,他们的用户数量之多,是市场占有第二云计算服务厂商的两倍。

随后,Andy Jassy也针对AWS提供的各种机器学习服务,区隔出三大类型,逐一介绍最新进展。它们分别是:位于底层的机器学习框架与基础架构,在其中的机器学习服务,以及上层的人工智能服务。

以底层而言,Andy Jassy自豪地表示,全球有85%的TensorFlow框架,是在AWS的云计算服务环境其中执行,而在执行机器学习训练的处理作业上,若以几种针对AWS环境优化调校的主要机器学习框架,搭配AWS提供的GPU执行实例P3,来进行Mask R-CNN深度学习模型的训练,比起用户自行搭建硬件设备来执行相关作业,可节省2成左右的处理时间。

位于中间层的AWS机器学习解决方案,主要是全托管机器学习服务SageMaker,它是在2017年举行的re:Invent大会推出,数据科学家与开发人员可运用这套云计算服务,轻松地进行机器学习模型的构建、训练与部署。到了2018年,SageMaker已陆续增添50种以上的功能。

在2019年底举行的re:Invent大会上,AWS继续发布SageMaker相关的新功能,其中最受众人瞩目的部分,就是用于机器学习的集成式开发环境(IDE),名为SageMaker Studio,并基于这套工具,提供Notebooks、Experiments、Autopilot、Debugger、Model Monitor等特色,支持开发与部署机器学习模型的自动化执行、集成、调试、监控的操作。

处于最上层的人工智能服务(AI Services),AWS提供不需要懂得机器学习技术运行方式的功能项目。早先他们陆续推出图片识别(Rekognization)、语音识别(Polly、Transcribe)、文本识别(Translate、Comprehend、Textract),以及对话机器人(Lex)、个性化推荐(Personalize)、预测(Prediction)等服务,今年,他们提供了更多与企业日常业务运行更密切相关的功能项目,像是诈骗侦测(Fraud Detector)、程序代码审查与剖析(CodeGuru)、往来客户联系分析(Contact Lens for Amazon Connect)、企业内部搜索(Kendra)。

因应机器学习开发流程各阶段的需求,率先推出网页版IDE工具

在今年re:Invent大会推出的机器学习各项新功能其中,SageMaker Studio无疑是针对开发人员与数据科学家的重要特色,号称能大幅提升生产力。

基本上,它提供了单一操作接口,能让用户着手进行机器学习模型的创建、调试、训练、部署、监控、运维,并提供多种功能,像是:伸缩式脚本套用、实验测试管理、模型自动创建、调试、组态剖析,以及模型飘移侦测。

整体而言,在这套集成式开发工具其中,开发人员可以审查原始程序代码、依赖性、文件,以及用于移动App的图片等应用程序资产,整理出彼此之间的组织结构。同时,他们也能创建项目文件夹,管理数据集与用于自动化执行的笔记本,并与其他人共同讨论笔记本的设计与后续处理的结果。

以目前上线的SageMaker Studio而言,AWS也在本次用户大会上,特别强调下列5种内置的功能特色。

Notebooks

SageMaker Notebooks所提供的功能,主要是可一键操作的Jupyter notebook,能搭配AWS EC2将相关环境快速构建起来。这项服务包含了执行或重新创建机器学习流程所需的各种要素。在这之前,开发人员若要审查或执行笔记本,需在SageMaker上构建一个运算执行实例,才能支持笔记本所设置的自动化应用程序。假如开发人员需要更多运算力,在那样的状态当下,他们必须启动新的执行实例、将笔记本传输过去,再将旧有的执行实例关闭;此外,由于笔记本需搭配运算执行实例来执行,但笔记本通常会存放在开发人员的工作站计算机其中,因此,难以与他人共享与进行反复的协同作业。

而在SageMaker Notebooks服务其中,提供了可伸缩自如使用的Jupyter notebook,能让开发人员轻松地调高或降低笔记本所需的计算资源(包含GPU加速器),而且这些异动会自动在背景服务其中进行,不会打断开发者的工作。

开发者不需将时间耗费在关闭旧有的执行实例,以及重新在新的执行实例创建所有的工作。能够更快开始创建机器学习的模型。AWS强调,只需一个按钮,开发者就能将笔记本分享出去,系统会自动重新产生指定的环境与程序库依赖性。因此,这样的机制能简化多人协同的模型构建作业,开发者能够将手上的工作交给其他人,并在他们既有的工作之上,继续构建模型。

Experiments

这套机器学习IDE工具第二个主打的功能,则是SageMaker Experiments,它能协助简化管理机器学习模型的反复作业,让开发者能够组织与关注相关的工作,进而更快培养出高品质的模型。

一般而言,机器学习通常会涉及到多数反复处理,目的是为了隔离与测量变更特定输入之后所产生的渐进变化,开发者在这些反复处理过程其中,会产生数百种加工物,像是模型、训练数据、参数设置,但目前他们必须依赖试算表来关注这些实验,并且手动分类这些加工物(artifacts),以便了解实验如何受到影响。现在有了SageMaker Experiments,能让开发者管理这些反复处理,其中将会自动截取开发者输入的参数、组态与结果,并将这些数据存为个别的“实验体”,之后开发者就可以通过更简单的方式进行各种管理工作,像是:审查目前正在进行的实验,根据特征来搜索指定的实验,审视先前的实验与结果,或是通过虚拟的方式来比较实验结果。这项功能将会保留每个实验的完整体系,因此,一旦模型开始开始脱离原本所要输出的部分时,开发者可以及时倒回相关的程序,并且对加工物进行检测。

Debugger

在软件开发过程其中,调试是不可避免的工作,而在开发机器学习模型时,也需要进行这样的处理,而在SageMaker Studio提供了Debugger的功能,开发者可通过这项机制对模型的训练,进行调试与剖析,以便改善精准度、减少训练时间,并且促进对于机器学习模型的了解。

当前的模型训练过程仍是相当不透明,训练时间可能很长,而且难以进一步调校,而这种黑箱作业也会导致开发者难以理解与诠释模型的运行方式。若采用Debugger,用户在SageMaker训练的模型,可自动发出关键测量指标,让SageMaker Studio,能够进行收集与审视(其他应用程序也可通过SageMaker Debugger的API来集成),这些指标将提供训练精准度与性能的即时反馈,因此,一旦系统侦测到训练问题,SageMaker Debugger可以提供警告与修正的建议。

此外,这项功能也能帮助开发者诠释模型的运行方式,并且重现早期的处理步骤,让开发者能够更为理解神经网络的运行。

Model Monitor

开发机器学习模型时,除了注意调试,也要处理概念飘移(concept drift)的情况,SageMaker Studio提供了Model Monitor功能,能让开发者以更简易的方式来调整训练信息或算法,侦测与修正机器学习模型的概念飘移。

对于部署到正式环境的机器学习模型而言,目前影响精准度的重要因素之一,就是用于产生预测的数据,开始出现异于用于训练的数据的情况(像是经济情况变化带动了新的利率,进而影响了家用采购预测,或是季节变换带来不同的温度、湿度、气压,结果也影响了设备维护调度的可信度),如果数据开始变得不同,它将会导致所谓的概念飘移,而这会使得用于预测的模型范式,不能再继续套用。而在Model Monitor的功能里面,可创建一套关于模型训练期间的基准统计,并且以这个模型训练基准来比较那些用于预测的数据。

当Model Monitor侦测到模型飘移时,开发者会接到警示,并通过图表的呈现来识别出根本原因,也可以自行撰写所需要的规则,让Model Monitor得以进行监控。

AutoPilot

若要提升机器学习模型开发的生产力,开发者同样需要自动化的模型构建机制,对此SageMaker Studio提供了AutoPilot功能,而且,开发者还是能继续保有对于模型的管控与执行状态掌握。

目前若要执行自动化的机器学习,开发者已经有足够的方法来创建初始模型,但观于模型如何创建及模型里面的状态,却无法拿到任何可用的数据,因此,假如模型本身的品质只有一般的水准,但开发者希望提升时,可能会找不到合适的做法。

此外,现今的自动化机器学习服务,仅能为用户提供简单的模型。然而,有时候用户想要做一些条件交换,像是在特定版本的模型其中,牺牲一点点精准度来交换一些变化,希望能带来较低延迟的预测产生速度,但目前这类服务只提供一个模型,而无其他选择。

在SageMaker Autopilot里面,开发者只需几个点击动作,就可以驱使系统去自动执行许多工作,像是检测原始数据、套用特征处理器、挑选最佳的算法组合、训练多个模型、调校多个模型,以及关注模型的性能,并且根据性能来列出模型的排名。

而经过自动处理后所产生出来的结果,会是关于表现最佳的模型推荐,让用户能够放心进行部署,而且仅需要投入一点时间与心力,即可训练、完整掌控模型的构建与内部状态。

对于缺乏机器学习处理经验的人,SageMaker Autopilot也很适用,因为他们可以单独根据手上的数据,即能简易地产生出模型。若是有相关经验的开发者来使用SageMaker Autopilot,也可以借此在想要进一步执行各种反复处理的团队其中,快速开发出符合基准组态要求的模型。

以目前的功能来看,SageMaker Autopilot最多可提供50种机器学习的模型,它们都已通过SageMaker Studio的检测,所以,开发者可从中拣选符合他们应用场景需求的最佳模型,而且,也能根据他们所选的优化模型来考量相依的因素。

运用与亚马逊相同的机器学习技术,提供更多高端的人工智能应用服务

关于人工智能的应用需求,其实并不只是提供各种开发机器学习的辅助机制,对于不谙这类技术运行原理与相关管理维护作业的用户而言,其实,也能借助云计算企业提供的高端托管服务,即可善用机器学习技术来简化各种工作,进而为其用户提供更多样的AI操作体验。

先前AWS在这个领域里面推出的人工智能应用服务,所针对的需求大多是通用的数字内容转换,2018年底延伸到推荐、预测、自然语言处理等高端AI服务,而AWS在今年底推出的相关服务,又有了重大突破,那就是跨入更多企业日常运行所需的应用,像是诈骗侦测、程序代码审视与剖析、往来客户联系分析、内部数据搜索。

Fraud Detector

在今年底最新发布的人工智能应用服务其中,Andy Jassy最先介绍的是诈骗侦测服务Amazon Fraud Detector,它能协助企业即时识别线上身份与支付诈骗行为,而且,这里面采用的判别技术,是由本身就在经营电子商务的亚马逊(Amazon.com)所发展出来的。

这套服务会同时使用欺诈与合法交易的历史数据,对其执行机器学习模型的构建、训练与部署,能为用户提供即时的诈骗风险预测。在试用初期,用户只需将一些数据上传到S3,像是与交易相关的电子邮件地址、IP地址,也可自行增添帐单地址、电话号码,接着执行自定的机器学习模型训练。

如果用户所要预测的诈骗顾客类型,是关于新账号或线上支付的诈骗行为,Fraud Detector可运用亚马逊数十年累计的诈骗风险侦测分析经验,执行数据的预先处理、算法选择,以及模型训练。

CodeGuru

Andy Jassy第二个披露的人工智能应用服务,是针对软件开发人员的程序代码审视(code reviews),以及应用程序剖析(application profiling)需求,用户可运用AWS提供的机器学习技术来取得程序代码自动化分析的机制,但这里所要提供的功能不只是帮忙突显既有程序代码的撰写错误、品质不佳与性能执行问题,还要找出耗费最多IT资源的程序代码片段。

对于云计算服务的用户而言,这样的执行效率审查分析功能相当实用。提升软件品质、缩短开发时间,对于软件生命周期的管理,固然很重要,但在云计算服务的环境其中,因为企业会根据使用规模大小,以及持续时间长短来计费,若特定程序代码占用过多资源与执行时间,就会对用户造成不必要的成本支出,因此对于这样缺乏经济效益的程序代码,AWS认为,他们需要推出这样的服务来帮助用户省钱,而关于这类软件品质差、效率不高的问题,所造成的影响不只是抽象的人力成本,还要考虑到具体的云计算服务费用,因此,他们特别以“最花钱的程序代码(most expensive lines of code)”来形容。

开发人员要怎么使用CodeGuru来审视程序代码?他们仍然照常将程序代码提交到GitHub、CodeCommit等软件开发仓库服务,然后再将CodeGuru设为程序代码审视人员之一即可,不需调整原本的作业流程或额外安装软件。随后CodeGuru会接收到程序代码下拉的请求,并且运用系统预先训练好的模型,自动对用户程序代码执行评估,而这些完成训练的机器学习模型,所根据的程序代码数据主要有两大来源:亚马逊数十年来所审视的程序代码,以及GitHub排名前十大的开放源码软件项目。

处理过程中,CodeGuru会针对程序代码的品质来分析程序代码的异动,如果发现问题,会在程序代码下拉请求其中,增添一段评论叙述,让开发者能够清楚看到该段程序代码所在的行数字置、问题类型,以及系统推荐的修正方式(像是范例程序代码与相游说明文件的连接)。

而在应用程序剖析的部分,CodeGuru会利用机器学习技术,找出最耗费云计算服务资源的程序代码。为了要完成监控的目的,用户须在他们开发的应用程序其中,安装小型、轻量的代理程序,让CodeGuru能够以5分钟为频率,定期观察应用程序执行时的状态,以及剖析程序代码的组态。而这样的观测会纪录CPU利用率与访问延迟,以及直接对应的程序代码位置,最后会产生图表,协助用户找到那些导致性能瓶颈的程序代码片段。

目前有哪些企业采用CodeGuru?AWS表示,亚马逊内部团队正在使用CodeGuru,他们剖析的应用程序数量已经超过8万支;而在2017年到2018年之间,这套服务提供给亚马逊的内部版本,也协助隶属于该公司消费业务的Amazon Prime Day团队,大幅提升应用程序的执行效率──CPU利用率增加了3.25倍,在Amazon会员狂欢购物节期间,他们需管理的执行实例数量也随之减少,整体成本降低近4成。

Connect Lens

第三个AWS今年主推的人工智能应用服务,是针对AWS客户联系中心云计算服务Amazon Connect,所提供的分析服务Contact Lens,其中运用了机器学习的技术,让用户能够从与顾客的对话里面,理解他们的意见、认知的趋势,以及接受的价值,借此改善顾客体验及辨别顾客意见反馈。目前AWS公布多家先期采用这项顾客数据分析服务的企业,包括:财务软件公司Intuit、金融投资财务管理公司John Hancock、媒体集团News Corp、个人财富与利益解决方案厂商Accolade,以及移动电信与能源供应商amaysim。

基本上,单就Amazon Connect而言,它采用的技术,与目前支撑亚马逊顾客服务的技术是相同的,号称能以更低的成本让用户经营他们的客户联系中心,而且能支持数千个值机员的使用。若这项服务同时搭配Contact Lens使用,AWS表示,客户服务主管可以通过Amazon Connect网页主控台接口,毋需具备程序撰写与机器学习等技术专业,即可进行多种功能的操作。例如,从顾客对话里面,发现新兴的主题与趋势,并能够对客户来电与对话文本纪录,快速实施全文检索,以便找出解决顾客的疑难杂症,同时,还能提供来电与文本对话的分析,进而改善客服人员的性能。

若在电话进线期间发生问题,Contact Lens也会将相关警示发给主管,让他们在顾客体验开始变差的初期,就可以介入。

除了高度集成Amazon Connect,Contact Lens的诠释数据,像是文本誊本、意见、分类标签,都是依照妥善定义的数据纲要来存储,而且会放置在用户的S3数据桶其中。企业可以轻易地导出这些信息,并且运用Quicksight、Tableau这类图表分析工具,将其产生更进一步的解析,以及结合其他来源的数据。

Kendra

在今年re:Invent大会最后介绍的人工智能应用服务,是提供企业搜索功能的Amazon Kendra,里面运用了自然语言处理,以及其他机器学习技巧,能够统合企业内部的多个数据孤岛(data silos),并且持续提供高品质的通用查询结果,AWS认为,相较于目前通过关键字查询而得到的随机连接列表,这项新的服务足以取而代之,提供更好的选择。

有了Kendra,企业的员工若要进行内部数据搜索,可以运用自然语言的表达方式来进行查询,例如,他们可以键入问题内容叙述,而不只是单纯输入关键字,而系统也能够用对话的方式回答问题,并且提供相关的服务与网站连接。

同时,这样的服务,能够横跨多种应用系统、网站入口与维基共笔内容管理系统(Wiki)进行集成,用户只需在AWS管理主控台上进行简易操作,例如指出需要查询的文件存储库位置,Kendra就会汇集所有数据,以便构建集中的索引。

在文件安全管控的部分,这项服务会扫描文件其中的权限限,可确保搜索结果只会列出该名用户所能访问的文件,以便符合企业既有的文件访问政策。

此外,Kendra会根据不同用户的差异,自动重新训练机器学习模型,以便改善查询精准度,而其中会运用到的分析数据来源,包括点击数据(click-through data)、用户位置、意见反馈,若累计更多时间的使用与数据分析,可为搜索提供更理想的回答效果。

涵盖底层与中高端机器学习的应用需求,提供集成度更高的开发工具与AI服务

整体而言,今年AWS在机器学习领域所推出的云计算服务,在应用的格局上,都有进一步突破。

例如,在SageMaker的机器学习开发平台服务,AWS提供了功能丰富的集成式开发工具,能够大幅简化机器学习模型的设计与测试流程。

而在人工智能应用服务的部分,AWS今年增设了更多与亚马逊目前使用相同机器学习技术的解决方案,不只是2018年底宣布推出、2019年6月、8月陆续登场的个性化推荐与预测服务,他们也预告未来将发布与企业商务运行需求密切相关的服务,涵盖了顾客身份识别、顾客往来分析、应用程序效率与成本节约,以及内部数据搜索等层面,继续为云计算服务企业的机器学习与人工智能技术,提供更多专业领域的应用服务选择。