Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

SSII2018TS: 大規模深層学習

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 112 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie SSII2018TS: 大規模深層学習 (20)

Anzeige

Weitere von SSII (20)

Aktuellste (20)

Anzeige

SSII2018TS: 大規模深層学習

  1. 1. ⼤規模深層学習 〜分散学習の基礎、動向、実例〜 株式会社デンソーアイティーラボラトリ 佐藤 育郎 第24回 画像センシングシンポジウム 2018年 6⽉ 14⽇ Copyright © 2018 DENSO IT LABORATORY, INC. All Rights Reserved.
  2. 2. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 2
  3. 3. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 3
  4. 4. 深層学習とは 機械学習アルゴルズムの1ファミリ サポートベクトルマシン(SVM) 決定⽊ ランダムフォレスト ⼀般化線形モデル ナイーブベイズ ブースティング ボルツマンマシン 制限付きボルツマンマシン(RBM) リカレントニューラルネットワーク(RNN) 畳み込みニューラルネットワーク(CNN) 多層パーセプトロン(MLP) ベイジアンネットワーク GAN深層強化学習 遺伝的アルゴリズム(GA) とりわけ層数の 多いものを指す ※ SSII2018 佐藤@デンソーITラボラトリ 4
  5. 5. 出 ⼒ の 真 値 , … 学習データセット ⼊ ⼒ 機械学習が扱う問題の⼀般系 学習ステージ 推論ステージ 出 ⼒ モデル 更新 ⼊ ⼒ 学習則 出 ⼒ モデル⼊ ⼒ 例) ⼊⼒ 出⼒ (ここでは教師あり学習をイメージ) SSII2018 佐藤@デンソーITラボラトリ 5
  6. 6. 深層学習の何がすごいのか ⼤量のデータを学習したとき ⾼い汎化能⼒を⽰す 深層学習勝利 ⾮深層学習勝利 ~1,000K ~10K ILSVRC PASCAL データセット 画像枚数 深層学習 対 ⾮深層学習 http://image-net.org/challenges/LSVRC/ M. Oquab+, CVPR2014. データセット規模 汎化能⼒ 深層学習 ⾮深層学習 SSII2018 佐藤@デンソーITラボラトリ 6
  7. 7. 深層学習の何がすごいのか ⼤量のデータを学習したとき ⾼い汎化能⼒を⽰す J. Hestness+, arXiv:1712.00409 ResNet に よ る ⼀ 般 物 体 認 識 の テ ス ト 誤 差 ( 対 数 表 ⽰ ) テスト誤差は データセットサイズの べき乗に⽐例すると推測 データセットサイズ(標本数/クラス) (対数表⽰) Top-1エラーを半分にするには 9.4倍のデータ必要 例) SSII2018 佐藤@デンソーITラボラトリ 7
  8. 8. 深層学習の何がすごいのか ⼤量のデータを学習したとき ⾼い汎化能⼒を⽰す J. Hestness+, arXiv:1712.00409 データセットサイズ (対数表⽰) 汎 化 誤 差 ( 対 数 表 ⽰ ) 乱択 ゾーン べき乗則 ゾーン 限界 ゾーン データを増やせば 汎化誤差は限界値に (限界に⾄った例はまだ 知られていない) SSII2018 佐藤@デンソーITラボラトリ 8
  9. 9. 深層学習の何がすごいのか ⽐較的⼤きなモデルで ⼤量のデータを学習したとき ⾼い汎化能⼒を⽰す J. Hestness+, arXiv:1712.00409 ResNet の ベ ス ト な パ ラ メ タ 数 ( 対 数 表 ⽰ ) データセットサイズ(標本数/クラス) (対数表⽰) モデルのパラメタ数は データセットサイズの べき乗に⽐例させるべき SSII2018 佐藤@デンソーITラボラトリ 9
  10. 10. 深層学習の⼀⾒奇妙な性質 古典的学習理論では、 パラメタ数 ≫ 標本数 ⇒ 過学習(汎化不良) だが、深層学習*においては必ずしも成⽴しない。 *正確には確率的勾降下法 ImageNetにおいて 有名なCNNモデルは どれも パラメタ数 ≫ 標本数 SSII2018 佐藤@デンソーITラボラトリ 10
  11. 11. 深層学習の産業応⽤における⼤切な⼼構え 1.アルゴリズムの研究/動向のキャッチアップ 2.データセットの継続的な拡⼤ 3.計算環境の拡充 深層学習を扱うということは、 (潜在的に)大規模計算を扱うということ ⼤規模データセット 計算量の多いモデル SSII2018 佐藤@デンソーITラボラトリ 11
  12. 12. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 12
  13. 13. ⼤規模データセットの構築 ⾃動運転の場合・・・ 学習データセット アノテー ション ⾛⾏データ の収集 SSII2018 佐藤@デンソーITラボラトリ 13
  14. 14. ⾛⾏データ の収集 ⼤規模データセットの構築 ⾃動運転の場合・・・ 学習データセット アノテー ション SSII2018 佐藤@デンソーITラボラトリ 14
  15. 15. ⼤規模データセットの構築 ⾃動運転の場合・・・ ⾛⾏データ の収集 学習データセット 補正 アンサ ンブル OK NG モデルA モデルB モデルC SSII2018 佐藤@デンソーITラボラトリ 15
  16. 16. データセットを拡⼤するとは データ収集と学習器の構築を同時進⾏させる 複数の学習器のアンサンブル結果を「準真値」 学習器には充分に「⼤きな」モデルを使⽤  準真値のクオリティチェック  修正  真値に格上げ データ収集が終了するときに⾮常に強いモデルが完成 (human-in-the-loop) ※ ハンドアノテーションが必要な場合 SSII2018 佐藤@デンソーITラボラトリ 16
  17. 17. Data distillation CVPR2018紹介論⽂ データセットの拡⼤において ハンドアノテーションを⼀切不要に SSII2018 佐藤@デンソーITラボラトリ 17
  18. 18. 基本的な戦略 教師モデル 画像+真値 画像のみ 画像+準真値 学習 学習 ⽣徒モデル SSII2018 佐藤@デンソーITラボラトリ 18
  19. 19. 基本的な戦略 教師モデル 画像+真値 画像のみ 画像+準真値 学習 ⽣徒モデル 学習 SSII2018 佐藤@デンソーITラボラトリ 19
  20. 20. 基本的な戦略 教師モデル ⽣徒モデル 画像+真値 画像のみ 画像+準真値 学習 学習 SSII2018 佐藤@デンソーITラボラトリ 20
  21. 21. 基本的な戦略 教師モデル ⽣徒モデル 画像+真値 画像のみ 画像+準真値 学習 学習 ? 教師の推論を 学習して生徒は 賢くなるの? SSII2018 佐藤@デンソーITラボラトリ 21
  22. 22. 基本的な戦略 教師モデル 画像+真値 画像のみ 画像+準真値 学習 ⽣徒モデル 学習 ⽣徒を教師より 強くする⼯夫 ? 教師の推論を 学習して生徒は 賢くなるの? SSII2018 佐藤@デンソーITラボラトリ 22
  23. 23. 同じでよい ⼯夫: データ拡張+アンサンブル データ拡張=データの変形により標本を増やすこと ランダムな位置でクロップ 縦横⽐をランダムに変化 例 1), 2) 3) 3)2)1) 論⽂のアイデア 拡張データの 認識結果の質を アンサンブル化に よって改善 元画像 に投影 平均 準真値 アンサンブル結果 の学習により ⽣徒が教師より強く 図の出典は佐藤 SSII2018 佐藤@デンソーITラボラトリ 23
  24. 24. データ拡張+アンサンブル 推論のアンサンブル化により⾼品質な準真値に 準真値の例 SSII2018 佐藤@デンソーITラボラトリ 24
  25. 25. 評価結果 11.5万枚 画像・真値 12万枚 画像・準真値 ⼈体のポーズ認識において、Average Precisionを2%程度改善 SSII2018 佐藤@デンソーITラボラトリ 25
  26. 26. このセクションのまとめ デプロイ⽤のモデルとデータ構築⽤のモデルは原則別もの 展望:準真値の信頼度の定量化 → ⼿作業の優先付け データセットの構築と学習器の⽣成を同時進⾏ 準真値を利⽤して⼈的コストをできるだけ省く Distillationなどが有効 SSII2018 佐藤@デンソーITラボラトリ 26
  27. 27. このセクションの参考⽂献 G. Hinton, O. Vinyals, J. Dean, “Distilling the Knowledge in a Neural Network”, arXiv:1503.02531. 準真値の学習により、教師モデルより賢い⽣徒モデルを⽣成 T. Furlanello, Z. C. Lipton, M. Tschannen, L. Itti, A. Anandkumar, “Born Again Neural Networks”, NIPS workshop 2017. 強くなった⽣徒モデルを教師モデルに格上げする、 「世代交代」によって汎化能⼒を上げる 準真値の活⽤により⼤規模な⾛⾏データセットを⽣成 (物体検出、インスタンス領域分割、⽩線の真値を含む) F. Yu, W. Xian, Y. Chen, F. Liu, M. Liao, V. Madhavan, T. Darrell, “BDD100K: A Diverse Driving Video Database with Scalable Annotation Tooling”, arXiv:1805.04687. SSII2018 佐藤@デンソーITラボラトリ 27
  28. 28. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 28
  29. 29. 分散処理の前に:確率的勾配降下法(SGD)の基礎 準備するもの 学習データセット サンプル毎のコスト関数 ネットワーク構造 SSII2018 佐藤@デンソーITラボラトリ 𝒟 𝑥 , 𝑡 ,⋯, ⼊⼒ 出⼒(真値) 出⼒(推定値) パラメタ/重み 1 2 𝑦 𝑥; 𝑤 𝑡 例 29
  30. 30. 分散処理の前に:確率的勾配降下法(SGD)の基礎 学習データセット ℳ 𝑥 , 𝑡 , , , 𝒟 𝑥 , 𝑡 ,⋯, ミニバッチの⽣成 この場合は(ミニ)バッチサイズ𝐵 4 ランダムに選択 𝑤 𝐽 𝑥 , 𝑡 𝑤 ← 𝑤 𝜆 1 𝐵 𝑑 𝑑𝑤 𝐽 𝑥 , 𝑡 , ∈ℳ 𝑑 𝑑𝑦 𝐽 𝑥 , 𝑡 𝒥 1 𝑁 𝐽 𝑥 , 𝑡 ,⋯, 反復回数 反復 ミニバッチコストの 勾配計算とパラメタ更新 SSII2018 佐藤@デンソーITラボラトリ 𝑑 𝑑𝑤 𝐽 𝑥 , 𝑡 (誤差) (経験) コスト関数 ミニバッチコストの勾配 30
  31. 31. 活 勾配計算とパラメタ更新 𝑥 𝑠 𝑎 𝑠 𝑎 𝑤 𝑦 𝐽 𝑑𝐽 𝑑𝑠 𝑑𝐽 𝑑𝑠 𝑑𝐽 𝑑𝑤 𝑑𝐽 𝑑𝑤 𝑑𝐽 𝑑𝑤 𝑑𝐽 𝑑𝑦 𝑤 𝑤 畳 畳 活 並べ 替え 積和 損失関数 積和畳畳 𝑡 誤差逆伝搬 勾配計算 順伝搬 𝑤 転置180° 積和畳 SSII2018 佐藤@デンソーITラボラトリ ∘ 𝑑𝑎 𝑑𝑠 ∘ 𝑑𝑎 𝑑𝑠 𝑤 ← 𝑤 𝜆 𝐵 𝑑𝐽 𝑑𝑤 ℳ 𝑤 ← 𝑤 𝜆 𝐵 𝑑𝐽 𝑑𝑤 ℳ 𝑤 ← 𝑤 𝜆 𝐵 𝑑𝐽 𝑑𝑤 ℳ 更新 31 誤差
  32. 32. 深層学習の分散処理の考え⽅ ⽬的 分散処理化のキモ 「分散深層学習」のカテゴリ 複数のGPU/計算ノードを利⽤した分散処理により 1つの学習器を⾼速に⽣成(学習)する 計算機間のデータの通信をどう扱うか 「何を」通信するのか 「誰と」通信するのか 「いつ」通信するのか ⼀般的に通信は遅い: 演算速度/ノード間通信速度 = 1K~3K (1浮動⼩数あたり) SSII2018 佐藤@デンソーITラボラトリ 32
  33. 33. 「何を」通信するのか 特徴 を通信 パラメタ を通信 GPU A GPU B GPU C 特徴(誤差)を通信 モデル並列 データ並列 a b c 𝜃 𝜃 𝜃 単⼀計算機の場合 処理が重い Δ𝜃 Δ𝜃 Δ𝜃 Δ𝜃 , , a b c 𝜃 𝜃 𝜃 Δ𝜃 Δ𝜃 Δ𝜃 Δ𝜃 , , 並列処理可能 パイプライン 化可能 ・ ・ 並列処理可能・ パラメタ (勾配) を通信 SSII2018 佐藤@デンソーITラボラトリ 33
  34. 34. モデル並列とデータ並列| 研究の流れ(⼀部) SSII2018 佐藤@デンソーITラボラトリ モ デ ル 並 列 2012 2017 GPU1 GPU2 デ ー タ 並 列 J. Dean+, Large Scale Distributed Deep Networks, NIPS2012 “DistBelief” A. Krizhevsky+, ImageNet Classification with Deep Convolutional Neural Networks, NIPS2012 M. Jaderberg+, Decoupled Neural Interfaces using Synthetic Gradients, ICML2017 A. Mirhoseini, Device Placement Optimization with Reinforcement Learning, ICML2017 2014以降、ILSVRCではデータ並列が標準的に Y. You (UC Berkeley)+, arxiv:1709.05011 T. Akiba (PFN)+, arxiv:1711.04325 Goyal (FAIR)+, arxiv:1706.02677 ResNet-50 ⾼速学習 マルチGPU 34
  35. 35. モデル並列 n分割したモデルパラメタをn台のGPUに配置 n台のGPUで1回分の順伝搬と逆伝搬を実⾏ ※ ここではGPUを主たる計算機と考える ⼿順 嬉しさ メモリ容量の⼩さなGPUでも⼤きなモデルを効率的に 扱える ⾼い「更新頻度」が期待できる SSII2018 佐藤@デンソーITラボラトリ 35
  36. 36. データ並列 ミニバッチをn個の“サブバッチ”に分割し n台のGPUで並列に処理 ⼿順 嬉しさ メモリ容量の⼩さなGPUでも⼤きなバッチを効率的に 扱える ⾼い「エポック/秒」が期待できる SSII2018 佐藤@デンソーITラボラトリ 36
  37. 37. データ並列の例 SSII2018 佐藤@デンソーITラボラトリ 計算ノード スイッチへ スイッチへ スイッチへ ノード数 で分割 した データ セット GPU インタ コネクト 37
  38. 38. データ並列の例 𝜕𝐽 𝑥 , 𝑡 𝜕𝑤 , ∈ m個の 標本を乱択 サブバッチ 𝐽 𝑥 , 𝑡 𝜕𝐽 𝜕𝑤 順伝搬と 誤差逆伝搬 サブバッチ内の 勾配の総和 サンプルワイズ コスト SSII2018 佐藤@デンソーITラボラトリ 38
  39. 39. データ並列の例 𝜕𝐽 𝑥 , 𝑡 𝜕𝑤 , ∈,⋯, (CPUなどで) 4GPUの勾配を総和 SSII2018 佐藤@デンソーITラボラトリ GPU間で勾配を通信 39
  40. 40. データ並列の例 ネットワークスイッチ 𝜕𝐽 𝑥 , 𝑡 𝜕𝑤 , ∈,⋯,,⋯, 計算機クラスタで 32ノード(128GPU)の 勾配を総和 SSII2018 佐藤@デンソーITラボラトリ ノード間で勾配を通信 32ノード 40
  41. 41. データ並列の例 ネットワークスイッチ 𝜕𝐽 𝑥 , 𝑡 𝜕𝑤 , ∈,⋯,,⋯, 計算機クラスタで 32ノード(128GPU)の 勾配を総和 SSII2018 佐藤@デンソーITラボラトリ ノード間で勾配を通信 32ノード 総和の計算って どこで行うの? ? 41
  42. 42. 「誰と」通信するのか 特定のサーバ ⾃分以外の全て パラメタ サーバ ワーカ ノード 1対1通信 集団通信 SSII2018 佐藤@デンソーITラボラトリ 42
  43. 43. 1対1通信と集団通信| 研究の流れ(⼀部) SSII2018 佐藤@デンソーITラボラトリ ⼀ 対 ⼀ 通 信 2012 2017 集 団 通 信 S. Gupta+, Model Accuracy and Runtime Tradeoff in Distributed Deep Learning, ICDM2016 J. Dean+, Large Scale Distributed Deep Networks, NIPS2012 R. Wu (Baidu)+, Deep Image: Scaling up Image Recognition, arxiv:1501.02876 F. N. Iandola+, FireCaffe: near-linear acceleration of deep neural network training on compute clusters, CVPR 2016 Y. Oyama+ (東⼯⼤・デンソーITラボ), Predicting Statistics of Asynchronous SGD Parameters for a Large-Scale Distributed Deep Learning System on GPU Supercomputer, IEEE BigData 2016 Y. You+, arxiv:1709.05011 T. Akiba+, arxiv:1711.04325 Goyal+, arxiv:1706.02677 ResNet-50 ⾼速学習 ⾮同期に拡張 既存のネットワークの 学習をほぼ線形で⾼速化 Allreduce を使った ⼤規模学習 2016 パラメタサーバの ⽊構造化による 通信ボトルネック 回避 DistBelief 43
  44. 44. パラメタサーバによる勾配の⾜し合わせ パラメタサーバの役割 各ノードから勾配を受け取り、パラメタを更新し、再配布 うれしさ ワーカノード間の通信不要 弱点 ワーカノードが増えるとパラメタサーバへの通信が逼迫 パラメタサーバ⾃体を分散化/⽊構造化する試みも 𝜕𝒥 𝜕𝑤 𝑤 ← 𝑤 𝜆 𝐵 ∑ 𝜕𝒥 𝜕𝑤 𝑤 S. Gupta+, IJCAI2017 SSII2018 佐藤@デンソーITラボラトリ 44
  45. 45. 集団通信(MPI-Allreduce)による勾配の⾜し合わせ うれしさ 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 例) 3回の送受信 log 8 バタフライ演算 MPI-Allreduce 各ノードの持つ変数を⾜し合わせて再配布する命令 8ノードのMPI Allreduce 「バタフライ演算」などにより⾼速な⾜し合わせが可能 データ並列における勾配の⾜し合わせが可能 通信時間∝log(ノード数) SSII2018 佐藤@デンソーITラボラトリ 45
  46. 46. 通信時間∝log(ノード数) 集団通信(MPI-Allreduce)による勾配の⾜し合わせ うれしさ 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 総和総和 例) 3回の送受信 log 8 バタフライ演算 MPI-Allreduce 各ノードの持つ変数を⾜し合わせて再配布する命令 8ノードのMPI Allreduce 「バタフライ演算」などにより⾼速な⾜し合わせが可能 データ並列における勾配の⾜し合わせが可能 スパコン “TSUBAME” や “ABCI” では MPI-Allreduceの利⽤がオススメ SSII2018 佐藤@デンソーITラボラトリ 46
  47. 47. ⼤規模な分散処理における通信の難しさ 𝜕 ℐ 𝑤 Σ𝜕 𝒥 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ ノードA ノードB ノードC ノードD 通信 𝜕 ℐ 𝑤 Σ𝜕 𝒥 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ ⼤規模分散 → 通信時間増⼤ あそび あそび 時間 愚直な実装では計算機が遊んでしまう SSII2018 佐藤@デンソーITラボラトリ 47
  48. 48. 「いつ」通信するのか 同期型 ⾮同期型 全ての勾配計算の終了を待ってパラメタを更新 勾配計算の終了を待たずにパラメタを更新 通常の単⼀計算機による計算結果と⼀致 通常の単⼀計算機による計算結果と⼀致しない (バッチサイズ等の条件が等しいとき) “Synchronous SGD” (SSGD) “Asynchronous SGD” (ASGD) SSII2018 佐藤@デンソーITラボラトリ ※ ここではmodel consistencyのあるものを同期型、ないものを⾮同期型と定義 48
  49. 49. 同期型と⾮同期型| 研究の流れ(⼀部) SSII2018 佐藤@デンソーITラボラトリ 同 期 型 2011 2017 ⾮ 同 期 型 J. Dean+, Large Scale Distributed Deep Networks, NIPS2012 F. N. Iandola+, FireCaffe: near-linear acceleration of deep neural network training on compute clusters, CVPR 2016 Y. Oyama+ (東⼯⼤・デンソーITラボ), Predicting Statistics of Asynchronous SGD Parameters for a Large- Scale Distributed Deep Learning System on GPU Supercomputer, IEEE BigData 2016 Y. You+, arxiv:1709.05011 T. Akiba+, arxiv:1711.04325 Goyal+, arxiv:1706.02677 ResNet-50 ⾼速学習 ⾮同期型 Allreduce 2016 B. Recht+, Hogwild: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent, NIPS2011 各ノードが ロックなしに パラメタを ⾃由に上書き →学習⾼速化 DistBelief ILSVRCでは同期型分散が標準的 2012 R. Wu (Baidu)+, Deep Image: Scaling up Image Recognition, arxiv:1501.02876 同期型 Allreduce I. Sato+ (デンソーITラボ・東⼯⼤), Asynchronous, Data-Parallel Deep Convolutional Neural Network Training with Linear Prediction Model for Parameter Transition, ICONIP2017 A. Krizhevsky+, ImageNet Classifi- cation with Deep Convolutional Neural Networks, NIPS2012 マルチGPU TensorFlow (2015) (Downpour SGD) 49
  50. 50. 同期型 利点 ⽋点 計算機に“あそび”が発⽣ ミニバッチに対する最急降下法であり、局所解へ収束 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐℐ 𝑤 𝜆 時間更新周期 更新周期が⽐較的⻑い あそび SSII2018 佐藤@デンソーITラボラトリ 50
  51. 51. 同期型の実際 計算と通信をできる限り重複 SSII2018 佐藤@デンソーITラボラトリ Layer 3 Layer 2 Layer 1 L3 L2 L1 L3L2L1 GPU: BP GPUCPU CPUGPU ノード間通信 L3L2L1 更新周期 Layer 3 Layer 2 Layer 1 L3 L2 L1 L3 L2 L1 GPU: BP GPUCPU CPUGPU ノード間通信 L3 L2 L1 更新周期 短い! 長い・・ ⼭崎、笠置、⽥原、中平 MPIを⽤いたDeep Learning処理⾼速化の提案 IPSJ SIG Technical Report 2016 を参考に佐藤が作図。 51
  52. 52. ⾮同期型 利点 ⽋点 最急降下法ではなく、収束の保証がない 計算機のあそびがない 更新周期を低くしやすい 同期に⽐べて汎化性能が低下しやすい 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐℐ ℐ 時間更新周期 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝑤 𝜆Σ𝜕 ℐ𝜆Σ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ あそびなし SSII2018 佐藤@デンソーITラボラトリ I. Sato+, ICONIP2017 の例 52
  53. 53. ⾮同期型 利点 ⽋点 最急降下法ではなく、収束の保証がない 計算機のあそびがない 更新周期を低くしやすい 同期に⽐べて汎化性能が低下しやすい 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐℐ ℐ 時間 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝑤 𝜆Σ𝜕 ℐ𝜆Σ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 勾配計算に使⽤する パラメタの遅れ 𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ SSII2018 佐藤@デンソーITラボラトリ I. Sato+, ICONIP2017 の例 “staleness” = 3 53
  54. 54. ⾮同期型| MPI-Allreduceを使った事例 thread_main thread_1 thread_2 ネットワーク スイッチへ CPU GPU 1 GPU 2 メモリ ネット ワーク カード PCIe 重み 勾配 SSII2018 佐藤@デンソーITラボラトリ I. Sato, R. Fujisaki, Y. Oyama, A. Nomura, S. Matsuoka, Asynchronous, Data-Parallel Deep Convolutional Neural Network Training with Linear Prediction Model for Parameter Transition, ICONIP2017 Y. Oyama, A. Nomura, I. Sato, H. Nishimura, Y. Tamatsu, S. Matsuoka, Predicting Statistics of Asynchronous SGD Parameters for a Large-Scale Distributed Deep Learning System on GPU Supercomputer, IEEE BigData 2016 54
  55. 55. ⾮同期型| MPI-Allreduceを使った事例 thread_main thread_2 ネットワーク スイッチへ CPU GPU 2 メモリ ネット ワーク カード PCIe thread_1 重み 勾配 GPU 1 画像 SSII2018 佐藤@デンソーITラボラトリ 55
  56. 56. ⾮同期型| MPI-Allreduceを使った事例 thread_main thread_2 ネットワーク スイッチへ CPU GPU 2 メモリ ネット ワーク カード PCIe thread_1 重み 勾配 GPU 1 SSII2018 佐藤@デンソーITラボラトリ 56
  57. 57. ⾮同期型| MPI-Allreduceを使った事例 thread_main thread_2 ネットワーク スイッチへ CPU GPU 2 メモリ ネット ワーク カード PCIe thread_1 重み 勾配 GPU 1 加算 SSII2018 佐藤@デンソーITラボラトリ 57
  58. 58. ⾮同期型| MPI-Allreduceを使った事例 thread_main ネットワーク スイッチへ CPUメモリ ネット ワーク カード PCIe thread_1 重み 勾配 GPU 1 GPU 2 thread_2 GPU 1 と GPU2 は同じ⼿順を ランダムサンプルされたデータに対して ⾮同期的に実⾏ 画像 SSII2018 佐藤@デンソーITラボラトリ 以降くり返し 58
  59. 59. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード SSII2018 佐藤@デンソーITラボラトリ 59
  60. 60. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード 通信⽤ SSII2018 佐藤@デンソーITラボラトリ 𝑀分割した重みの1区画としてもよい 60 𝑀: ノード数
  61. 61. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 勾配 ネット ワーク カード 0に初期化 重み 通信⽤ SSII2018 佐藤@デンソーITラボラトリ 61
  62. 62. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード Allreduce w/ Mノード 通信⽤ SSII2018 佐藤@デンソーITラボラトリ 62
  63. 63. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード 更新完了 SSII2018 佐藤@デンソーITラボラトリ 63
  64. 64. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード 通信⽤ SSII2018 佐藤@デンソーITラボラトリ 以降くり返し 64 他スレッドと同期を取らない
  65. 65. ⾮同期型| MPI-Allreduceを使った事例 ネットワーク スイッチへ CPUメモリ PCIe thread_1 GPU 1 GPU 2 thread_2 thread_main 重み 勾配 ネット ワーク カード SSII2018 佐藤@デンソーITラボラトリ 65 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐℐ ℐ 時間 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝜕 ℐ 𝑤 𝜆Σ𝑤 𝜆Σ𝜕 ℐ𝜆Σ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ
  66. 66. ⾮同期型| MPI-Allreduceを使った事例 計算機台数にほぼ線形 のデータ処理速度 同期型以上の 更新頻度 ※ 数値はデータセットや計算環境に依存 SSII2018 佐藤@デンソーITラボラトリ 66
  67. 67. ⾮同期型| ステイルネスによる汎化性能の劣化 staleness=3 staleness=9 staleness=27 同期型と⽐較して顕著な劣化なし 著しく劣化 ⾮同期 同期 SSII2018 佐藤@デンソーITラボラトリ I. Sato+, Asynchronous, Data-Parallel Deep Convolutional Neural Network Training with Linear Prediction …, ICONIP2017 67
  68. 68. ⾮同期型| パラメタサーバを使った事例 DistBelief SSII2018 佐藤@デンソーITラボラトリ J. Dean+, Large Scale Distributed Deep Networks, NIPS2012 ワーカ ノード パラメタ サーバ 𝜕𝒥 𝜕𝑤 ~ 𝜕𝒥 𝜕𝑤 ~ 1~10 11~20 計算中 計算中計算完了 ⾮ 同 期 ⾮ 同 期 原理的な説明 68
  69. 69. ⾮同期型| パラメタサーバを使った事例 DistBelief SSII2018 佐藤@デンソーITラボラトリ update 𝑤 ~ update 𝑤 ~ ワーカ ノード パラメタ サーバ 1~10 11~20 計算中 計算中計算完了 ⾮ 同 期 ⾮ 同 期 𝑤 ~ 𝑤 ~ J. Dean+, Large Scale Distributed Deep Networks, NIPS2012 原理的な説明 69
  70. 70. 同期型 vs ⾮同期型 更新あたりの コストの降下量 更新頻度 同期型 最急 降下法 (バッチ) ⾮同期型 SSII2018 佐藤@デンソーITラボラトリ 70
  71. 71. 同期型 vs ⾮同期型 更新あたりの コストの降下量 更新頻度 同期型 最急 降下法 (バッチ) ⾮同期型 SSII2018 佐藤@デンソーITラボラトリ 71
  72. 72. 同期型 vs ⾮同期型 更新あたりの コストの降下量 更新頻度 同期型 最急 降下法 (バッチ) アソビの短縮 ステイルネスの緩和 通信の隠蔽[1] 通信変数の圧縮[2] SSII2018 佐藤@デンソーITラボラトリ [1]⼭崎ら, MPIを⽤いたDeep Learning処理⾼速化の提案, IPSJ SIG Tech Report 2016 [2]⼤⼭ら, ディープラーニングのデータ並列学習における少精度浮動⼩数点数を⽤いた通信量の削減, IPSJ SIG Tech Report, 2017 Y. Lin+, Deep Gradient Compression: Reducing the communication bandwidth for distributed training, ICLR2018 [3] I. Sato+, Asynchronous, Data-Parallel Deep Convolutional Neural Network Training with Linear Prediction …, ICONIP2017 [4] S. Zheng+, Asynchronous Stochastic Gradient Descent with Delay Compensation, ICML2017 [5] A. Gaunt+, AMPNet: Asynchronous Model-Parallel Training for Dynamic Neural Networks. arxiv:1705.09786 パラメタの予測[3] 更新量の補正[4] パイプライン化[5]⾮同期型 72
  73. 73. 同期に向くモデル、⾮同期に向くモデル 同期向き Let α = 勾配の算出に必要な計算量 / パラメタ数 ⾮同期向き ⼤きい⼩さい αの値 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 更新 更新 更新 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 𝜕 ℐ 更新 更新 あそびが相対的に⼩さいステイルネスが⼩さい α(AlexNet)=12 α(VGG-19)=137 α(GoogLeNet)=230 α(ResNet-152)=188有名な モデルのα SSII2018 佐藤@デンソーITラボラトリ 73
  74. 74. このセクションのまとめ ミニバッチ確率的勾配法の基礎 モデル並列 「何を」「誰と」「いつ」通信するのか 特徴を 勾配を データ並列 「何を」 1対1通信計算ノード⇔パラメタサーバ 計算ノード⇔計算ノード 集団通信 「誰と」 (Allreduce) 同期型全ての勾配計算の完了後 いつでも ⾮同期型 「いつ」 SSII2018 佐藤@デンソーITラボラトリ 74
  75. 75. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 75
  76. 76. データ並列の(⼀定の)成功 T. Akiba+, arxiv:1711.04325 Y. You, arxiv:1709.05011 ResNet-50によるImageNet-1000の学習時間 17年11⽉ CVPR ʼ16 17年6⽉ 17年9⽉ 17年9⽉ 1024GPU分散、ミニバッチサイズ3万強で15分程度! ResNet-32 50層版では 1x1が随所に K. He+, CVPR2016. 17年9⽉ 同等 SSII2018 佐藤@デンソーITラボラトリ 76
  77. 77. 分散神話 計算ノード数を増やせば増やすだけ速くなる? AA BB データ 計算機台数↑ 学習速度↑ 燃料 エンジン↑ 移動速度↑ SSII2018 佐藤@デンソーITラボラトリ 77
  78. 78. Oops, not that easy… 計算機の増⼤ バッチサイズの増⼤ コストの降下速度が頭打ち 汎化能⼒が劣化 ⼤バッチほど収束に 多数のエポックが必要 O. Bhardwaj & G. Cong, ICLR2017. A. Krizhevsky, arxiv:1404.5997 P. Goyal+, arxiv:1706.02677 N. S. Keskar+, ICLR2017 CIFAR-10の学習曲線 降下速度が 頭打ち SSII2018 佐藤@デンソーITラボラトリ 78
  79. 79. Oops, not that easy… 計算機の増⼤ バッチサイズの増⼤ コストの降下速度が頭打ち 汎化能⼒が劣化 ⼤バッチほど収束に 多数のエポックが必要 O. Bhardwaj & G. Cong, ICLR2017. A. Krizhevsky, arxiv:1404.5997 P. Goyal+, arxiv:1706.02677 N. S. Keskar+, ICLR2017 CIFAR-10の学習曲線 ⼤バッチほど 性能不良 SSII2018 佐藤@デンソーITラボラトリ 79
  80. 80. Oops, not that easy… 計算機の増⼤ バッチサイズの増⼤ コストの降下速度が頭打ち 汎化能⼒が劣化 ⼤バッチほど収束に 多数のエポックが必要 O. Bhardwaj & G. Cong, ICLR2017. A. Krizhevsky, arxiv:1404.5997 P. Goyal+, arxiv:1706.02677 N. S. Keskar+, ICLR2017 CIFAR-10の学習曲線 ⼤バッチほど 性能不良 深層学習の「のろい」 SSII2018 佐藤@デンソーITラボラトリ 80
  81. 81. Sharp と Flat LB学習があまり汎化しない、直感的な理由 LB: Large Batch SB: Small Batch 勾配が広範囲に渡って緩い局所解ほど汎化良好。 LB学習では微分の「ノイズ」が相対的に⼩さく、 尖った解に落ちると抜け出せない。 SB学習の収束点は、どのバッチにとっても緩い勾配。 全コストの勾配も広範囲に渡って緩い。 N. S. Keskar+, ICLR2017 SB学習は それ⾃体が正則化 であると考えてよい SSII2018 佐藤@デンソーITラボラトリ 81
  82. 82. Sharp と Flat | トイ問題 Expected Loss 𝔼 Stochastic Loss バッチサイズ B 標本数 N=1024 尖った解から “抜け出しやすそう” 尖った解から “抜け出しにくそう” SSII2018 佐藤@デンソーITラボラトリ 82 動画
  83. 83. ところがいま、のろいが解かれつつある! LB学習における汎化の劣化がある程度抑制可能に 17年中ごろから18年初頭にかけて⼀気に 分散界隈においては⼤規模な同期学習が主流に ⾮同期ではある程度バッチサイズを⼩さく制御することが 可能であったが、その必要が薄まった SSII2018 佐藤@デンソーITラボラトリ 83
  84. 84. 紹介する論⽂ 出典 結論 ICLR2018 学習率 𝜖 をバッチサイズ 𝐵 に⽐例させる限り、 汎化能⼒は 𝐵 に依存しないことを理論的に証明 所感 汎化に必要なのは学習率の調整のみ。シンプル。 更新量の絶対値が⻘天井に。驚き。 Δ𝑤 𝜖 𝐵 𝑑𝐶 𝑑𝑤 更新量 𝐶 : サンプル 𝑖 のコスト 𝑤: パラメタ SSII2018 佐藤@デンソーITラボラトリ 84
  85. 85. 本論の前に| のどこが衝撃的なのか 𝑑𝐶 𝑑𝑤 𝒩 1 𝑁 𝑑𝐶 𝑑𝑤 , 𝐹 𝑤 妥当な発想 Δ𝑤 𝜖 𝐵 𝑑𝐶 𝑑𝑤 𝜖 ∝ 𝐵 𝜖 ∝ 𝐵 / 𝒩 𝜖 𝑁 𝑑𝐶 𝑑𝑤 , 𝜖 𝐵 𝐹 𝑤 とすれば更新量の平均がバッチサイズに不変に とすれば更新量の分散がバッチサイズに不変に 普通は中間あたりがベストだろうと考える 𝜖 ∝ 𝐵 まさかの外側! N: 学習サンプル数 SSII2018 佐藤@デンソーITラボラトリ 85
  86. 86. 基本的な考え⽅ ※ 論⽂の式をreparametrizeしています SGDのパラメタの変遷は確率微分⽅程式に従う 確率微分⽅程式が等価である限り汎化能⼒も等価 Crispin W Gardiner. Handbook of Stochastic Methods, volume 4. Springer Berlin, 1985 コストの微分 ノイズ項 𝑑𝑡 𝑑𝑤 𝑑𝑡 𝑑𝑡 1 𝑁 𝑑𝐶 𝑑𝑤 𝜂 𝑡 Bに⾮依存 ⼀般にBに依存 𝜂 𝑡 0 𝜂 𝑡 𝜂 𝑡 𝐺 𝑤 𝛿 𝑡 𝑡 仮定: パラメタとバッチ違えば無相関 (𝐵 ≪ 𝑁 を仮定) 問題: 𝐵に不変 にできる?  ノイズ項から𝐵の依存性を排除したい 仮定: 偏りなし SSII2018 佐藤@デンソーITラボラトリ 86
  87. 87. ⼿順 (1/3) 𝑑𝑡 𝑑𝑤 𝑑𝑡 𝑑𝑡 1 𝑁 𝑑𝐶 𝑑𝑤 𝜂 𝑡 Δ𝑤 𝜖 𝑁 𝑑𝐶 𝑑𝑤 𝑑𝑡 𝜂 𝑡 Δ𝑤 𝜖 𝑁 𝑑𝐶 𝑑𝑤 𝜖 1 𝐵 𝑑𝐶 𝑑𝑤 1 𝑁 𝑑𝐶 𝑑𝑤更新量の定義より ノイズ項の モーメント を等価に コストの微分 ノイズ項 仮定: 𝜖区間 で不変 確率微分⽅程式から更新量を⾒積もる ※ 論⽂の式をreparametrizeしています SSII2018 佐藤@デンソーITラボラトリ 87
  88. 88. ⼿順 (2/3) Δ𝑤 𝜖 𝑁 𝑑𝐶 𝑑𝑤 𝑑𝑡 𝜂 𝑡 Δ𝑤 𝜖 𝑁 𝑑𝐶 𝑑𝑤 𝜖 1 𝐵 𝑑𝐶 𝑑𝑤 1 𝑁 𝑑𝐶 𝑑𝑤 ※ 論⽂の式をreparametrizeしています 1次モーメント 2次モーメント 0 0 𝜖 1 𝐵 1 𝑁 𝐹 𝑤 𝑑𝑡 𝑑𝑡 𝜂 𝑡 𝜂 𝑡 𝜖𝐺 𝑤 確率変数 「本論の前に」 と同じ仮定 𝑑𝐶 𝑑𝑤 1 𝑁 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 0 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝑑𝐶 𝑑𝑤 𝐹 𝑤 SSII2018 佐藤@デンソーITラボラトリ 88
  89. 89. ⼿順 (3/3) ※ 論⽂の式をreparametrizeしています 𝜖 1 𝐵 1 𝑁 𝐹 𝑤 𝑑𝑡 𝑑𝑡 𝜂 𝑡 𝜂 𝑡 𝜖𝐺 𝑤  パラメタの変遷が バッチサイズに依存しない条件 𝐵 ≪ 𝑁 ! SSII2018 佐藤@デンソーITラボラトリ 89
  90. 90. ここまでのまとめ 学習率 𝜖 をバッチサイズ 𝐵 に⽐例させる限り、 汎化能⼒は 𝐵 に依存しない 仮定 𝜖 区間で勾配が変化しない 異なるパラメタ間で勾配が相関しない ※ どちらも⾮常に強い仮定であることに注意 𝜖 𝐵 1 𝑚 𝑐𝑜𝑛𝑠𝑡 SGD SGD+モメンタム(係数 𝑚) SSII2018 佐藤@デンソーITラボラトリ 90
  91. 91. ここまでのまとめ さらに同著者は 学習率の減衰の代わりにバッチサイズを上げる ことを提案。学習の後半が⾼速化。 𝜖 𝐵 1 𝑚 𝑐𝑜𝑛𝑠𝑡 SGD SGD+モメンタム(係数 𝑚) H. Robbins, S. Monro, Ann. Math. Statist. 22 (3): 400-407, 1951. S. Smith+, Don't Decay the Learning Rate, Increase the Batch Size, ICLR2018. 学習の進⾏とともに 𝜖 を減衰させる、 Robbins & Monroアルゴリズムの拡張。 SSII2018 佐藤@デンソーITラボラトリ 91
  92. 92. トイ問題による検証 SSII2018 佐藤@デンソーITラボラトリ 92 動画
  93. 93. トイ問題による検証 Sharp解 Flat解Flat解 Flat解 LBでsharp解に LBでもflat解に SSII2018 佐藤@デンソーITラボラトリ 93
  94. 94. サポートする実験結果 学習率をバッチサイズに⽐例させることでB=8Kまでスケール ResNet-50 on ImageNetにおける 学習率𝜖、バッチサイズ𝐵と汎化誤差 𝜖𝐵 LB SB Goyal, Dollar, Girshick, Noordhuis, Wesolowski, Kyrola, Tulloch, Jia, He+(FAIR), arxiv:1706.02677. 𝐵 8192までのろい発⽣なし GPU(P100) 256台で1時間 SGD+モメンタム 同期型Allreduce⼤ ⼩ 汎化不良 汎化良好 SSII2018 佐藤@デンソーITラボラトリ 94
  95. 95. サポートする実験結果 さらにB=32Kまでスケール T. Akiba, S. Suzuki, K. Fukuda (PFN), arxiv:1711.04325 ⼯夫 RMSpropにおける学習率のwarmup(次項)と減衰 バッチ正規化における移動平均の排除 通常、各層の平均と分散を時間⽅向の移動平均によって求める が、32Kほどのバッチサイズではむしろこれは悪い近似に 同期型Allreduce SSII2018 佐藤@デンソーITラボラトリ 95
  96. 96. 学習率の “warmup” そうは⾔ってもやはり 𝜖 ∝ 𝐵 ≫ 1 のとき、発散が⽣じやすい (特に学習初期) 鉄則: 学習初期では学習率を低く設定 学習初期に学習率を線形に増⼤ Goyal, Dollar, Girshick, Noordhuis, Wesolowski, Kyrola, Tulloch, Jia, He, arxiv:1706.02677. I. Sato, R. Fujisaki, Y. Ohyama, A. Nomura, S. Matsuoka, ICONIP2017. 学習初期に学習率を指数的に、次いで線形に増⼤ T. Akiba, S. Suzuki, K. Fukuda, arxiv:1711.04325 SSII2018 佐藤@デンソーITラボラトリ 96
  97. 97. 学習率の⾃動調整によりB=32Kにスケール 出典 技術 Y. You+ (UC Berkeley), “ImageNet Training in Minutes”, arxiv:1709.05011 LARS: Layer-wise Adaptive Rate Scaling 層ごとに パラメタのノルムと微分のノルムの⽐に 基づいて学習率を決定 ※ 実際の学習率がバッチサイズに線形か不明 Goyalらの結果 ともにモメンタムSGD のろわれ てる のろわれ てない 同期型Allreduce SSII2018 佐藤@デンソーITラボラトリ 97
  98. 98. のろいは本当に解けたのか? CIFAR-10, ResNet-32 ImageNet, ResNet-50[Fig. 10] [Fig. 12] 𝜂 は学習率×バッチサイズ やはりSB学習の汎化が良いという気になるレポート D. Masters & C. Luschi, arxiv:1804.07612 4~32程度 が良い 16~64程度 が良い 破綻 SSII2018 佐藤@デンソーITラボラトリ 98
  99. 99. このセクションのまとめ 深層学習の「のろい」 バッチサイズが増⼤すると汎化性能が劣化 のろいの解消に向けた研究が急速に進展 学習率が(バッチサイズとともに)汎化能⼒を左右 𝜖 ∝ 𝐵 則、LARS、warmup 同期分散が隆盛 その他 SGD+モメンタムは今なお現役 「検証コスト下げ⽌まり  学習率をx1/10」は今なお現役 勾配のクリッピングはおそらく有効 勾配ベクトルのノルムが閾値を超えたとき、 ノルムを閾値に正規化 SSII2018 佐藤@デンソーITラボラトリ 99
  100. 100. ⽬次 1.導⼊ データセットの構築⽅法 2.分散深層学習の基礎 3.深層学習の「のろい」とその解消 4.深層学習とスパコンの今 SSII2018 佐藤@デンソーITラボラトリ ⼤規模学習の必要性 100
  101. 101. スパコン界からの⼤きな波 東⼯⼤ TSUBAME3.0 2017.8 2018.8 www.sgi.co.jp/news/detail/jp20170217_TITECH.html 12.15 Petaflops(倍精度) 「⼈⼯知能分野における需要急増へ対応」 AIに特化したスパコンとして 世界最⾼⽔準の演算性能 『みんなのスパコン』 http://www.gsic.titech.ac.jp/tsubame3 ⾃動運転 ⽣産設備 医療 主な⽀援対象 企業利⽤可能! 成果公開/⾮公開 産総研 ABCI AI Bridging Cloud Infrastructure 出典:産総研AIRC 37 Petaflops (倍精度) 産学連携の拠点 @東⼤柏キャンパス SSII2018 佐藤@デンソーITラボラトリ 101
  102. 102. http://www.gsic.titech.ac.jp/tsubame3 TSUBAME3.0のココがDEEP! TSUBAME2.5 (2013年9⽉〜) http://www.gsic.titech.ac.jp/sites/default/files/spec25j1.pdf 演算性能の増強 ローカルストレージの増強 ノード内/間通信の⾼速化 1 2 3 TSUBAME3.0 (2017年8⽉〜) データセットの分割配置が可能に 微分の⾜し合わせ等が⾼速に 畳み込み演算等が⾼速に SSII2018 佐藤@デンソーITラボラトリ 540ノード 1408ノード 102
  103. 103. http://www.gsic.titech.ac.jp/tsubame3 TSUBAME3.0のココがDEEP! TSUBAME2.5 (2013年9⽉〜) http://www.gsic.titech.ac.jp/sites/default/files/spec25j1.pdf 演算性能の増強 ローカルストレージの増強 ノード内/間通信の⾼速化 1 2 3 容量 16.7x 読込 4.9x ノード間通信 バンド幅 5.0x GPU間通信 バンド幅 5x (対PCIe) TSUBAME3.0 (2017年8⽉〜) FP32 3.6x FP16 7.2x ※ 数字はTSUBAME2.5に対する⽐率 データセットの分割配置が可能に 微分の⾜し合わせ等が⾼速に 畳み込み演算等が⾼速に SSII2018 佐藤@デンソーITラボラトリ NVIDIA P100 NVIDIA K20X 103
  104. 104. http://www.gsic.titech.ac.jp/tsubame3 TSUBAME3.0のココがDEEP! TSUBAME2.5 (2013年9⽉〜) http://www.gsic.titech.ac.jp/sites/default/files/spec25j1.pdf 演算性能の増強 ローカルストレージの増強 ノード内/間通信の⾼速化 1 2 3 容量 16.7x 読込 4.9x ノード間通信 バンド幅 5.0x GPU間通信 バンド幅 5x (対PCIe) TSUBAME3.0 (2017年8⽉〜) FP32 3.6x FP16 7.2x ※ 数字はTSUBAME2.5に対する⽐率 データセットの分割配置が可能に 微分の⾜し合わせ等が⾼速に 畳み込み演算等が⾼速に SSII2018 佐藤@デンソーITラボラトリ 104
  105. 105. http://www.gsic.titech.ac.jp/tsubame3 TSUBAME3.0のココがDEEP! TSUBAME2.5 (2013年9⽉〜) http://www.gsic.titech.ac.jp/sites/default/files/spec25j1.pdf 演算性能の増強 ローカルストレージの増強 ノード内/間通信の⾼速化 1 2 3 容量 16.7x 読込 4.9x ノード間通信 バンド幅 5.0x GPU間通信 バンド幅 5x (対PCIe) TSUBAME3.0 (2017年8⽉〜) FP32 3.6x FP16 7.2x ※ 数字はTSUBAME2.5に対する⽐率 データセットの分割配置が可能に 微分の⾜し合わせ等が⾼速に 畳み込み演算等が⾼速に SSII2018 佐藤@デンソーITラボラトリ 105
  106. 106. http://www.gsic.titech.ac.jp/tsubame3 TSUBAME3.0のココがDEEP! TSUBAME2.5 (2013年9⽉〜) http://www.gsic.titech.ac.jp/sites/default/files/spec25j1.pdf 演算性能の増強 ローカルストレージの増強 ノード内/間通信の⾼速化 1 2 3 容量 16.7x 読込 4.9x ノード間通信 バンド幅 5.0x GPU間通信 バンド幅 5x (対PCIe) TSUBAME3.0 (2017年8⽉〜) FP32 3.6x FP16 7.2x ※ 数字はTSUBAME2.5に対する⽐率 データセットの分割配置が可能に 微分の⾜し合わせ等が⾼速に 畳み込み演算等が⾼速に SSII2018 佐藤@デンソーITラボラトリ ⼤規模ノード分散 深層学習に向く 106
  107. 107. ABCI SSII2018 佐藤@デンソーITラボラトリ 名称 何か 狙い 情報 ソース 2018年8⽉ ⼀般利⽤開始 AI Bridging Cloud Infrastructure 企業・⼤学・研究機関に開かれた 世界初のAIに特化した⼤規模・省電⼒な計算インフラ 各産業におけるAI利⽤の促進と⽀援 安価な計算資源の提供 学習データセット、学習済みモデルの公開 AIに関する技術⽀援 オンプレミス版のABCIの導⼊の促進 産総研 AIRC ⼈⼯知能クラウド研究チーム⻑ ⼩川宏⾼様 https://www.itri.aist.go.jp/events/sc2017/SC17_AIST_ABCI.pdf http://abci.ai 「SSII参加者は ABCIの 潜在的ユーザ層」 (AI橋渡しクラウド) 107
  108. 108. 計算ノードの構成 SSII2018 佐藤@デンソーITラボラトリ TSUBAME3との⽐較 ・演算性能 約1.5倍 ・ノード内のGPU間通信がリッチ ・ノード間通信バンド幅 約0.5倍 (ノードあたり) 全体では1088ノード 108
  109. 109. 計算ノードの構成 SSII2018 佐藤@デンソーITラボラトリ ・演算性能 約1.5倍 ・ノード内のGPU間通信がリッチ ・ノード間通信バンド幅 約0.5倍 ノード内マルチGPU分散 深層学習に特に向く (佐藤の⾒⽴て) 全体では1088ノード TSUBAME3との⽐較 (ノードあたり) 109
  110. 110. ABCIの利⽤パターン SSII2018 佐藤@デンソーITラボラトリ 産総研との共同研究 コンソーシアム チャレンジ 深層学習ワーキンググループによる⽀援 AI技術者と企業のマッチング 利⽤説明会、ワークショップ、勉強会などの開催 学習データセットと学習済みモデルの管理 コンペ 公募(グランドチャレンジ) データ、タスクを公開してモデル性能のランクを競う 上位⼊賞者には協賛企業からの賞⾦など (Kaggleの国内版:データ、タスクの集積を図る) 莫⼤な演算を必要とする⼈⼯知能の重要課題を公募、選定 全ノードを⼀定期間占有して課題を実施 http://abci.ai 110
  111. 111. SSII2018 佐藤@デンソーITラボラトリ Copyright © 2018 DENSO IT LABORATORY, INC. All Rights Reserved. 111
  112. 112. SSII2018 佐藤@デンソーITラボラトリ 質問ブース開催します 東京⼯業⼤学 野村 哲弘 先⽣ システム、プラットフォーム、 各種分散計算の実装、 さらには利⽤⽅法から費⽤まで、 TSUBAMEに関する 質問にもなんでもお答えします デンソーアイティーラボラトリ 佐藤 育郎 本チュートリアルに関する 疑問にお答えします。 6⽉14⽇(⽊) 14:15-16:00 112

×