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 )关注我们。