动态丨英特尔开源BigDL,可直接在Spark框架下运行深度学习

近日,英特尔开源了基于 Apache Spark 框架的分布式深度学习库 BigDL。通过使用BigDL,用户可以将他们的深度学习应用程序作为标准的 Spark 程序发布(即将基于BigDL的深度学习代码直接嵌入已有的Spark程序中),同时,BigDL还简化了基于Hadoop框架的数据加载过程。

据团队在GitHub平台上的介绍,BigDL具有如下三大特点:

1. 丰富的深度学习支持

BigDL的源代码基于Scala语言实现,同时从Torch框架中汲取了诸多先进的理念。比如像Torch一样,BigDL也为用户实现了一个Tensor类,该类基于英特尔MKL库实现,可以进行各种常见的高阶数学运算。另外,受到 Torch 框架下的神经网络包(这里指 nn 包,neural network package) 的启发,BigDL还提出了Module类的概念,同时还模仿Torch实现了Table类和Criterion类。

AI科技评论注:这里MKL库的全称是“Math Kernel Library”,即英特尔的数学核心函数库,其中包含了诸多常规数学计算的最优实现,包括快速傅里叶变换和矩阵乘法等,这些计算在深度学习领域的模型训练中有着非常广泛的应用。

2. 极高的性能表现

BigDL基于一种同步小批量的随机梯度下降法(Stochastic Gradient Descent,SGD)对模型进行训练,该方法的能够支持单个 Spark 任务的跨平台运行,每个平台的执行器(executor)都可以执行一个多线程引擎并处理其中一小部分的批量数据。

正式由于引入了英特尔MKL和多线程,使得BigDL库在英特尔 Xeon 服务器上的表现要优于Caffe、Torch 或 TensorFlow 等其他的开源框架,甚至达到了主流GPU的运算速度。

3. 强大的扩展能力

BigDL 可以通过利用 Apache Spark 框架、同步的随机梯度下降算法,和 Spark 框架下的 all-reduce 通信进行有效的扩展,以“大数据的规模”执行数据分析任务。外媒报道称,BigDL 可一次支持几十个 Xeon 服务器的扩展。

根据上述特点,团队在GitHub平台上给出了如下三点BigDL最适合的应用场景:

1. 直接在Hadoop/Spark框架下进行大数据分析(即将数据存储在HDFS、HBase、Hive等数据库上); 2. 在Spark程序中/工作流中加入深度学习功能; 3. 利用现有的 Hadoop/Spark 集群来运行深度学习程序,然后将代码与其他的应用场景进行动态共享,例如ETL(Extract、Transform、Load,即通常所说的数据抽取)、数据仓库(data warehouse)、功能引擎、经典机器学习、图表分析等。

值得一提的是,BigDL提供了一个基于亚马逊AWS EC2服务器实现的完整镜像,并附带诸多可以直接运行的用例:包括使用卷积神经网络实现的文本分类用例、图像分类用例,以及将 Torch/Caffe 中经过预训练的模型加载到 Spark 中进行预测计算的用例等,感兴趣的朋友可以在这里查看:

https://github.com/intel-analytics/BigDL/wiki/Running-on-EC2

目前,社区讨论中的大多数用户都表示希望 BigDL 的后续版本加入对 Python 的支持,以及开发基于MKL的深度学习扩展包。

BigDL库在GitHub平台上的开源地址如下: https://github.com/intel-analytics/BigDL 感兴趣的朋友可以在页面下方找到团队给出的各种教程,包括如何在各个操作系统平台上安装和运行BigDL,以及BigDL在谷歌讨论组的地址等。

来源:infoq

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

基于无尺度网络模型的启发——一种新型数据中心架构的设想

无尺度网络(Scale Free Network),在网络理论中指的是一类有特定特征的网络。无尺度网络所具有的特征是:大部分节点只有极少的边连接,只有极小一部分...

30411
来自专栏大数据挖掘DT机器学习

大数据分析:机器学习算法实现的演化

下面将会对机器学习算法的不同的实现范式进行讲解,既有来自文献中的,也有来自开源社区里的。首先,这里列出了目前可用的三代机器学习工具。 传统的机器学习和数据分析的...

43310
来自专栏CSDN技术头条

Apache Spark在大规模分布式自然语言处理的应用

我们TripAdvisor公司拥有大量的用户评价数据,据最近的一次公告,大约有几亿条。我是从事机器学习相关的工作,在机器学习中我们常喜欢做的一件事就是堆砌大量数...

1748
来自专栏人工智能LeadAI

译文 | 与TensorFlow的第一次接触(一)

本人对一直对高性能网络服务器,分布式存储比较感兴趣,在BAT时也一直从事架构开发,并没有做过机器学习相关工作,平时喜欢阅读分析开源代码,到目前为止已分析完约8套...

3256
来自专栏机器之心

想轻松复现深度强化学习论文?看这篇经验之谈

选自Amid Fish 作者:Matthew Rahtz 机器之心编译 近期深度强化学习领域日新月异,其中最酷的一件事情莫过于 OpenAI 和 DeepMin...

3216
来自专栏人工智能头条

Apache Spark在大规模分布式自然语言处理的应用

1243
来自专栏人工智能头条

从零实现来理解机器学习算法:书籍推荐及克服障碍的技巧

1385
来自专栏数据派THU

分布式机器学习平台大比拼(附论文)

来源:将门创投 本文长度为2575字,建议阅读4分钟 本文为你介绍分布式机器学习平台的实现方法及未来研究方向。 本文选自纽约州里大学计算机系教授Murat和学生...

4975
来自专栏思影科技

结构脑网络的模块性分离,支持青年时期大脑功能执行的提升

宾夕法尼亚大学精神病学系的Satterthwaite等人在Current Biology期刊上发表了一项研究,用来解释青年时期的执行功能活动和大脑结构网络的成熟...

3557
来自专栏数据科学与人工智能

【机器学习】从零实现来理解机器学习算法:书籍推荐及障碍的克服

并非所有的开发者都有机器学习算法的基础知识,那么开发者如何从零入门来学习好机器学习算法呢?本文总结推荐了一些从零开始学习机器学习算法的办法,包括推荐了一些合适的...

2569

扫码关注云+社区