2016年,机器学习技术很火。为何?有三个重要因素的驱使。算法
2015年是机器学习技术在学术领域全面成形的一年。具体来说,在这一年中其再也不是一小部分数据科学家们的专利,而开始成为与每一个人息息相关的成果——至少在理论上是如此。数据库
而2016年则开启了由理论到实践的征程。机器学习技术的能力与承诺乃至一切与之相关的可能与支持机制,开始更为坚决地进入商业市场并致力于成为主流。编程
这股浪潮主要围绕着三大趋势展开:面向机器学习的新型改良工具集、更为强大(且更易于获取)的硬件选项以及更多负责提供各种开源与专有工具的云托管型机器学习“即服务”衍生成果。缓存
1.新型改良工具集与框架帮助使用者减轻负担网络
曾几什么时候,若是你们但愿在应用中使用机器学习技术,则必须自行构建算法。以后,第三方库的普遍出现可以帮助你们节约这种从新发明轮子的被动局面,但仍要求咱们投入大量精力以实现其生产能力。而现在,各种出色的框架选项使得机器学习技术成为一种流水线式流程:一端输入数据,然后进行模型训练,便可最终得到可用结果。架构
是否还存在着比现有数据处理框架更为理想的机器学习实现方案?答案显然是确定的。为了实现这一目标,Spark这一超高速热门数据框架不只在2.0版本中进一步提高性能水平,同时还添加了一套通过调整的机器学习库,旨在更好地补充Spark的新型内部架构。框架
另外一种趋势一样值得关注:以往的产品虽然处理数据,但却没法直接接入机器学习机制,现在机器学习加速做为一类新型功能开始登场。内存的数据缓存系统Redis不只可以承担数据库相关的职责,亦会将Spark支持下的机器学习方案做为应用添加至其新型模块化架构当中。机器学习
第三种快速崛起的趋势是用于开发机器学习软件的新型技术工具的涌现。有时候其会以全新语言的形式出现,例如Lift语言就专门用于编写可运行在CPU、GPU及其它硬件之上的高速并行算法; 有时候其体现为指向现有语言的工具集,例如强化C/C++应用以使用OpenMP工具集的Milk,其可以显著加快对大数据集的访问速度。模块化
2. GPU与定制化硬件在云端及其它领域获得快速推广工具
若是没有极为强大的GPU为其提供计算资源,机器学习根本没法成为现实。很明显,GPU确实提供了这一代CPU根本没法企及的强大数据处理能力。
正由于如此,2016年机器学习领域出现了两波与GPU相关的新动向。其一是在机器学习产品中大量出现利用GPU实现加速的方案,包括Spark等各种数据框架。GPU的出色加速能力亦引发了数据库应用产品的注意,特别是那些定位为可以处理大量数据的机器学习型系统。
第二波GPU相关变革在于,各家大型云服务供应商如今都开始将GPU加速型实例归入其产品线。凭借云托管型GPU资源,客户们可以轻松购买到充足的处理资源以支撑自身机器学习训练任务,而这一点几乎没法经过传统的内部GPU驱动型机器学习平台构建方式实现。
Amazon不只推出了GPU加持型实例,同时亦拿出了更为灵活的方案:你们能够随时添加或者移除实例中的GPU处理资源,而没必要直接购买完整的GPU处理型实例。另外一方面,谷歌方面也推出其首款GPU加持型实例,容许用户自由添加/移除相关功能。
微软Azure也在自家云产品线中归入了GPU类机制,同时暗示称数据中心用户将来将迎来更为丰富的可编程硬件选项。做为一类高速可编程硬件,FPGA目前已经在Azure当中被用于网络提速,不过微软亦制定了长远计划,旨在利用相似的设备帮助客户处理各种计算密集型应用——例如机器学习。(Amazon方面也酝酿有相似的计划。)
固然,云端GPU方案也存在本身的弊端:你们可能没法随时得到业界领先的硬件配置。Amazon于今年9月添加新型GPU实例类型时,其仍坚持使用上一代GPU硬件——这可能主要是为了保证提供用户更为熟悉的选项,而非更新但更难于上手的方案。
3.云托管算法实现机器学习“民主化”,但成本依旧不菲
“民主化AI”这一说法来自微软公司,软件巨头借此宣传自身使命在于将机器学习资源经过云端交给每一位用户。固然,各大云巨头可以为这一目标而努力绝对是件好事:其提供的工具可以建立出各种智能化软件,并可与API同样轻松获得使用。
“人工智能即服务”则是另外一类实现方法。与其它即服务类方案同样,云服务一样在其中占据重要地位——其不只负责配置相关系统,同时亦进行模型训练并托管用于训练的对应数据。若是你们目前还没有将数据引入云环境,则可以使用各种更为高效的新型解决方案——例如Amazon推出的单车100 PB Snowmobile服务。您没看错,单车的意思是这是一台装载有集装箱的卡车,其中的存储阵列可一次性迁移100 PB数量。
在大多数状况下,你们能够直接跳过训练流程而直接经过API实现各种功能。此类API强调的是功能的便捷性而非透明性:请求入、结果出。对于多数用户而言,这种可以最大限度减小工做量的解决方案已经足够理想。固然,这也意味着产生结论的机制更不透明。
为了解决这个问题,你们也能够依赖于您所熟悉的现有工具的云托管版本,利用其中提供的算法与机制。Spark就是这样一款工具,其缔造者(Databricks)以及IBM与微软等第三方服务商都在本身的云环境中提供其托管版本。
这套方案的优点在于,你们能够选择最适合自身需求的流程。相比之下,黑盒API流程则更适合那些不打算对机器学习方案进行修改,而仅须要处理结果的用户。不过着眼于将来一年,可能会有至关一部分企业但愿推出本身的机器学习驱动型解决方案,并努力在这两类处理思路间找到平衡点。