Jubatusハンズオン分散編

10,234 views
10,165 views

Published on

Jubatusハンズオン 分散編プレゼン資料です。

テキストは、
http://download.jubat.us/event/handson_03/text/
を参照してください。

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,234
On SlideShare
0
From Embeds
0
Number of Embeds
8,939
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Jubatusハンズオン分散編

  1. 1. オンライン機械学習を「分散」する   Jubatusハンズオン 分散編 Jubatus  Team   小田 哲
  2. 2. 本資料の流れ •  Jubatusと分散   – Jubatusはどこを目指しているのか   •  分散を知るための機械学習   – nearest  neighbor   •  MIX   – MIXで行われること   – MIXをどのタイミングで行うか   •  動かしてみよう!
  3. 3. Jubatusと分散  
  4. 4. Jubatusが切り拓く世界 v さまざまな所で大量のデータが生成され続けている。   v これらのデータをリアルタイムに学習しながらリアルタイムに 分析を行いたい。  
  5. 5. Jubatusは、なぜ分散するのか? クラスタ構成を組んでスループットを あげよう! 1台だと処理しきれないかもしれない ストリーム的に入ってくるデータをリ アルタイムに処理したい v リアルタイムにデータを処理したいが、一台で処理できる単 位時間あたりの処理量は限られている。   v システムとして、24h/365d動き続けて欲しい。  
  6. 6. MIX ストリームデータを相手にしているためモデルは常に 変化し続ける。完全な同期はコストが高い。   Jubatusはサーバ間の完全な同期を諦め、代わ りにMIXという同期の仕組みを実現することで スケールアウトを実現。 緩い同期   =MIX
  7. 7. 分散を知るための機械学習  
  8. 8. Nearest  Neighbor ある点  からの距離を定義し、もっとも近い点  や、 決められた距離より近い点たちを抽出するタスク。 推薦、クラスタリングなど 様々なアルゴリズムの基 盤となる手法
  9. 9. NNではモデル=点のハッシュ値リスト まじめにやると大変なので確率的に判断する。例えば、 LSH(=距離が近ければ、値がかぶりやすい関数)を使 うと一致している数が多いものは距離も近い、ことを 使う。 01010100,  1010010,  010111  ,0110101 01110100,  1010010,  010101  ,0110101 01110100,  1011001,  110011  ,0110101 01010100,  1010010,  110111  ,0110101 01010100,  1101011,  010100  ,0110101 01010100,  1010010,  010101  ,0110101 01010100,  1010010,  010011  ,0110101 01010100,  1010010,  011101  ,  1101011 01111100,  1010100,  100011  ,1101011
  10. 10. MIXとは?   モデルの穏やかな共有
  11. 11. MIXで行われること:nearest  neighbor 12,  23,  34  ,45 10,  30,  31,  50 10,  23,  30,  31 50,  52,  54,  60 80,  82,  90,  100 10,  12,  21,  25 12,  23,  30,  34 50,  52,  78,  90 75,  79,  80,  82 + = 12,  23,  34  ,45 10,  12,  21,  25 10,  30,  31,  50 10,  23,  30,  31 12,  23,  30,  34 50,  52,  78,  90 50,  52,  54,  60 75,  79,  80,  82 80,  82,  90,  100 モデル=点のハッシュ値なので、点ごとに持っていな い  or  以前のデータを上書きすれば、全体のモデルに なる。
  12. 12. MIXと精度 •  タイミングによる精度のズレ   •  タイミングにより失われるデータ   •  MIXの精度を制御したいのであれば、ある程 度中のアルゴリズムと挙動を理解することが 必要   MIXはアルゴリズムごとに手法が異なる。   精度は、タスクの種類、MIXの頻度、データ入力のタイ ミングなどにより変化する。  
  13. 13. C/C++,  Java,  Python,  Ruby などで書かれた、jubatus にクエリーを投げるため のクライアントライブラリ。 クライアントが分散を意識 しなくても利用できるよう に、クエリーの分散、調停、 集計などを行うプロキシ 機械学習を実行するエン ジン 言語に適した名前 juba[アルゴリズム名] _proxy juba[アルゴリズム名] Jubatusの登場人物 Jubatus  Client Jubatus  Proxy クライアント プロキシ サーバ Jubatus  Server
  14. 14. 動かしてみよう! •  用意するもの   – AWSのアカウント
  15. 15. 一台構成 manager 凡例 サーバ プロセス jubatus_ update.pysource.py manager内で完結させる   queue jubaneares t_neighbor jubatus_a nalyze.py
  16. 16. 最終的なサーバ構成 c1manager s1 jubanearest_nei ghbor jubanearest_ neighbor_ proxy jubatus_ update .py queue サーバ2プロセスに対して、クライアントが処理を投げ 続けるモデル   c2 jubanearest_ne ighbor_ proxy jubatus_ update .py Zookeeper s2 jubanearest_nei ghbor
  17. 17. 分散の功罪 •  MIXのタイミングを制御   – MIXする前とした後で、結果が変わることを確認 する。   •  Analyzeクエリーを捌ききれることを確認

×