英特尔开源分布式深度学习库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实现深度学习模型的分布式训练
522 73
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
723 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
588 8
|
SQL 分布式计算 DataWorks
MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
|
12月前
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
283 0
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
310 6
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
523 2