Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Distributed Deep Newral Networks
Search
Livesense Inc.
PRO
April 11, 2017
Programming
0
79
Distributed Deep Newral Networks
ニューラルネット x 分散コンピューティング ※社内LT資料
Livesense Inc.
PRO
April 11, 2017
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
PRO
0
1.5k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
5.2k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
130
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.6k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
510
26新卒_総合職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
47k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
280
Other Decks in Programming
See All in Programming
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
350
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.5k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
170
dotfiles 式年遷宮 令和最新版
masawada
1
780
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
360
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
410
認証・認可の基本を学ぼう前編
kouyuume
0
250
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
11
11k
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.3k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
0
280
Your Architecture as a Crime Scene?Forensic Analysis
manfredsteyer
PRO
0
100
React Native New Architecture 移行実践報告
taminif
1
160
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Facilitating Awesome Meetings
lara
57
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Automating Front-end Workflow
addyosmani
1371
200k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Building Adaptive Systems
keathley
44
2.9k
How GitHub (no longer) Works
holman
316
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Transcript
Distributed Deep Newral Networks 0x64 物語 reboot 第01 夜 "Network"
@yubessy
今日の話 ニュー ラルネットワー ク x 分散コンピュー ティング
Why Distributed? デー タ量の増加 テキスト < 画像 < 動画 計算量の増加
いわゆるディー プラー ニング 単一マシンの処理能力の頭打ち -> 時代は分散コンピュー ティング
分散コンピュー ティングの歩き方 分散対象: 何を分けるか そもそも分割できるのか 負荷を均等化できるか アー キテクチャ: どうつなぐか クライアント・
サー バ型 / メッシュ型 / ... 同期 / 非同期 スルー プット / レイテンシ プロトコル
深層ニュー ラルネット (DNN) 多数のレイヤを接続した有向グラフ Back Propagation (BP) 入力値に対する、 モデルの出力値と正解値の 差分を求める
差分が小さくなるよう、 出力側から順に 各レイヤのパラメー タを調整 Stochastic Gradient Descent (SGD) デー タ点を1つずつ与えながらモデルを学習
深層ニュー ラルネット (DNN) From http://joelouismarino.github.io/blog_posts/blog_googlenet_keras.html
DNN と分散処理 DNN は分散処理に向いている モデル並列化 = 計算グラフを複数の部分に分割 デー タ並列化 =
デー タを分割しノー ド毎にSGD "Large Scale Distributed Deep Networks" Dean, et al. 2012. By Google DNN のモデル / デー タ並列化両方について解説
モデル並列化 分散対象 = DNN のグラフ グラフ全体を部分グラフに分割 各部分グラフを別々 のノー ドに割り当て アー
キテクチャ = メッシュ型 元のグラフで結合されていた部分が ノー ドをまたいで通信 ボトルネック 適切に分割しないと ノー ド間のトラフィックがえらいことに
モデル並列化 Dean, et al. [1] Figure 1
デー タ並列化 分散対象 = 学習デー タ デー タをチャンクに分割 各チャンクを別々 のノー
ドに処理させる アー キテクチャ = Parameter Server (PS) 方式 PS ノー ドが各レイヤのパラメー タを保持 ワー カー ノー ドは一定量の学習を終えるごとに 非同期通信によりパラメー タを更新 ボトルネック ワー カが増えるとPS ノー ドの負荷が高くなる
デー タ並列化 Dean, et al. [1] Figure 2
Distributed TensorFlow ここまで説明した分散処理機能が 実はすでに TensorFlow に組み込まれている Distributed TensorFlow ノー ド間はgRPC
で通信
雰囲気だけ紹介
クラスタ定義 cluster = tf.train.ClusterSpec({ # ワー カー ( デー タ分散)
"worker": [ "worker0.example.com:2222", "worker1.example.com:2222", "worker2.example.com:2222" ], # パラメー タサー バ ( モデル分散) "ps": [ "ps0.example.com:2222", "ps1.example.com:2222" ]})
モデル並列化 レイヤを複数のPS に分散 # 同じPS に乗せたいパラメー タ群を tf.device でくくる with
tf.device("/job:ps/task:0"): weights_1 = tf.Variable(...) biases_1 = tf.Variable(...) # タスクの番号に応じてラウンドロビンでPS が決まる with tf.device("/job:ps/task:1"): weights_2 = tf.Variable(...) biases_2 = tf.Variable(...)
デー タ並列化 各ワー カー に同じグラフを複製 # replica_device_setter で # 複数のワー
カに同じグラフを複製 with tf.device(tf.train.replica_device_setter( worker_device="/job:worker/task:%d" % task_index, cluster=cluster)): input, labels = ... layer_1 = tf.nn.relu( tf.matmul(input, weights_1) + biases_1) logits = tf.nn.relu( tf.matmul(layer_1, weights_2) + biases_2) train_op = ...
まとめ NN は分散コンピュー ティングと相性がよい モデル並列化 / デー タ並列化 TensorFlow 最強
参考 [1] Large Scale Distributed Deep Networks [2] Distributed TensorFlow
[3] Distributed TensorFlow を試してみる [4] Distributed TensorFlow の話