本文首次发表于译言网,翻译自Technet.com,为[机器学习]系列文章之一。
发表地址:http://article.yeeyan.org/view/243697/442207
这篇博客文章由Joseph Sirosh所撰写。
很少有人能够重视机器学习技术(ML)在企业级应用中的巨大潜力。我有幸能够在我第一份工作的仅仅几个月之中,便尝到它潜在益处中的甜头。那是1995年,信用卡发卡机构已经开始采用神经网络模型,来实时监测信用卡欺诈活动。当一个信用卡被使用时,来自销售系统的交易数据会被发送至发卡银行的授权系统当中,在这里神经网络系统对欺诈可能性的概率进行评分。如果概率评分较高,该项交易将会被当场拒绝。我当时是从事建立这种模型的科学家,我的第一个模型交付给了南美的一家银行机构。当这个模型调度后,仅仅在第一天,银行便识别了超过一百万美元的欺诈行为,然而在这之前从未被监察出来。这是一个让人大开眼界的事物。这些年来,我目睹在诸如需求预测、故障和异常检测、广告投放、线上推荐和Cortana虚拟助理这些各种各样的应用中,机器学习技术所带来的巨大价值。通过将机器学习技术嵌入至企业系统中,各机构可以提升客户体验,降低系统性失灵的风险,增加收益并使成本显著的节约。
然而,建立机器学习系统是缓慢、耗时、易错配的一件事。即使我们现在能够分析非常庞大的数据集,并将其调度于非常高的事务处理速率上,仍有几个瓶颈存在:
- 机器学习系统的开发要求深厚的专业知识。尽管机器学习的核心原理已经开放给更多的受众,但有本领的数据科学家仍如二十年前那样难以聘到。
- 从业者被迫使用各种工具来收集、清洗、合并和分析数据。这些工具的学习曲线相当陡峭,并且互不协调。使得调度和维护商业性质的机器学习软件变得非常昂贵。
- 建立和验证模型要求相当大的实验能力。数据科学家常常发现,由于需要运行能够产生庞大新数据的大量实验,他们自己却因有限的计算和存储能力而难以开展。
- 软件工具不支持可扩展的实验和途径来统筹实验正常运转。例如在实验中团队作案,共享派生变量、脚本等行为,没有支持工具,只能临时安排并手动完成。评估和调试统计模型仍然是一个挑战。
数据科学家们进行机器学习的实验时,通过编写定制程序和重复无差别的繁重体力活来绕过这些工作限制。但在调度阶段,这会变得更加艰难。在诸如实时欺诈预防或广告投放这样作为关键任务的业务过程中,调度机器学习模型便要求其为复杂精密的工程:
- 通常情况下,脱机开发出的机器学习模型现在必须在C++、C#或者Java语言中重新实现。
- 必须深入检测交易数据管道。在脱机模式下使用过的数据转换和变量必须重新编码和编译。
- 重新实现的过程中不可避免地会产生各种问题Bug,要求去确认这些模型能够如最初设计那样正常工作。
- 必须建立一个对该模型定制的具备适当检测、度量和记录功能的容器接口。
- 为了评估并行的替代模型,先进的调度需要A/B测试框架。我们需要的机制是,最好在一种无需重新编译和调度整个应用的情况下,实现接通和断开。
- 我们需要确认在整个统计校验测试中,候选产品模型能够如最初设计那样正常运转。
- 由系统和交易输出所自动生成的决策,必须为精炼和检测机器学习模型而记录。
- 服务必须以旨在高可用性、灾难复原和数据趋于结束点而设计。
- 当不得不拓展服务以满足更高事务处理速率和低延迟时,为了供应新硬件设备、调度服务于新机器并向外拓展,将会需要完成更多的工作。
如上这些步骤均耗时且工程量大集中。在基础设施建设和人力双方面都花销不菲。一个机器学习应用的端到端的工程和产品维护,要求一个技能高超的团队,以至于极少能有组织机构可以将其建立和维持。
微软Azure ML(Azure机器学习技术)便是为解决这些问题而设计的:
- 它是一个完全托管的云服务,无需安装软件、无需设备管理、无需克服操作系统版本和开发环境所带来的问题。
- 只依靠一个浏览器,数据科学家们便能在从任何位置、任何设备登录到Azure然后开始开发机器学习模型。他们在Azure云存储中,可以群集几乎无限量的文件。
- 机器学习工作室,一个为机器学习技术集成的开发环境,通过简单地拖拽和连接范式,让你以简单的数据流程图而建立实验。数据科学家们可以省去为大量而相同的任务所做的编程工作,从而使他们专注于实验设计和迭代。
- 它提供许多实验模版,使之更容易上手。
- 它内置一系列由微软研究院开发的最佳种子算法,支持自定义R语言——能在Azure ML里安全使用超过350个开源R语言软件开发包。
- 数据流程图可以搭载几个能够自动并行运行的并行路径,从而使科学家们能够突破通常的计算能力的约束,而执行复杂的实验和完成并行的比较。
- 各种实验易于共享,这样其它科学家便能接手你的工程,在你停滞之处继续工作。
Azure ML也能够使在云端创建一定规模的产品调度更为简单。预训的机器学习模型能被纳入一个评分工作流之中,并且通过几次单击,便能创建一个新云托管的REST API(含状态传输接口)。这个REST API为响应低延迟而设计。它无需重新实现或移植——一个胜过传统数据分析软件的主要强项。数据来自互联网的各个地方——笔记本电脑、网站、移动设备、可穿戴设备和可连接的各种机器——都能被发送到新建的API(应用程序接口)以返回预测。例如,一个数据科学家能够创建一个监测欺诈的API接口,此接口会将输入交易信息,然后返回输出一个低/中/高风险指标。这样的API接口将“生活”在云端,随时准备着接受来自开发者所选择调用的任何软件。API后端弹性地扩展,这样在事务处理速率飙升时,Azure ML服务便能自动处理负载。事实上,一个数据科学家能够创建和配置的机器学习接口是没有数量限制的——并且完全不依赖于任何工程。对IT和工程而言,使用那些REST API接口来集成一个新机器学习模型变得简单,并且在调度之前来测试并行的多个模型也变得容易,从而在低开销上显著地取得更好的敏捷度。在衡量包括可用性、延迟度和性能这些机制的生产过程中,Azure提供了API接口扩展和管理机制。因此,建立健壮、可用性高、可靠的机器学习系统,并管理其生产调度,对企业而言,是显著地更快、更便宜和更容易的,并伴随着巨大商业利益。
我们相信Azure ML是游戏规则变革者。它使创业公司和大型企业都能获取到机器学习的难以置信的潜力。以前只有最复杂的业务才能获得的功能,创业公司现在就能够同样地使用。更大的企业能够释放在他们大数据中的潜在价值,以大幅度地提高收入和效率。尤其是现在可能实现的迭代和实验速度,将会为快速创新留出余地,为我们周围智能云的互联设备铺平道路。
当我在1995年开始我的职业生涯,需要一个大规模组织来建立和调度信用卡欺诈监测系统。运用像Azure ML这样的工具和借助云计算的力量,一个富有才能的数据科学家凭一己之力便能实现这般壮举。
Joseph
注:本文由微软研究院提供,授权译言进行翻译,非商业转载请注明译者、来源,未经许可不得商业使用。