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

英特尔开源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 类。

  雷锋网注:这里 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 框架下进行大数据分析(即将数据存储在 HDFSHBase、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

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 英特尔开源BigDL,可直接在Spark框架下运行深度学习

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址