作为最普通的开发者,云机器学习能帮我做什么?
如果要从三大公有云供应商的发展规划当中汲取一点经验之谈,那么毫无疑问,软件工程的广度与深度已经成为无可取代的绝对竞争优势。而颇具讽刺意味的是,每当一家供应商推出一种能够切实简化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所提供的机器学习算法也绝对是一种值得珍之重之的定期——这位零售业巨头在管理超大规模业务事务时,依靠的正是这样一套解决方案。
发布Amazon机器学习服务
- 一套面向开发人员的完整托管机器学习服务
- 轻松创建机器学习模型
- 多种直观化与优化模型
- 只需数秒即可将模型纳入生产流程
- 久经考验的技术成果
当然,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美元。
谷歌率先有所行动
谷歌公司为其Prediction API服务设定的预期目标与AML以及Azure机器学习基本一致,不过前者的特色在于其早在2011年秋季就已经作为App Engine平台云的组成部分向广大用户开发。
该Prediction API的分析数据处理规模上限为2.5 GB,而且相关文件会被载入至谷歌Storage服务当中。谷歌方面指出,一般数据集的梳理过程大约需要几分钟到数小时。而一旦首批数据整理完毕,接下来即可接受新的数据内容,而后续预测分析周期将缩短为200毫秒左右。
谷歌公司的免费服务版本允许数据科学家每天进行100次预测分析操作,且每天数据处理总量不可超过5 MB;另外,免费服务设有总计2万次预测性分析上限。而在Predictive API服务的付费版本当中,谷歌公司要求用户每月支付最低10美元,这一起步价位提升最高1万次预测分析配额,且后续处理成本为每1000次50美分。数据集首次处理的成本为每MB五分之一美分,用户同时还需要对相应数据集的后续内容更新支付同样的费用。付费服务每日预测分析次数上限为200万次,谷歌公司还强调称,数据科学家若每日预测分析次数超过4万次、则必须提前发出通知。另外,以上服务费用并不包括谷歌Storage对活动数据集进行存储所带来的成本。
微软Azure雇佣来自Amazon的机器学习专家
微软当初的目标非常明确,即构建自己的机器学习堆栈并将其作为自身Azure云之上的服务项目,而具体实现方式则是于2013年7月直接将技术大师Joseph Sirosh从Amazon旗下挖了过来。(对他本人来讲,工作内容其实并没有出现什么变化。)
微软公司的Azure机器学习服务于去年六月正式进入beta测试阶段,而且其中囊括了大量该公司原本用于运行必应搜索引擎以及Xbox游戏站点的机器学习算法。微软公司还允许我们利用开源R统计语言以及Python来编写相关算法,并将其纳入Azure机器学习堆栈,另外开发人员也可以自行构建免费的机器学习算法或者在市场上购买其它现成的付费方案。微软最近刚刚收购了Revolution Analytics公司,后者拥有一套能够显著提高R统计引擎性能表现的技术方案,这无疑将帮助加快Azure机器学习服务的运行速度。
作为微软主要客户之一,卡内基梅隆大学目前正利用Azure机器学习服务对其自身设施进行预测性维护,而蒂森克虏伯这家全球知名电梯制造商则利用该服务预测世界范围内各高层建筑中的电梯设备安全水平。Pier 1公司同样在使用Auzre机器学习服务,旨在利用这套技术方案对客户采购活动进行预测。
微软公司目前还公在其美国中南部区域内上线了Azure机器学习服务。该服务提供免费试用版本,每次实验性使用的最高模型使用数量为100套。(所谓一套模型,是指一种算法、一种数据来源或者一次数据转换处理,Azure机器学习官方解释称。)而Machine Learning Studio工具则作为该服务的组成部分,负责对体积在10 GB及以下的数据集进行首次处理;不过在此之后,预测性分析工作则面向托管于HDInsight Haddop服务当中的Hive数据仓库层或者来自Azure SQL数据库服务的各项查询。如果大家需要处理的数据集超过10 GB,则可以对其进行拆分,而后以分散方式运行首次整理会话并最终将结合加以合并。Azure机器学习服务的免费版本为数据集首次整理设定了最多1小时的时长上限(微软方面将其称为实验性方案),存储容量上限则为10 GB;其运行在单一节点之上,并采用速度受限的分段API。
需要付费使用的标准版Azure机器学习服务则不限定模型使用数量、能够运行在多个节点之上且不会利用API刻意限制处理速度。面向数据科学家们的 Azure机器学习服务每月每人收费为9.99美元,此外首次模型构建费用为每小时1美元,面向应用程序API的结果传输过程为每小时2美元,此外还要另外支付每1000次API事务50美分的使用费。当然,大家也可以付费选择更为可观的数据集存储容量,这一点与Amazon机器学习服务非常相似。
IBM SoftLayer与Cognos/SPSS则是另外两套潜在解决方案。SAS研究所已经拥有了自己的SaaS分析机制,不过其很可能会选择与其它大型公有云供应商、甚至是像Rackspace Hosting这类规模较小的企业进行广泛合作。但话说回来,Rackspace公司似乎在开放软件的道路上越走越远,因此同SAS建立合作关系似乎缺乏实际意义——然而从另一个角度出发,借此将开源R工具、Apache Mahout或者Spark MLlib for Hadoop等技术成果纳入自身,并进一步创建出属于自己的机器学习服务也并非没有可能。
核子可乐译
OpenStack阵营再现分裂 客户或转用公有云
四张图看未来十年的公有云市场