Intel 开源了基于 Apache Spark 的分布式深度学习框架 BigDL 。BigDL 借助现有的 Spark 集群来运行深度学习计算,并简化存储在 Hadoop 中的大数据集的数据加载。
在 Xeon 服务器上运行的测试结果表明,BigDL 比其他开源框架 Caffe 、 Torch 和 TensorFlow 有显著的性能提升。BigDL 速度可与主流 GPU 匹敌,而且能够扩展到数十个 Xeon 服务器。
BigDL 库支持 Spark 1.5、1.6 和 2.0 版本,并容许将深度学习嵌入在现有的 Spark 程序中。BigDL 库中有把 Spark RDDs 转换为 BigDL DataSet 的方法,并且可以直接与 Spark ML Pipelines 一起使用。
对于模型训练,BigDL 使用了在多个执行器中执行单个 Spark 任务的同步小批量 SGD( Stochastic Gradient Descent )。每个执行器运行一个多线程引擎并处理一部分微批次数据。在当前版本中,所有的训练和验证数据都存储到存储器中。
BigDL 使用 Scala 开发,并参考了 Torch 的模型。像 Torch 一样,它有一个使用 Intel MKL 库进行计算的 Tensor 类。Intel MKL(Math Kernel Library)是由一系列为计算优化过的小程序所组成的库,这些小程序从 FFT (快速傅立叶变换)到矩阵乘法均有涉及,常用于深度学习模型训练。Module 是另一个从 Torch 借鉴而来的概念,它的灵感来自 Torch 的 nn package 。Module 代表单独的神经网络层、 Table 和 Criterion 。
BigDL 提供了一个 AWS EC2 镜像和一些示例,比如使用卷积神经网络进行文本分类,还有图像分类以及如何将在Torch 或Caffe 中预训练过的模型加载到 Spark 中进行预测计算。来自社区的请求主要包括提供对 Python 的支持和 MKL-DNN (MKL 的深度学习扩展)。
查看英文原文: Intel Open-Sources BigDL, Distributed Deep Learning Library for Apache Spark
感谢薛命灯对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论