deep learning on apache spark
TRANSCRIPT
Deep Learning onApache SparkYuta ImaiSolutions Engineer, Hortonworks
Apache Spark
3 ©HortonworksInc.2011–2016.AllRightsReserved
Apache Sparkà RDDという分散データセットを処理の基本単位としたジェネリッ
クな⼤規模データ処理のためのエンジンÃ プログラマフレンドリなAPIを提供しており⼈気が⾼いÃ Spark SQL, Spark Streaming, SparkML, GraphX, SparkR
4 ©HortonworksInc.2011–2016.AllRightsReserved
sc.textFile("/some-hdfs-data")
mapmap reduceByKey collecttextFile
.flatMap(line=>line.split(""))
.map(word=>(word,1)))
.reduceByKey(_+_,3)
.collect()
RDD[String]
RDD[List[String]]
RDD[(String, Int)]
Array[(String, Int)]
RDD[(String, Int)]
すべてのデータ処理の基本単位となるRDD
RDDに対する処理のつながりをDAGとして構築し・・・
5 ©HortonworksInc.2011–2016.AllRightsReserved
Driver (e.g. Zeppelin)
Executor Executor Executor
Job
Task Task
P PRDD
Task
P
Task Task
P P
Task
P
Task Task
P P
Task
P
HDFS HDFS HDFS
WorkerNode1 WorkerNode2
SparkはRDDに対する処理を分散実⾏する
構築されたDAGを分散実⾏する
Deep Leaning & Spark
7 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learningと分散処理Ã ”Data Parallel”によるDeep Learningのモデルトレーニングの並列化
と、それによる処理時間の短縮
minibatch
minibatch
minibatch
minibatch
Model
シリアルに評価&モデル更新
minibatch
minibatch
minibatch
minibatch
ModelCopy
ModelCopy
ModelCopy
ModelCopy
Master
同⼀モデルのコピーによる評価の並列化。結果をMasterでモデル更新し、再度モデルを配布
8 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache SparkApache Spark上で動作するDeep Learningフレームワークの代表的な選択肢
à Deeplearning4j– Skymind社が開発を進めているオープンソースのプロジェク
ト。商⽤サポートあり。– その名のとおりJVMで動くことを前提に作られている。– ND4jという多次元配列取扱の
ライブラリも⼀緒に提供
citaHon:hJp://deeplearning4j.org/
9 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache SparkApache Spark上で動作するDeep Learningフレームワークの代表的な選択肢
à CaffeOnSpark– CaffeのSpark拡張– Yahoo! Inc.によって主に開発が進められているオープン
ソースプロジェクト。– 既存のSparkのコード資産やワークフロー資産を強調。
citaHon:hJp://yahoohadoop.tumblr.com/post/139916563586/caffeonspark-open-sourced-for-distributed-deep
10 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache SparkApache Spark上で動作するDeep Learningフレームワークの代表的な選択肢
à H2O on Spark(Sparkling Water)– H2O社が開発しているオープンソースプロジェクト。商⽤サ
ポートあり。– DataFrameの実装あり– FFNNのみサポート(?)
citaHon:hJps://github.com/h2oai/sparkling-water/blob/master/DEVEL.md
11 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache Spark他にも・・・
à SparkNetà TensorSparkà (Tensorflow)
12 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache Spark他にも・・・
à SparkNetà SparklingWarterà TensorSparkà (Tensorflow)
Why Spark?(& Hortonworks)
14 ©HortonworksInc.2011–2016.AllRightsReserved
Why Spark?
à データストアとしてのHadoop– HDFSをデータストアとして利⽤可能– 同じようにHiveからデータを取り出したデータをトレーニング
に利⽤することも– SparkはHDFSやHive他、様々なデータストアを利⽤できるの
で⼤規模なトレーニングデータの取り出しや、結果の保存などのワークフローの構築が容易
15 ©HortonworksInc.2011–2016.AllRightsReserved
Why Spark?
à YARNによるリソース管理– Hadoopクラスタからのリソース払い出し/管理。– リソースキューを活⽤することによりワークロード管理も。– Node Labelを利⽤することにより例えばGPUノードだけを割
り当てるといったことも可能に。– もちろんリソースへのアクセスコントロールも。
1 ° ° ° ° ° ° °
° ° ° ° ° ° ° °
° ° ° ° ° ° ° n
SQLHive
PigScript-based
ETL
StreamProcessing
Storm
ML/DLSpark
YARN RM
App Master
Monitoring UI
Spark⽤にリソースを払い出し/管理
16 ©HortonworksInc.2011–2016.AllRightsReserved
Why Spark?
à Apache Zeppelin– SparkのノートブックであるZeppelinを活⽤することでワーク
フローの構築がしやすく。
17 ©HortonworksInc.2011–2016.AllRightsReserved
Deep Learning on Apache Spark on Hortonworks Data Platform
Hortonworks Data Platform 2.5 GOVERNANCE OPERATION
SBATCH,INTERACTIVE&REAL-TIMEDATAACCESS
YARN:DataOperaIngSystem(ClusterResourceManagement)
Map
Redu
ce
ApacheFalcon
ApacheSqoop
ApacheFlume
ApacheKa^a
Apache
Hive
Apache
Pig
Apache
HBa
se
Apache
Accum
ulo
Apache
Solr
Apache
Spark
Apache
Storm
1 • • • • • • • • • • •
• • • • • • • • • • • •
HDFS(HadoopDistributedFileSystem)
ApacheAmbari
ApacheZooKeeper
ApacheOozie
DeploymentChoiceLinux Windows On-
premises Cloud
ApacheAtlas
Cloudbreak
SECURITY
ApacheRanger
ApacheKnox
ApacheAtlas
HDFSEncrypHon
ISV
Engine
s
→ 周辺部の⼿間はプラットフォームに任せ DLアプリケーションの開発にリソースを集中できる!