SlideShare ist ein Scribd-Unternehmen logo
1 von 23
数式を使わない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

Weitere ähnliche Inhalte

Andere mochten auch

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_opsume3_
 
グラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズムグラフを奇麗に描画するアルゴリズム
グラフを奇麗に描画するアルゴリズムmfumi
 
katagaitaictf7_hw_ysk
katagaitaictf7_hw_yskkatagaitaictf7_hw_ysk
katagaitaictf7_hw_yskysk256
 
ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆ぼくがかんがえたさいきょうの☆きっくすたーと☆
ぼくがかんがえたさいきょうの☆きっくすたーと☆Naoya Nakazawa
 
目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 LongCODE BLUE
 
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryenバイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryenEyes, 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
 

Andere mochten auch (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?
 

Kürzlich hochgeladen

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Kürzlich hochgeladen (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

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