NIPS読み会

More Effective Distributed ML
via a Stale Synchronous
Parallel Parameter Server
Qirong	
  Ho	
  et.	
  al.	
  
CMU	
  &	
  Intel	
  Labs	
  
	
  
詠み⼈人
株式会社Preferred Infrastructure
⽐比⼾戸  将平
5⾏行行まとめ
l 

分散機械学習やりたいけどいろいろ難しいよね

l 

理理論論解析付き→⾮非現実的な仮定を必要としてる

l 

現実的なシステム→理理論論的保証が何もない

l 

SSP:理理論論と実⽤用性を兼ね備えるパラメータMIX⽅方式

l 

Petuum:NIPS後に公開されたOSS実装

2
謝辞:著者の公開資料料から図を抜粋させて頂きます
http://www.cs.cmu.edu/~qho/ssp_nips2013.pdf

3
分散機械学習の第⼀一段階:単⼀一マシンで分散
l 

対象:繰り返し処理理を含む、並列列実⾏行行可能な学習アルゴリズム
l 
l 

l 

現在のパラメータ集合を⼀一部訓練データで逐次的に更更新
回帰、SVM、トピックモデル、⾏行行列列分解、ディープラーニング

仮定:データが少ない→単⼀一マシン上でスレッドを複数⽴立立ち上げ
l 

グローバルな情報=パラメータ集合はメモリ上で共有される

l 

パラメータの読み書きが低レイテンシなので問題は置きない

4
分散機械学習の第⼆二段階:複数マシンで分散
l 

仮定:スケーラビリティ向上させたい→複数マシンにデータ分割
l 

l 

並列列化したアルゴリズムを複数マシンに分散させること⾃自体は簡単
l 

l 

メモリでなくネットワークを跨いだパラメータの送受信
MPIからMapReduceまで分散処理理系はいろいろある

じゃあ、どれかを選んで使えばいいだけなのでは?

5
スケーラブルな分散機械学習を阻む2つの壁
l  1. ネットワークアクセスは遅い
ネットワークアクセスは遅い
l 

l 

l 

メモリよりも圧倒的に遅い

l 

l 

2. マシン性能は固定ではない
マシン性能は固定ではない
l 

スループットが低い

⼊入⼒力力データ依存でばらつく

l 

レイテンシも⼤大きい

他ジョブの影響でばらつく

l 

HWやVM環境でばらつく

パラメータ集合の送受信が遅い
l 

メモリとの差が⼤大きすぎる

l 

l 

想定通りスケールアップしない
l 

頻繁な同期を前提とした

タイミングよく同期できない

l 

アルゴリズムで問題になる

台数に線形、はまず不不可能

l 

ネットワーク遅延が絡む

l 

最悪の場合1台より遅い

6
既存の汎⽤用的なスケーラブル機械学習
実装サイド

理理論論サイド
l 

フォーカス
l 

l 

l 

アルゴリズムの正しさと収束性

フォーカス
l 

例例

l 

⾼高スケーラビリティな実装

例例

l 

l 

Hadoop (Mahout)

l 

Naïve-parallel SGD

l 

Spark (MLbase)

l 

l 

Single-machine asynchronous
Partitioned SGD

l 

GraphLab, Pregel

システムの仮定が⾮非現実的?
l 

⼀一定性能のマシンを仮定

l 

または全く同期しない仮定

機械学習の話を軽視しすぎ?

頻繁な完全同期を仮定

l 

l 

l 

動く実装はあるが正しさや
収束性の証明無し

l 

新しい計算モデルで要再実装

この中間は取れないのか?
7
既存アプローチ(1)
BSP: Bulk Synchronous Parallel
l 
l 

特徴:全スレッドが毎回同期できるように待機
⻑⾧長所
l 

l 

実装は⽐比較的容易易で理理論論保証が付けやすい

短所
l 

各イテレーション時間がばらつくと無駄な待ち時間が発⽣生

l 

マシン数/スレッド数が増えれば増えるほど効率率率が落落ちていく

