Submit Search
Upload
分散学習のあれこれ~データパラレルからモデルパラレルまで~
•
4 likes
•
4,514 views
H
Hideki Tsunashima
Follow
分散学習についてから始まり、データパラレルとモデルパラレルの説明、Chainerでの両者の実装についてのスライドとなっております。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 48
Download now
Download to read offline
Recommended
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
Takahiro Kubo
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
Takuya Akiba
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
Recommended
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
Takahiro Kubo
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
Takuya Akiba
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
Kosuke Shinoda
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
Preferred Networks
モデル高速化百選
モデル高速化百選
Yusuke Uchida
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
Kensho Hara
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
joisino
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
Deep Learning JP
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
Deep Learning JP
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
Yusuke Uchida
2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
More Related Content
What's hot
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
Kosuke Shinoda
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
Preferred Networks
モデル高速化百選
モデル高速化百選
Yusuke Uchida
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
Kensho Hara
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
joisino
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
Deep Learning JP
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
Deep Learning JP
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
Yusuke Uchida
What's hot
(20)
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Optimizer入門&最新動向
Optimizer入門&最新動向
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
研究効率化Tips Ver.2
研究効率化Tips Ver.2
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
モデル高速化百選
モデル高速化百選
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
Similar to 分散学習のあれこれ~データパラレルからモデルパラレルまで~
2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
y-uti
Mesosで学習タスクの実行
Mesosで学習タスクの実行
祐理 大野
IGGG勧誘スライド2016 web版
IGGG勧誘スライド2016 web版
IGGGorg
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料
直久 住川
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
griddb
DLLAB COMMUNITY UPDATE 201804
DLLAB COMMUNITY UPDATE 201804
Hirono Jumpei
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
Daiyu Hatakeyama
Raspberrypitraining20171027
Raspberrypitraining20171027
Kiyoshi Ogawa
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行
智啓 出川
ICDE 2014参加報告資料
ICDE 2014参加報告資料
Masumi Shirakawa
PFN x Microsoft Alliance
PFN x Microsoft Alliance
Hirono Jumpei
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 Intro
Takeshi Akutsu
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを
naoto teshima
The SGGX Microflake Distribution 実装
The SGGX Microflake Distribution 実装
Takashi Imagire
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
Hirono Jumpei
Similar to 分散学習のあれこれ~データパラレルからモデルパラレルまで~
(20)
2017年のFPGA Community活動について
2017年のFPGA Community活動について
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
Mesosで学習タスクの実行
Mesosで学習タスクの実行
IGGG勧誘スライド2016 web版
IGGG勧誘スライド2016 web版
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
DLLAB COMMUNITY UPDATE 201804
DLLAB COMMUNITY UPDATE 201804
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
Raspberrypitraining20171027
Raspberrypitraining20171027
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行
ICDE 2014参加報告資料
ICDE 2014参加報告資料
PFN x Microsoft Alliance
PFN x Microsoft Alliance
AlphaGo Zero 解説
AlphaGo Zero 解説
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 Intro
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを
The SGGX Microflake Distribution 実装
The SGGX Microflake Distribution 実装
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
分散学習のあれこれ~データパラレルからモデルパラレルまで~
1.
@maguroIsland 分散学習のあれこれ ~データパラレルから モデルパラレルまで~
2.
2 このスライドは2019年8/5、6に開催された 「第一回ディープラーニング分散学習ハッカソン」 にてご教授いただいた内容を元に作成しております この場を借りて主催である “東京工業大学学術国際情報センター様” “GPUコンピューティング研究会様” “エヌビディア合同会社様” 共催である “Chainer User Group様” “TensorFlow
User Group様” に感謝の意を表します http://gpu-computing.gsic.titech.ac.jp/node/100
3.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 3
4.
Contents ⚫ 分散学習とは? データパラレル
モデルパラレル 4
5.
分散学習とは? 5 Cat 10 Days...
6.
6 ぶいひゃく ばたけ NVIDIA
7.
分散学習とは? 7 ⚫ 複数のGPUを使ってニューラルネットワークを殴り倒して 計算時間を削減しようというもの Cat 1minut(WWO)
8.
分散学習とは? 8 推論 ⚫ データパラレル 同じモデルを載せた複数のGPUそれぞれに並列してデータを 流す分散処理方法
9.
分散学習とは? 9 ⚫ モデルパラレル 1つのGPUでは載りきらないようなデカいモデルをノード ごとや層ごとに分割することで計算可能にする分散学習方法 Cat
10.
⚫ データパラレル Pros ✓ 速度向上! ⚫
モデルパラレル Pros ✓ 1GPUでは載りきらず訓練出来なかったモデルの訓練が 可能になる! 分散学習とは? 10
11.
⚫ データパラレル Pros ✓ 速度向上! Cons ◼
mini-batchsize増加による精度の悪化 ⚫ モデルパラレル Pros ✓ 1GPUでは載りきらず訓練出来なかったモデルの訓練が 可能になる! Cons ◼ 場合によっては訓練速度が低下する[1] ◼ かなり実装がややこしく、超簡単なラッパーがほぼない 分散学習とは? 11
12.
分散学習とは? 12 ⚫ データパラレル ◼ mini-batchsize増加による精度の悪化 →学習率を上げるなどの工夫をすることで精度の悪化を防ぐ 様々な工夫が必要[2,
3] →PFNが32kバッチ※までは精度低下を防いでいる[4] →ImageNet学習速度世界一争いは実は計算資源投入だけで は成り立たない![5] ※1024GPUで1GPUあたり32ミニバッチ in ImageNet
13.
分散学習とは? 13 ⚫ モデルパラレル ◼ 場合によっては訓練速度が低下する →分割方法によってはGPU間通信※が多く発生し、それが ボトルネックとなる ◼
かなり実装がややこしい上、超簡単なラッパーがない →モデル分割方法は複数ある上、どこで分割するかの選択肢 はネットワーク構造よって多岐にわたり、設計が難しい →Chainerではlayer-wiseとchannel-wiseな分割が公式で サポートされているが、発展途上の分散学習方法[1, 6] ※GPU内通信は900Gbpsに対し、GPU間は100Gbpsほど
14.
分散学習とは? 14 より詳しくわかりやすい基礎講座資料はこちら! [7] 分散学習基礎講座,“https://www.cc.u-tokyo.ac.jp/events/lectures/111/20190124-1.pdf“
15.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 15
16.
Contents ⚫ Chainerにおける分散学習 データパラレル編
モデルパラレル編 Optuna編 16
17.
⚫ データパラレル編 用意するもの ✓ ChainerMN(Chainer5.0以降はChainerMNは同梱) ✓
NCCL(マルチGPUの集合通信ライブラリ) ✓ OpenMPI(並列コンピューティング用ライブラリ) ✓ Multiple GPU(2~)※ ちなみにGPU数増加に伴う通信 などでの計算速度低下はChainer が最も少ない(らしい)[8] ※ただし、GPU同士の接続が通信が遅いケーブルで繋がれて いると計算速度の向上度合は低い Chainerにおける分散学習 17
18.
18 GPU情報を格納する オブジェクトを作成 最初のGPU0番にのみデータセット を載せた後に各GPUに分配する 既存のオプティマイザをマルチノード 用のモジュールでラップする
19.
19 各GPUにモデルを載せる ログの保存などはGPU0番のみ 行うように変更
20.
⚫ データパラレル編 既存のコードにたった5ステップ手を加えるだけ! (慣れたら作業時間は2分くらい) (実行例) モデル:DCGAN データセット:CIFAR-10 epoch:200 batchsize:256 x
32GPU=8192 GPU:Tesla V100 ノード間接続:InfiniBand Chainerにおける分散学習 20
21.
⚫ データパラレル編 既存のコードにたった5ステップ手を加えるだけ! (慣れたら作業時間は2分くらい) (実行例) モデル:DCGAN データセット:CIFAR-10 epoch:200 batchsize:256 x
32GPU=8192 GPU:Tesla V100 ノード間接続:InfiniBand ※データパラレルをすると早くなるという例であってこのよう なラージバッチでは訓練はうまくいきません 様々な工夫やバッチサイズの調整が必要です Chainerにおける分散学習 21 訓練時間 1分30秒!!※
22.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 22
23.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割[7] ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 23 Cat
24.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割[1] ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 24 Cat
25.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割[6] ➢ 空間方向の分割 etc... Chainerにおける分散学習 25 Cat ch w h
26.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割[9] etc... Chainerにおける分散学習 26 Cat ch w h
27.
⚫ モデルパラレル編 今日コードで紹介するのはConvのチャネル方向の分割 Chainerでは最も簡単に実装が可能 Chainerにおける分散学習 27 Cat ch w h
28.
⚫ モデルパラレル編 今日コードで紹介するのはConvのチャネル方向の分割 Chainerでは最も簡単に実装が可能 Chainerにおける分散学習 28
29.
29 GPU情報を格納する オブジェクトを作成 0番以外のGPUのデータを空にする 既存のオプティマイザをマルチノード 用のモジュールでラップする (ただし、これはchannel-wiseのモデ ルパラレルではあってもなくても動く)
30.
30 ログの保存などはGPU0番のみ 行うように変更 繰り返し用データセットをマルチノード 用のモジュールでラップ
31.
31 普通のConvをラップする クラスを定義
32.
32 Convをマルチノード用Convに置き換えて communicator(GPU情報を格納する オブジェクト)を読み込ますだけ!
33.
⚫ モデルパラレル編 既存のコードに6ステップ手を加えるだけ! (多そうに見えるがコピペと置換なので作業時間は5分くらい) やった!これでモデルパラレル分散学習が出来る!! Chainerにおける分散学習 33
34.
⚫ モデルパラレル編 既存のコードに6ステップ手を加えるだけ! (多そうに見えるがコピペと置換なので作業時間は5分くらい) やった!これでモデルパラレル分散学習が出来る!! But... チャンネル方向のモデルパラレルは一度処理したもの全てを 集約する必要があるため、GPU間通信がボトルネックに。。。 4GPUを使って分割するとDCGAN(CIFAR-10)では2倍弱 VGG-16(CIFAR-10)では3倍弱1GPUに比べて時間がかかる Chainerにおける分散学習 34
35.
⚫ Optuna編 Optunaを分散学習に用いる際は、データパラレルの場合は シンプルに複数GPUで計算した値をバックワードするために 集約する際のロスを集計して最適化を行う が、しかし。。。 Chainerにおける分散学習 35
36.
⚫ Optuna編 実行する予定だったのですが、うまく動かせていないです 以下にOptunaを分散学習環境下で実行するためのページを 貼っておきますので、興味ある人はそこを見てください。。。 (Advent Calenderでコード解説を行おうと思っているので、 そこでやる予定です) [10]東工大
第1回 ディープラーニング分散学習ハッカソン Optuna資料リンク集” https:// gist.github.com/toshihikoyanase/e7a2b2635fddfda91064e2e21a106987” Chainerにおける分散学習 36
37.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 37
38.
Contents ⚫ おまけ マルチGPUでのBatch
Normalization モデルパラレルで速度は速くなるか!? 38
39.
⚫ マルチGPUにおけるBatch Normalization Batch
Normalizationはバッチ数ごとの平均や分散を計算し て正規化を行う処理である しかしデータパラレルではどうだろうか? →各GPUにデータがばらばらに割り振られているため、各 GPUが計算する平均や分散が変わってしまう おまけ 39
40.
⚫ マルチGPUにおけるBatch Normalization Batch
Normalizationはバッチ数ごとの平均や分散を計算し て正規化を行う処理である しかしデータパラレルではどうだろうか? →各GPUにデータがばらばらに割り振られているため、各 GPUが計算する平均や分散が変わってしまう 各GPUのデータを引っ張ってきて総ミニバッチを用いた Batch Normalizationを行う これは非常に簡単!(公式実装に感謝!) おまけ 40
41.
41 実装は複雑で長いので省略するが、この公式 実装のクラスを読み込むだけ!
42.
42 Batch Normをマルチノード用Batch Norm に置き換えてcommunicator(GPU情報を格 納するオブジェクト)を読み込ますだけ!
43.
⚫ マルチGPUにおけるBatch Normalization たった2ステップでデータパラレルのBatch
Normaliationが 実装できてしまった!(改めて公式実装に感謝!) 気になる計算時間はDCGAN(CIFAR-10)程度では10%程 計算時間が増大する程度であまり気になるほどではないが、 ImageNetや1024x1024画像になるとGPU間通信がボトル ネックとなりさらに遅くなる可能性はあり おまけ 43
44.
⚫ モデルパラレルで速度は速くなるか!? 先に結論を述べてしまうと”今は”No しかし、分割方法によっては計算速度の低下を緩和させるこ とは可能である 例えば、先ほどのchannel-wiseの分割は全ての値を一度全 GPUで共有する作業が必要だったので、GPU間通信がボトル ネックとなってしまっていた おまけ 44
45.
⚫ モデルパラレルで速度は速くなるか!? ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割[9] etc... おまけ 45 Cat ch w h
46.
⚫ モデルパラレルで速度は速くなるか!? 今は基本的に3x3Convが主流となっているので、3x3Conv を考えてみましょう おまけ 46 右図のように他のGPUに 載っている画素にまたがる ようにConvを掛けたい場合 は境界部±2個分の値だけを 通信すればよい →1024x1024の画像など では顕著に高速化が 見込める可能性がある!
47.
1.Parallel Convolution,” https://github.com/chainer/chainer/tree/master/example s/chainermn/parallel_convolution” 2.Don’t
Decay the Learning Rate, Increase the Batch Size,” https://openrevi ew.net/pdf?id=B1Yy1BxCZ” 3.Scaling SGD Batch Size to 32K for ImageNet Training,” https://www2.eecs.b erkeley.edu/Pubs/TechRpts/2017/EECS-2017-156.pdf” 4.Preferred Networks、深層学習の学習速度において世界最速を実現,” https://ww w.preferred-networks.jp/ja/news/pr20171110” 5.世界最高速を達成!ディープラーニングの高速化技術を開発,” https://pr.fujitsu.co m/jp/news/2019/04/1.html” 6.Model Parallel on ChainerMN,” https://docs.chainer.org/en/stable/chainermn/ model_parallel/model_parallel_on_chainermn.html” 7.分散学習基礎講座,https://www.cc.u-tokyo.ac.jp/events/lectures/111/20190124-1.p df 8.分散深層学習パッケージ ChainerMN 公開,” https://research.preferred.jp/2017/0 5/chainermn-beta-release/” 9.BEYOND DATA AND MODEL PARALLELISM FOR DEEP NEURAL NETWORK S, “https://www.sysml.cc/doc/2019/16.pdf” 10.東工大 第1回 ディープラーニング分散学習ハッカソン Optuna資料リンク集” https://gist.github.com/toshihikoyanase/e7a2b2635fddfda91064e2e21a106987” 参考文献 47
48.
48 Thank you for
attention
Download now