SlideShare a Scribd company logo
数式を使わないJubatus入門
~分散処理編~
愛甲健二
Twitter: @07c00
kenjiaiko@gmail.com
1
はじめに
本資料は「数式を使わないJubatus入門」の続編です
数式を使わないJubatus入門
http://www.slideshare.net/KenjiAiko/jubatus-22389573
まずは上記の資料から読むことをお勧めします
また主にJubatusでの分散処理のやり方について書いてますが
分散処理やJubatusについてシロウトなので
いろいろと間違ってるかもしれないこと予めご了承くださいま
せ
2
前回までの話
3
ざっくりとしたJubatus概要
(1/5)
Jubatus Server
Jubatus Client
4
ざっくりとしたJubatus概要
(2/5)
Jubatus Server
Jubatus Client
学習しといて
~
おk
5
ざっくりとしたJubatus概要
(3/5)
Jubatus Server
Jubatus Client
学習中…
6
ざっくりとしたJubatus概要
(4/5)
Jubatus Server
Jubatus Client
これどこ?
クラスAに分類
されますね~
7
ざっくりとしたJubatus概要
(5/5)
Jubatus Server
Jubatus Client
• 用意するもの
– データセット(学習 and テストデータ)
– サーバ(設定ファイルのみ → .json に記述)
– クライアント(One of Python, C++, Ruby or
Java)
8
今回は…
9
ざっくりとしたJubatus概要
(5/5)
Jubatus Server
Jubatus Client
10
ここを分散化する話
ざっくりとした分散処理の概要
(1/4)
11
Jubatusの
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy
ざっくりとした分散処理の概要
(2/4)
12
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy
新しくZookeeper(1台以上)というマネー
ジャが追加される(全マシンの管理、設定
ファイルの適用などを受け持つ)
ざっくりとした分散処理の概要
(3/4)
13
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy
プロキシはデータを受け取ったら
ランダムにサーバを選択し、問い合わ
せる
ざっくりとした分散処理の概要
(4/4)
14
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy
学習…
学習…
学習はそれぞれが行い
結果は定期的に共有(MIX)
する
設定(.json)の適用
15
Zookeeper(Manager)
IP: 172.31.7.70
$ sudo /usr/share/zookeeper/bin/zkServer.sh start
$ jubaconfig -c write -f ja_test.json -t classifier -n nico -z 172.31.7.70:2181
1. Zookeeper起動(zkServer.sh)
• http://zookeeper.apache.org/
• http://jubat.us/ja/tutorial_distributed.html
2. 設定(.json)の適用
• -t オプションにサーバの種類(classifier)
• -n オプションに識別文字列(nico)
• -z オプションにManagerのIPアドレス
→ja_test.jsonについては「数式を使わないJubatus入門」を参
照
http://www.slideshare.net/KenjiAiko/jubatus-22389573
プロキシ&サーバ起動
16
$ jubaclassifier --zookeeper 172.31.7.70:2181 -n nico
Server
$ jubaclassifier_proxy --zookeeper 172.31.7.70:2181
$ jubactl -z 172.31.7.70:2181 -s classifier -t classifier -c status -n nico
active jubaproxy members:
172.31.7.68_9199
172.31.7.72_9199
active jubavisor members:
active nico members:
172.31.7.69_9199
172.31.7.71_9199
on Zookeeper(Manager) IP: 172.31.7.70
←プロキシとして二台起動していることを確認
←サーバとして二台起動していることを確認
(※)--interval_secオプションでMIXする間隔を秒単位で指
定可
Proxy
サーバログ
17
...
secs, 8 bytes (serialized data) has been put.
I0913 19:47:31.217651 2370 linear_mixer.cpp:213] .... 23th mix done.
I0913 19:48:03.240432 2370 linear_mixer.cpp:207] starting mix:
I0913 19:48:03.244204 2370 linear_mixer.cpp:264] mixed with 2 servers in 0.003718
secs, 8 bytes (serialized data) has been put.
I0913 19:48:03.244361 2370 linear_mixer.cpp:213] .... 24th mix done.
I0913 19:48:19.254685 2370 linear_mixer.cpp:207] starting mix:
I0913 19:48:19.258323 2370 linear_mixer.cpp:264] mixed with 2 servers in 0.003466
secs, 8 bytes (serialized data) has been put.
I0913 19:48:19.258445 2370 linear_mixer.cpp:213] .... 25th mix done.
I0913 19:48:35.267849 2370 linear_mixer.cpp:207] starting mix:
I0913 19:48:35.276492 2370 linear_mixer.cpp:264] mixed with 2 servers in 0.008466
secs, 8 bytes (serialized data) has been put.
I0913 19:48:35.276619 2370 linear_mixer.cpp:213] .... 26th mix done.
I0913 19:49:07.294831 2370 linear_mixer.cpp:207] starting mix:
I0913 19:49:07.302772 2370 linear_mixer.cpp:264] mixed with 2 servers in 0.007763
secs, 8 bytes (serialized data) has been put.
I0913 19:49:07.302896 2370 linear_mixer.cpp:213] .... 27th mix done.
こんな感じで表示されたらOK!
学習&評価の流れ(1/4)
18
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy
学習はランダムに選択された
サーバで行われる
OK
学習&評価の流れ(2/4)
19
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy評価もランダムに選択された
サーバで行われるため
実行毎に評価結果が異なる
OK
学習&評価の流れ(3/4)
20
Zookeeper(Manager)
Server
Proxy
Server
Client
Proxy一定間隔で行われるMIX後
学習結果が計算され
評価結果も同じになる
21
$ python ja_test.py samplelog/m2
('', 0)
$ python ja_test.py samplelog/m2
('Mayoi', 0.07325346022844315)
$ python ja_test.py samplelog/m2
('Mayoi', 0.07325346022844315)
$ python ja_test.py samplelog/m2
('', 0)
$ python ja_test.py samplelog/m2
('Mayoi', 0.03662673011422157)
$ python ja_test.py samplelog/m2
('Mayoi', 0.03662673011422157)
$ python ja_test.py samplelog/m2
('Mayoi', 0.03662673011422157)
$ python ja_test.py samplelog/m2
('Mayoi', 0.03662673011422157)
学習&評価の流れ(4/4)
ここでMIXが行われた
アクセスするサーバ(2台)
により
評価毎に結果が異なる
評価結果が同じになる
(平均がとられた?)
(※)--interval_secオプションでMIXする間隔を秒単位で指
定可
MIX前後の評価プログラム実行ログ
まとめ
22
• 基本的にZookeeperから全体を管理
• プログラムや設定ファイル(.json)に変更
なし
• MIXのタイミング、動作には注意
■用意するもの
データセット
.jsonファイル(tutorialからコピー可)
クライアントプログラム(tutorialからコ
ピー可)
Zookeeperマシン
プロキシ×N台、サーバ×N台
これだけで(機械学習の)分散処理ができ
る!
Jubatus: オンライン機械学習向け分散処理フレームワーク
http://jubat.us/ja/
http://jubat.us/ja/tutorial.html
http://jubat.us/ja/tutorial_distributed.html
国立情報学研究所(ニコニコデータセット)
http://www.nii.ac.jp/cscenter/idr/nico/nico.html
ありがとうございました!
23

