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流程则更适合那些不打算对机器学习方案进行修改,而仅需要处理结果的用户。不过着眼于未来一年,可能会有相当一部分企业希望推出自己的机器学习驱动型解决方案,并努力在这两类处理思路间找到平衡点。
本文作者:核子可乐
来源:51CTO