Your SlideShare is downloading. ×
HivemallとSpark MLlibの比較
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

HivemallとSpark MLlibの比較

788
views

Published on

ビッグデータ基盤勉強会(2014/12/11)での発表資料 …

ビッグデータ基盤勉強会(2014/12/11)での発表資料

https://atnd.org/events/59172

Published in: Data & Analytics

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
788
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
8
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 独)産業技術総合研究所情報技術研究部門 データサイエンス研究グループ主任研究員油井誠 @myui HivemallとSpark MLlibの比較 1 1 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 2. はじめに 2 [1] http://www.slideshare.net/myui/sigmodj-myui Disclaimer: Hivemallについての技術詳細はこれまでに色々なところ1 で話しているので詳しく述べません.また実験の詳細など はスライドではなく口頭説明します 発表内容:HivemallとSpark MLlibの比較 発表趣旨:最初に性能比較から入り,その性能差の理由 をそれぞれの動作原理からご紹介する 2 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 3. HivemallとSpark MLlib Hadoop HDFS MapReduce (MRv1) Hive/PIG クエリ処理系 Hivemall Apache YARN Apache Tez DAG処理系 Apache MESOS Apache Spark DAG処理系 Spark MLlib MR v2 SparkSQL 分散ファイルシステム リソース管理システム 並列処理フレームワーク 問合せ処理系 機械学習ライブラリ 3 3 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 4. SQLベースの宣言的かつ容易な記述 Hivemallの特徴 Mahoutによるプログラミング CREATE TABLE lr_modelAS SELECT feature, --reducers perform model averaging in parallel avg(weight) as weight FROM ( SELECT logress(features,label,..) as (feature,weight) FROM train ) t --map-only task GROUP BY feature; --shuffled to reducers 一般的なエンジニアでも機械学習を扱える 4 4 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 5. SparkとHadoopにおける繰り返し処理 •MapReduceはIN/OUTがHDFSを介すために反復処理に は適さない(注: Tezを利用した場合はHDFSのIN/OUTがスキップ可 能) •Sparkはオンメモリ処理によって効率的に反復を扱う iter. 1 iter. 2 . . . Input HDFSread HDFSwrite HDFSread HDFSwrite iter. 1 iter. 2 Input 5 5 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 6. 性能評価–KDD Cup 2012 Track2での比較 KDD Cup 2012, Track 2: データ:中国の検索エンジンプロバイダ提供の実データ(機械学習のPublicなデータとして最大級) 訓練データは2億レコード以上、特徴数は5千万以上 タスク:検索エンジン広告の広告クリックスルー率(CTR)推定 6 Sparkでもイテレーション は重い処理 SparkだとAUC 0.6以下 6 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 7. 性能評価–KDD Cup 2010のデータセットを用いた比較 KDD Cup 2010a: 2クラス分類のPublicデータセットとして最大級(特徴数: 8百万以上,特徴数2千万以上,2.73GB) 7 Sparkが向いているタスクもある 7 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 8. 機械学習の基本–勾配降下法 https://speakerdeck.com/lintool/large-scale-machine-learning-at-twitterより抜粋 実際に学習して求めるのは特徴ごとの重みw 8 9 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 9. 푤푡+1=푤푡−훾푡1 푛 푖=0 푛 훻푙표푠푠(푓(푥푖;푤푡),푦) 新しい重み 古い重み 経験損失の勾配 学習率 勾配降下法(Gradient Descent) 経験損失の勾配 を基に重みを更新 9 10 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 10. 1.Distributed Gradient •勾配効果法の勾配計算の並列化 •重みの更新は基本的に単一ノード 2.Parameter Mixing •確率的勾配降下法の学習処理を並列化 •重みの更新が各学習器の計算ノードで行われ,その 後モデルの平均化処理が行われる 機械学習の分散処理 機械学習の分散処理手法は 基本的にこの2種類かその亜種に分類できる HivemallやJubatus, Down Pour SGDは②を採用 Spark Mllibは①の亜種 Vowpal WabbitはAllReduceを利用した①の亜種および②を共にサポート 10 11 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 11. Distributed Gradient 푤푡+1=푤푡−훾푡1 푛 푖=0 푛 훻푙표푠푠(푓(푥푖;푤푡),푦) mappers single reducer 勾配をmapperで並列に計算 重みの更新をreducerで行う SGDによる更新も可能 11 12 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 12. Distributed Gradientwith Mini-batch Updates 正確な勾配を算出できるが更新幅が 小さくなりがちで多くのイテレーションが必要 CTR推定ではクリックありの訓練事例数が広告クリックなしに比べて 極端に小さい(広告クリック率0.2%程度)ためにSGDの方が向いている 12 13 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 13. Spark MLlibでは実際どうなっている? Val data = .. for (i <-1 to numIterations) { valsampled = valgradient = w -= gradient } サンプリングを利用したMini-batch勾配降下法 で勾配の計算をdistributed gradientで並列化 データのサブセットをサンプリング Spark MapReduceを利用してSampled[1..N]の勾配をN個のワー カで並列に計算してN個の予測モデルを構築し、N個のご予測モデルを マスターノードで(逐次的に)マージ Wは次のイテレーションで各ワーカに送信される 13 14 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 14. Parameter Mixing 푤푡+1=푤푡−훾푡훻푙표푠푠(푓(푥;푤푡),푦) train train +1, <1,2> .. +1, <1,7,9> -1, <1,3, 9> .. +1, <3,8> tuple <label, featues> array<weight> Training table -1, <2,7, 9> .. +1, <3,8> MIX -1, <2,7, 9> .. +1, <3,8> train train array<weight> データ分割して各学習器でSGDに より並列に重みを算出 重みの統合/平均化処理 14 15 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 15. Hivemallにおける工夫 15 学習器1 学習器2 学習器N パラメタ 交換 学習 モデル 分割された訓練例 データ並列 データ並列 (モデルパラメタ) ①訓練事例の増幅 ②Mix Serverによるパラメタ交換 16 / 16 ビッグデータ基盤勉強会(2014/12/11)
  • 16. 学習器1 学習器2 学習器N パラメタ 交換 学習 モデル 分割された訓練例 データ並列 データ並列 (モデルパラメタ) システム系研究者とタッグを組めそうな話題 超低レイテンシ/Line rateのパラメタ交換 (FPGA+高速ネットワーク) FPGAボードにNICが刺さっているもので超低レイテンシかつ 機械学習向けのaccumulatorを実現する..など ビッグデータ基盤勉強会(2014/12/11) 16