英特尔开源分布式深度学习库BigDL:支持高性能大数据分析

大数据 数据分析 分布式
近日,英特尔开源了一个运行在 Apache Spark 上的分布式深度学习库 BigDL,其可以利用已有的 Spark 集群来运行深度学习计算,并且还能简化从 Hadoop 的大数据集的数据加载。

近日,英特尔开源了一个运行在 Apache Spark 上的分布式深度学习库 BigDL,其可以利用已有的 Spark 集群来运行深度学习计算,并且还能简化从 Hadoop 的大数据集的数据加载。

开源地址>>>

据介绍,在 Xeon 服务器上的测试表明,BigDL 相比于 Caffe、Torch 或 TensorFlow 等开源框架实现了显著的速度提升。其速度可与主流的 GPU 相媲美,而且 BigDL 也能扩展到多达数十个 Xeon 服务器。

英特尔开源分布式深度学习库BigDL:支持高性能大数据分析

BigDL 库支持 Spark 1.5、1.6 和 2.0,并且允许将深度学习嵌入到已有的基于 Spark 的程序中。其中包含了将 Spark RDD(Resilient Distributed Datasets,弹性分布式数据集)转换成 BigDL 定义的 Dataset 的方法,并且也可以直接运用到 Spark ML Pipelines 上。

为了进行模型训练,BigDL 应用了一个同步小批量随机梯度下降(synchronous mini-batch SGD),该过程在跨多个执行器(executor)的单个 Spark 任务中执行。每一个执行器都执行一个多线程引擎并处理一部分微批量数据(micro-batch data)。在当前的版本中,所有的训练和验证数据都会加载到内存(memory)中。

BigDL 是用 Scala 实现的,并且模仿了 Torch。类似于 Torch,它也提供了一个 Tensor 类,其使用了 Intel MKL 库进行计算。Intel MKL 是英特尔的数学核心函数库(Math Kernel Library)的缩写,其中包含了一系列为计算优化过的历程,其中包括 FFT(快速傅立叶变换)和矩阵乘法等等,这些计算在深度学习模型训练中有广泛的应用。另外受到 Torch 的 nn 包(https://github.com/torch/nn)的启发,BigDL 借鉴了 Torch,提出了 Module 的概念,用于表示单个神经网络层、Table 和 Criterion。

BigDL 还提供了一个 AWS EC2 镜像和一些案例,其中包括:文本分类(使用卷积神经网络)、图像分类、以及将 Torch 或 Caffe 中预训练的模型加载到 Spark 中用于预测计算的方法。目前社区讨论区上大多数用户请求 BigDL 支持 Python,以及开发 MKL-DNN(MKL 的深度学习扩展)。

以下是 BigDL GitHub 项目的 README.md 介绍:

BigDL:在 Apache Spark 上的分布式深度学习

BigDL 是什么?

BigDL 是一个用于 Apache Spark 的分布式深度学习库。使用 BigDL,用户可以像编写标准 Spark 程序一样编写深度学习应用,并且可以直接将其运行在已有的 Spark 或 Hadoop 集群上。BigDL 有哪些优点呢?

丰富的深度学习支持。类似 Torch,BigDL 提供了全面的深度学习支持,包括数值计算(通过 Tensor)和高层面的神经网络;此外,用户还可以使用 BigDL 将预训练的 Caffe 或 Torch 模型加载到 Spark 程序中。

极高的性能。为了实现高性能,BigDL 在每一个 Spark 任务中都使用了 Intel MKL 和多线程编程。从而使得 BigDL 在单节点 Xeon(与主流 GPU 媲美)上能够实现比当前开源的 Caffe、Torch 或 TensorFlow 快几个数量级的表现。

有效的扩展。BigDL 可以利用 Apache Spark(一种超快的分布式数据处理框架)以及同步 SGD 的有效实现和在 Spark 上的 all-reduce 通信来进行有效地扩展,从而可在「大数据规模」上执行数据分析。

为什么选择 BigDL?

如果你满足以下条件,你就应该使用 BigDL 来编写你的深度学习程序:

  • 你想在数据存储(比如以 HDFS、HBase、Hive 等方式)于的同一个大数据(Hadoop/Spark)集群上进行大量数据的分析。
  • 你想为你的大数据(Spark)程序和/或工作流添加深度学习功能(不管是训练还是预测)。
  • 你想使用已有的 Hadoop/Spark 集群来运行你的深度学习应用,然后将其动态地共享给其它工作负载(如 ETL、数据仓库、特征工程、经典机器学习、图分析等等)。
责任编辑:未丽燕 来源: 36大数据
相关推荐

2013-04-27 11:43:19

大数据全球技术峰会

2017-01-20 13:58:31

英特尔GPUCPU

2021-09-23 16:10:06

数据库工具技术

2013-02-18 15:15:32

英特尔大数据Apache

2013-03-15 17:37:33

Hadoop英特尔CPU

2017-07-21 13:02:30

英特尔Cloudera

2013-11-20 11:30:12

英特尔超算技术大数据分析

2013-03-07 10:16:04

红帽

2017-02-15 14:36:12

开源大数据TensorFlowO

2010-06-03 18:28:54

英特尔高性能计算

2023-12-18 11:21:40

MongoDB数据库

2013-05-07 11:40:52

英特尔低功耗高性能

2017-01-11 16:36:51

Intel开源BigDL

2015-09-24 14:52:29

英特尔数据分析精准医疗

2013-11-22 15:18:27

2022-12-08 08:13:11

分布式数据库CAP

2023-11-14 08:24:59

性能Scylla系统架构

2020-09-28 14:49:48

多架构英特尔性能

2022-06-30 08:04:16

Redis分布式锁Redisson

2013-08-19 09:04:25

英特尔大数据
点赞
收藏

51CTO技术栈公众号