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

简介:

近日,英特尔开源了一个运行在 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、数据仓库、特征工程、经典机器学习、图分析等等)。


本文作者:佚名

来源:51CTO

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
340 70
|
6月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
10月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
900 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
|
存储 人工智能 固态存储
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
3FS是DeepSeek开源的高性能分布式文件系统,专为AI训练和推理任务设计,提供高达6.6 TiB/s的读取吞吐量,支持强一致性保障和通用文件接口,优化AI工作负载。
1734 2
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
|
机器学习/深度学习 运维 自然语言处理
当深度学习遇上故障根因分析:运维人的绝佳拍档
当深度学习遇上故障根因分析:运维人的绝佳拍档
528 17
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
3335 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
769 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
机器学习/深度学习 文字识别 自然语言处理
分析对比大模型OCR、传统OCR和深度学习OCR
OCR技术近年来迅速普及,广泛应用于文件扫描、快递单号识别、车牌识别及日常翻译等场景,极大提升了便利性。其发展历程从传统方法(基于模板匹配和手工特征设计)到深度学习(采用CNN、LSTM等自动学习高级语义特征),再到大模型OCR(基于Transformer架构,支持跨场景泛化和少样本学习)。每种技术在特定场景下各有优劣:传统OCR适合实时场景,深度学习OCR精度高但依赖大量数据,大模型OCR泛化能力强但训练成本高。未来,大模型OCR将结合多模态预训练,向通用文字理解方向发展,与深度学习OCR形成互补生态,最大化平衡成本与性能。
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
404 36