如果要从三大公有云供应商的发展规划当中汲取一点经验之谈,那么毫无疑问,软件工程的广度与深度已经成为无可取代的绝对竞争优势。而颇具讽刺意味的是,每当一家供应商推出一种能够切实简化IT运维任务的新型服务,整个市场就会高度依赖于这些服务,而且不再自行寻求同类解决方案。换言之,客户开始变得更加傻瓜,同时也更具依赖性。
这是一种非常成功的商业模式,而且值得大家认真加以考量。就目前来讲,三大主流公有云方案——包括Amazon Web Services、微软Azure以及谷歌Cloud Platform——都拥有自己的机器学习服务。这些方案结合了三位技术巨头自身多年以来在产品营销与广告宣传方面积累得到的丰富经验,而且使用成本相当低廉。我们甚至很难想象数以百万计的、规模各异的企业客户能够抵抗这些由机器学习服务带来的强大吸引力与竞争优势。很明显,直接选择这些服务在难度上要远远低于自行编写代码并找到利用GPU及FPGA实现运行加速的实现途径。
我们很难在机器学习与预测性分析之间找到一条明确的划分界线,不过这类服务在精简程度方面往往更接近于预测性分析,而非专门用于从图片或者视频当中识别出对象以及个人、对其内容加以描述,或者像苹果及微软推出的Siri及Cortana等个人助手服务,甚至能够控制自动驾驶车辆的高强度性机器学习机制。机器学习听起来要比预测性分析酷炫得多,至少对于大多数普通用户而言是如此,因此这一术语也因此变得非常热门。不过无论大家选择哪一种称谓,由 Amazon、谷歌以及微软所提供的新型机器学习服务确实能够为SAS研究所、IBM以及甲骨文等预测性分析方案供应者带来沉重的竞争压力。历史总是惊人地相似,如今以数据及计算时间成本为基础的服务方案再次凭借着出色的易用性将经过实践验证、功效显著且拥有数十年发展演变历史的分析软件产品击倒在地。
Amazon公司最近刚刚在本周于旧金山召开的AWS峰会上推出了其机器学习服务。其Amazon机器学习(即Amazon Machine Learning,简称AML)甚至该公司多年来在预测性分析领域积累下的丰富经验——作为早在互联网建立早期就涉足在线零售行业的企业,Amazon在这方面显然极具发言权。在建立供应链管理机制、欺诈检测系统以及点击预测方案方面投入大量研发资源之后,Amazon作为一家在线零售商正逐步将其数据虚拟化、机器学习建模以及预测性分析工具通过AWS云推广到整个世界。(Amazon公司利用机器学习机制来指导员工如何将物流车辆停在最理想的位置,从而保证货物能够以最顺畅的方式被搬入仓库或是装上车辆进而交付至客户手中。)而Amazon公司的所有内部开发人员也都会访问该机器学习堆栈,并将其嵌入至自己的应用程序当中。
即使把AML看作是一种赠品(类似于在线零售商随主要商品附赠的糖果之类),可以肯定的是,AWS所提供的机器学习算法也绝对是一种值得珍之重之的定期——这位零售业巨头在管理超大规模业务事务时,依靠的正是这样一套解决方案。
当然,AML以数据为起点,且设计目的在于进行针对性培训并对100 GB以下的数据集合进行预测性分析。充分分析对象的数据可以保存在以MySQL为后端的关系数据服务(即Relational Data Service)当中、S3存储桶内或者来自Redshift数据仓库服务。后面两种能够在用户需要时提供高达PB级别的存储容量,正是出于这个理由,才有众多客户积极选择Amazon机器学习服务并尝试利用大型数据集构建更理想的分析模型——毕竟数据量越大、分析结果的准确性就越高,这种作法明显优于调整算法以构建良好的数据模型——这也正是AWS将数据集规模上限设定为100 GB的原因。AWS方面指出,这项服务并不会真正将数据从MySQL或者Redshift当中提取出来,而是使用查询结果来执行相关处理工作。客户可能需要在模型中使用的任何其它数据都能够被保存为CSV文件并交由S3负责承载。AWS还拥有大量数据可视化工具,旨在帮助客户查看数据集中有哪些数据内容出现了缺失。如果数据集内的记录缺失比例达到10%,那么机器学习服务会直接中止运行模型——这是因为在这种情况下,预测性分析得出的结论根本不可能拥有理想的准确度水平。
机器学习服务会对数据进行全面解析并构建机器学习模型,用户亦能够立足于更多或者质量更高的数据来源对其加以调整,包括采用多种数据梳理机制或者采用不同级别的数据标准化处理。(确切地讲,这类调整工作往往有点可意会却不可言传的意味,而且目的不同、具体实施方式也会有所区别。)总而言之,其主要思路在于调整数据集并利用它以新的流入数据为基础进行预测分析。为了能够让AML一次性解析整个数据集并同时实现预测分析,AWS还提供一项批量API—— 当然,大家也可以使用实时API根据实际需求对数据中的特定部分进行指定预测分析。AML能够在约100毫秒内返回一项预测请求,AWS方面称这样的速度水平完全能够适应Web、移动以及桌面应用程序的需求;另外,AWS服务模型所使用的IP地址每秒能够完成约200项事务的结果传输。Amazon指出,客户可以利用AML服务在一天之内以实时方式实现数十亿次预测性分析。之所以敢于如此言之凿凿,是因为Amazon零售业务本身就利用该项服务以每周超过 500亿次预测分析的频率处理内部零售事务(包括产品推荐等等)。
最后需要强调的是,AML拥有平台粘性。也就是说,大家无法将自己的机器学习模型从AML服务导出至外部,同时也无法将在别处构建的机器学习模型导入至AML服务当中。
AML的目标场景正如大家所能想见,包括欺诈检测、需求预测、预测性客户支持以及Web点击预测等等。客户服务则属于另一类使用场景,而且AML能够被用于对来自电子邮件、论坛内容以及电话支持评价的客户反馈信息进行分析,从而对产品工程技术以及服务团队提供合理化建议,并将面临类似问题的新客户引导至合适的、了解相关情况并拥有问题解决能力的支持技术人员处。
而在定价方面,AML服务的收费机制非常直观。大家需要为保存在S3、RDS(也就是Redshift)之上的数据支付本地存储费用。而如果要对此类数据进行分析处理以及建模,则需要以每小时42美分的价格支付AML服务使用费;很明显,采取的分析方式越多,我们需要支付的成本就越高。不过大家可以将自己的使用量加以汇总并借此享受价格折扣,其中每1000次预测分析处理的批量使用成本为10美分(最小计量单位为1000次),而实时预测分析成本为每次万分之一美分,同时机器学习模型运行中每占用10 MB内存则加收千分之一美分。按照这样的计费标准,如果我们需要利用一套模型 运行约100万次预测分析,那么该模型的运行时长约为20个小时,而成本则略高于100美元。