8
既存アプローチ(2)
Asynchronous
l 
l 

特徴:全スレッドが完全⾮非同期でパラメータ集合を読み書き
⻑⾧長所
l 

l 

実装はかなり容易易

短所
l 

追い越しされたイテレーションは精度度に悪影響を与えるか無効に

l 

追い越しの数が無制限に増えると理理論論的保証が困難

9
提案アプローチ
SSP: Stale Synchronous Parallel
l 
l 

特徴:イテレーション回数の差sに上限を設けてバランスさせる
⻑⾧長所
l 
l 

閾値sによって回数差に上限があるため理理論論的保証が可能

l 

l 

基本は⾮非同期に進むが上限を超える追い越しは発⽣生しない
イテレーション頻度度を上げるアクションにより効率率率アップ

短所
l 

実装がやや難しくなるくらい

10
Stale Synchronous Parallelの具体的な効果:
s=0でBSP、s=∞でAsynchronousに対応
l 

閾値sがスピードの向上と上書き問題の緩和のトレードオフ
l 

イテレーション回数差がsを超えない限りは各々のペースで進む

l 

上書きによる悪影響の程度度もsによってバウンドされる

11
SSPの理理論論的保証
l 
l 

SSPをシーケンシャルなイテレーション実⾏行行の近似と⾒見見なす
シーケンシャル実⾏行行からのズレをカウント
l 

最⼤大でも(2s-1)xスレッド数

l 

エラーバウンドが証明可能

12
SSPTableを⽤用いた実装:Parameter Server⽅方式
l 

Parameter ServerにSSPTableを保存
l 

l 

全ワーカーマシンからアクセス可能なパラメータ保存サーバー群

メモリアクセスをSSPTable(分散共有メモリ)アクセスで置換

13
性能評価(1): ネットワーク待ち時間と計算時間
閾値sを増やせばトータル待ち時間は低減していく

14
性能評価(2): BSPやAsynchronousとの⽐比較
l 

(閾値sを適切切に選べば)BSPやAsynchronousよりも良良い性能

15
性能評価(3): スピードと精度度のトレードオフ
l 
l 
l 
l 

左図:SSPはBSPよりイテレーションあたりの時間が⾮非常に短い
右図:イテレーション回数が同じならBSPの性能が良良い
両図:だいたいSSPの⽅方が時間あたり性能向上が良良い
両図:閾値sが⼤大きくなりすぎると時間あたり性能向上が悪化する

16
Petuum: OSS公開されている実装
l 
l 
l 

http://petuum.org/
https://github.com/sailinglab/petuum
Ubuntu 12.04のみサポート(12.10でも動作確認済み)

17
参考⽂文献
l 

"More Effective Distributed ML via a Stale Synchronous Parallel Parameter
Server", Qirong Ho, James Cipar, Henggang Cui, Jin Kyu Kim, Seunghak Lee,
Phillip. B. Gibbons, Garth A. Gibson, Greg R. Ganger, Eric P Xing. Neural
.
Information Processing Systems, 2013 (NIPS 2013)

l 

"Structure-Aware Dynamic Scheduler for Parallel Machine Learning", Seunghak
Lee, Jin Kyu Kim, Qirong Ho, Garth A. Gibson, Eric P Xing. arXiv:1312.5766
.
(2013)

l 

"Petuum: A Framework for Iterative-Convergent Distributed ML", Wei Dai,
Jinliang Wei, Xun Zheng, Jin Kyu Kim, Seunghak Lee, Junming Yin, Qirong Ho,
Eric P Xing. arXiv:1312.7651 (2013)
.

l 

"Consistency Models for Distributed ML with Theoretical Guarantees", Jinliang
Wei, Wei Dai, Abhimanu Kumar, Xun Zheng, Qirong Ho, Eric P Xing. arXiv:
.
1312.7869 (2013)

18

NIPS2013読み会: More Effective Distributed ML via a Stale Synchronous Parallel Parameter Server