はじパタ 14th LT SparkとMLlibとわたし

11
Spark MLlib とわたし はじパタよ、永遠に SP はじパタ 14th LT 2014.3.18 やまかつ

description

第14回はじめてのパターン認識勉強会 LT 2014/3/18

Transcript of はじパタ 14th LT SparkとMLlibとわたし

Page 1: はじパタ 14th LT SparkとMLlibとわたし

Spark と MLlib とわたし ~ はじパタよ、永遠に SP ~

はじパタ 14th LT 2014.3.18

やまかつ

Page 2: はじパタ 14th LT SparkとMLlibとわたし

Who are Yamakatu ? ß  yamakatu(やまかつ) ß  お仕事:検索方面 ß  フルスタックイクメンエンジニア

Þ 開発、インフラ、機械学習、統計、検索、育児

ß  gihyo.jp で連載してました Þ 合言葉「読まずにはてブだけして」

Page 3: はじパタ 14th LT SparkとMLlibとわたし

What’s Spark ? ß  2014/2/27 にApacheのTop Level Projectになったばかり

ß  Hadoopのエコシステム ß  、、、と、その前に

Page 4: はじパタ 14th LT SparkとMLlibとわたし

What’s Hadoop ?(一応) ß  以下の二つで構成される

Þ  MapReduce Ý  分散処理:複数台のマシンで計算

Þ  HDFS Ý  分散ファイルシステム:複数台のマシンに分散保存

ß  大量のデータを高速に処理する

Hadoopクラスタ

サーバ

HDFS

MapReduce サーバ

HDFS

MapReduce サーバ

HDFS

MapReduce

Page 5: はじパタ 14th LT SparkとMLlibとわたし

MapReduce(一応)

Map1

Map2

Map3

Reduce1

Reduce2

HDFS HDFS

並列処理 集約処理 入力読込 出力書込 Shuffle

Page 6: はじパタ 14th LT SparkとMLlibとわたし

Weak point of Hadoop •  繰り返し処理において、無駄が多い – ? 3. 4.

•  K-Meansの場合を考える – 収束するまで以下を繰り返す

•  各データは最も重心が近いクラスタに所属 •  クラスタの重心を再計算

– 上記繰り返しにおける1回で •  HDFS➡Map➡Shuffle➡Reduce➡HDFS •  繰り返す毎にDisk I/Oが発生する

– 次の繰り返しで使うデータをわざわざHDFS経由で渡すのは無駄

Page 7: はじパタ 14th LT SparkとMLlibとわたし

そう、Spark ならね ß  Spark はデータセットをキャッシュできる

Þ  一度読み込んだデータセットのキャッシュ Þ  計算結果もキャッシュできる Þ  これにより繰り返し処理の Disk I/O を大きく低減できる Þ  さっきの K-Means で極端に言えば

Ý  Disk Read:最初にデータセットの読み込みの時に1回 Ý  Disk Write:繰り返し終了時に計算結果を書き出す時の1回

ß  RDD(Resillient Distributed Datasets) Þ  キャッシュはクラスタノード間で分散保持されていて、一部が失われても復旧可能

ß  繰り返し処理に適している

Page 8: はじパタ 14th LT SparkとMLlibとわたし

Hadoop vs. Spark + Mllib ß  Hadoopと比較した際の実行速度らしい (引用)

Þ  ロジスティク回帰:150倍 Ý  ロジスティク回帰はあからさまな繰り返し処理

Þ  ADMM:15倍

ß  本当かどうか試してみた結果見てみたい?

Page 9: はじパタ 14th LT SparkとMLlibとわたし

What’s MLlib ß  Spark用のMachine Learning の library ß  アルゴリズム(まだ少ない)

Þ  Linear SVM Þ  ロジスティク回帰 Þ  Linear Regression Þ  Ridge Regression Þ  K-Means Þ  ALS Þ  最急降下法 Þ  協調フィルタリング

Page 10: はじパタ 14th LT SparkとMLlibとわたし

Sparkの構築 ß  結構簡単 ß  EC2上ならスクリプト一発

Þ しかもspot instance対応 ß  詳しくは多分今度Blogに書く(時間切れ

Page 11: はじパタ 14th LT SparkとMLlibとわたし

祝 はじパタ最終回