More Related Content

Viewers also liked

Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Makoto Haruyama
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppetyuzorock
 
これからのマルウェアの話をしよう
これからのマルウェアの話をしようこれからのマルウェアの話をしよう
これからのマルウェアの話をしようKenji Aiko
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
 
グラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズムグラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズムmfumi
 
katagaitaictf7_hw_ysk
katagaitaictf7_hw_yskkatagaitaictf7_hw_ysk
katagaitaictf7_hw_ysk
ysk256
 
ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆
Naoya Nakazawa
 
TMUX Rocks!
TMUX Rocks!TMUX Rocks!
TMUX Rocks!
Kent Chen
 
目grep入門
目grep入門目grep入門
目grep入門
murachue
 
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
CODE BLUE
 
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryenバイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryen
Eyes, JAPAN
 
CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?
Kenji Aiko
 
新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた
Hiromu Yakura
 
CTF, What's in it for me?
CTF, What's in it for me?CTF, What's in it for me?
CTF, What's in it for me?
Hiromu Yakura
 
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
Hiromu Yakura
 
Why don't you learn programming?
Why don't you learn programming?Why don't you learn programming?
Why don't you learn programming?
Hiromu Yakura
 

Viewers also liked (16)

Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppet
 
これからのマルウェアの話をしよう
これからのマルウェアの話をしようこれからのマルウェアの話をしよう
これからのマルウェアの話をしよう
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
グラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズムグラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズム
 
katagaitaictf7_hw_ysk
katagaitaictf7_hw_yskkatagaitaictf7_hw_ysk
katagaitaictf7_hw_ysk
 
ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆
 
TMUX Rocks!
TMUX Rocks!TMUX Rocks!
TMUX Rocks!
 
目grep入門
目grep入門目grep入門
目grep入門
 
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
 
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryenバイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryen
 
CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?
 
新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた
 
CTF, What's in it for me?
CTF, What's in it for me?CTF, What's in it for me?
CTF, What's in it for me?
 
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
 
Why don't you learn programming?
Why don't you learn programming?Why don't you learn programming?
Why don't you learn programming?
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 

Recently uploaded (12)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 

数式を使わないJubatus入門 分散処理編