Intel開源了基于Apache Spark的分布式深度學(xué)習(xí)框架BigDL。BigDL借助現(xiàn)有的Spark集群來(lái)運(yùn)行深度學(xué)習(xí)計(jì)算,并簡(jiǎn)化存儲(chǔ)在Hadoop中的大數(shù)據(jù)集的數(shù)據(jù)加載。
在Xeon服務(wù)器上運(yùn)行的測(cè)試結(jié)果表明,BigDL比其他開源框架Caffe、Torch和TensorFlow有顯著的性能提升。BigDL速度可與主流GPU匹敵,而且能夠擴(kuò)展到數(shù)十個(gè)Xeon服務(wù)器。
BigDL庫(kù)支持Spark 1.5、1.6和2.0版本,并容許將深度學(xué)習(xí)嵌入在現(xiàn)有的Spark程序中。BigDL庫(kù)中有把Spark RDDs轉(zhuǎn)換為BigDL DataSet的方法,并且可以直接與Spark ML Pipelines一起使用。
對(duì)于模型訓(xùn)練,BigDL使用了在多個(gè)執(zhí)行器中執(zhí)行單個(gè)Spark任務(wù)的同步小批量SGD(Stochastic Gradient Descent)。每個(gè)執(zhí)行器運(yùn)行一個(gè)多線程引擎并處理一部分微批次數(shù)據(jù)。在當(dāng)前版本中,所有的訓(xùn)練和驗(yàn)證數(shù)據(jù)都存儲(chǔ)到存儲(chǔ)器中。
BigDL使用Scala開發(fā),并參考了Torch的模型。像Torch一樣,它有一個(gè)使用Intel MKL庫(kù)進(jìn)行計(jì)算的Tensor類。Intel MKL(Math Kernel Library)是由一系列為計(jì)算優(yōu)化過(guò)的小程序所組成的庫(kù),這些小程序從FFT(快速傅立葉變換)到矩陣乘法均有涉及,常用于深度學(xué)習(xí)模型訓(xùn)練。Module是另一個(gè)從Torch借鑒而來(lái)的概念,它的靈感來(lái)自Torch的nn package。Module代表單獨(dú)的神經(jīng)網(wǎng)絡(luò)層、Table和Criterion。
BigDL提供了一個(gè)AWS EC2鏡像和一些示例,比如使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類,還有圖像分類以及如何將在Torch或Caffe中預(yù)訓(xùn)練過(guò)的模型加載到Spark中進(jìn)行預(yù)測(cè)計(jì)算。來(lái)自社區(qū)的請(qǐng)求主要包括提供對(duì)Python的支持和MKL-DNN(MKL的深度學(xué)習(xí)擴(kuò)展)。
查看英文原文:Intel Open-Sources BigDL, Distributed Deep Learning Library for Apache Spark