Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
A Few Ways to Accelerate Deep Learning
Search
UENISHI Kota
April 04, 2019
Technology
0
1.2k
A Few Ways to Accelerate Deep Learning
UENISHI Kota
April 04, 2019
Tweet
Share
More Decks by UENISHI Kota
See All by UENISHI Kota
Storage Systems in Preferred Networks
kuenishi
0
63
Metadata Management in Distributed File Systems
kuenishi
2
540
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
430
Apache Ozone behind Simulation and AI Industries
kuenishi
0
420
Distributed Deep Learning with Chainer and Hadoop
kuenishi
3
1.3k
Introducing Retz
kuenishi
5
1.2k
Introducing Retz and how to develop practical frameworks
kuenishi
3
770
Formalization and Proof of Distributed Systems (ja)
kuenishi
10
6.5k
Mesos Frameworkの作り方 (How to Make Mesos Framework)
kuenishi
7
2.4k
Other Decks in Technology
See All in Technology
Vitest Highlights in Angular
rainerhahnekamp
0
100
開発メンバーが語るFindy Conferenceの裏側とこれから
sontixyou
2
130
ゼロから始めたFindy初のモバイルアプリ開発
grandbig
2
210
一番人に近いコードレビューア CodeRabbit
kinopeee
0
110
エンジニアとして長く走るために気づいた2つのこと_大賀愛一郎
nanaism
1
250
Hardware/Software Co-design: Motivations and reflections with respect to security
bcantrill
1
260
KubeCon + CloudNativeCon NA ‘25 Recap, Extensibility: Gateway API / NRI
ladicle
0
140
Werner Vogelsが14年間 問い続けてきたこと
yusukeshimizu
2
220
M5Stack Chain DualKey を UIFlow 2.0 + USB接続で試す / ビジュアルプログラミングIoTLT vol.22
you
PRO
2
120
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
210
Azure SRE Agent x PagerDutyによる近未来インシデント対応への期待 / The Future of Incident Response: Azure SRE Agent x PagerDuty
aeonpeople
0
180
AI時代のPMに求められるのは 「Ops」と「Enablement」
shimotaroo
1
330
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
430
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
116
100k
The Cult of Friendly URLs
andyhume
79
6.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Code Review Best Practice
trishagee
74
19k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
370
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
300
Believing is Seeing
oripsolob
1
40
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
50
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
140
Typedesign – Prime Four
hannesfritz
42
2.9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Transcript
Repro Tech Talk #7 2019/4/4 Preferred Networks, Inc. Kota Uenishi
A Few Ways to Accelerate Deep Learning
誰? Kota UENISHI @kuenishi • github.com • twitter.com • etc…
分散深層学習をやっています 25分しかないのでめっちゃ急ぎます
なぜ深層学習を速くするのか?
PFNは最新の研究や技術を最も早く実用化する お片付けロボット @画像認識、音声指示 お片付けロボットアーム @画像認識、音声指示 協調自動運転 @画像認識、強化学習 自動運転 @画像認識、強化学習
機械学習(深層学習)の開発サイクル タスク(ビジネス仮 説)を定義する よいモデルを 開発する モデルをアプリに埋 め込む アプリでビジネスを する 学習データを
集める 深層ネットワークを 定義する 学習実験をしてモ デルを作る テストデータで精度 を確認する モデルで推論する アプリをつくる アプリ開発 データを集める データを分析する 仮説 / 課題を明ら かにする 解決方法を考える システム開発、 運用の設計
試行錯誤のボトルネックは学習 w/NVIDIA P100 mlperf v0.5 results https://mlperf.org/results/ タスク 画像分類 物体検出1
物体検出2 翻訳 RNN翻訳 推薦 強化学習 データセット ImageNet COCO COCO WMT E-G WMT E-G MovieLens-2 0M Pro games モデル ResNet-50 SSD w/ResNet-34 Mask-R-CNN NMT Transformer NCF Mini Go 所要時間(分) 8831.3 827.7 4999.5 1134.5 1869.8 46.7 4388.7 (時間) 147.2 13.8 83.3 18.9 31.2 0.8 73.2
強いモデルを作るために • よいデータで学習すること • よいネットワークであること • よいレシピで学習すること • よいハイパーパラメータが与えられること •
何度も繰り返し試行錯誤すること
1GPUで速くする
深層学習 ≒ DNNをSGDでデータに対して最適化する この手順を好きなだけ繰り返す 1. データをシャッフルしてミニバッチに分割する 2. 分割したミニバッチごとに、モデルに対してまとめて a. 前向き計算をして推論結果を出す
b. 推論結果と正解データのズレ(距離)を計算 c. ズレをもとに後ろ向き計算(backpropをする) d. 後ろ向き計算で得られた勾配の平均を計算 e. 勾配をモデルのパラメータに反映
データをシャッフルしてミニバッチに分割する Shuffle Minibatch MNIST • トータルのデータ数は 6万 • 典型的にはバッチサイズ 10~100
CIFAR10 • トータルのデータ数は 6万 • 典型的にはバッチサイズは 64 ImageNet-1k • トータルのデータ数は 158万枚 • 典型的にはバッチサイズ 32
ミニバッチ毎に学習 Forward Backward Optimize 推論 [fish, dog, …] 正解 [cat,
dog, …] loss [1.0, 0.0, …] update param grad Forward バッチサイズを単純に大きくすると GPU内の並列 度は上がるが、学習効率は落ちる
1GPUで速くする Forward Backward Optimize OpenCV DALI ChainerX chainer-compiler CuPy Kernel
Fusion TensorCore (125TFLOPS) cProfile, nvprof 必見 Chainer/ChainerMNのCPUリソース不足 による速度低下と解決法 Chainer/ChainerMNのおすすめなプロ ファイルの取り方&プロファイルの見方 の注意点
並列処理で速くする
並列処理で速くする@2017 Akiba et al., 2017 https://arxiv.org/abs/1711.04325
並列処理で速くする@2019 Mikami et al., https://arxiv.org/abs/1811.05233
ChainerMNによる分散学習 All-Reduce Forward Forward Forward Backward Backward Backward Optimize Optimize
Optimize
並列化して速くなる、は自明か? • GPUあたりのバッチサイズはそんな に変わらない • GPU数を32倍にすると、全体のバッ チサイズも32倍 • (2017年までは)バッチサイズをあま り大きくすると汎化性能にペナルティ
があることが分かっていた • 頑張って512とか Keskar et al., “On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima”, arXiv:1609.04836 [cs.LG]
並列化するテクニックが上手くいく場合がある Linear Scaling Rule: • バッチサイズを k 倍にしたいときは は学習率も k
倍すればよい バッチサイズが大きくなるとSharp minimaに陥ってぬけにくくなるので、そ の分だけ学習率を大きくすればよい ※他にもさまざまなテクニックがある Goyal et al., “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”, arXiv:1706.02677 [cs.CV]
All-Reduceを速くする All-Reduce Forward Forward Forward Backward Backward Backward Optimize Optimize
Optimize + + →
All-Reduceを速くする • All-Reduceが速ければ速いほどス ケールアウトすることができる • NCCL: NVIDIAが提供している高速 な集団通信ライブラリ • RDMA:
リモートのGPUメモリに直接 データを読み書きする • Ring All-Reduce: 帯域をフル利用 できるアルゴリズム Akiba et al., 2017 https://arxiv.org/abs/1711.04325
ハードウェアで速くする
スパコンその1: MN-1 1024GPU • 計算ノード x128 – NVIDIA Tesla P100
x8 – InfiniBand FDR (56Gbps) x2 • 19.1PFLOPS @半精度 • TOP500 91位 (2017 Nov) – 国内13位 – 産業用1位 • ImageNet 学習の世界記録(当時) – Preferred Networks、深層学習の学習速度 において世界最速を実現 © NTT Communications
スパコンその2: MN-1b 512GPU • 計算ノード x64 – NVIDIA Tesla V100
(32GB) x8 – InfiniBand EDR (100Gbps) x2 • 57.3PFLOPS @混合精度 • Open Images Challenge 2位 – 世界454チームが参加した物体検出コンペティショ ン Google AI Open Images – Object Detection Trackで準優勝 • 導入当初からFull Kubernetesクラスタ • 最新のNVIDIA Tesla V100 32GB GPUを採用した プラ イベート・スーパーコンピュータ「 MN-1b」を7月に稼働 © NTT Communications
スパコンその3: MN-2 1024GPU • 計算ノード x128 – NVIDIA Tesla V100
x8 – 100GbE x4 – NVLink (300GB/s) • 128PFLOPS @混合精度 • Challenges – いろいろ自社運用 – CLOSネットワーク w/ L3 ルーティング – NCCL AllReduce on RoCE v2 – Fully containerized by Kubernetes – HDFSがプライマリのストレージ TBF
• MN-2と同じ場所に設置 • Powered by MN-Core – 深層学習に特化した自社設計チップ – ピーク性能
524TFLOPS @半精度 – 消費電力 500W スパコンその4: MN-3 x4
MN-3完成イメージ
We’re hiring! intern/fulltime
Questions?
まずは始めよう $ pip install chainer cupy-cuda100 mpi4py
See also: • 最先端のディープラーニング 研究開発を支えるGPU計算機基盤 「MN-1」のご紹介 • Massively Scale Your
Deep Learning Training with NCCL 2.4 • Preferred Networksの機械学習クラスタを支える技術 • CuPy -NumPy互換GPUライブラリによるPythonでの高速計算 • Optimizing Deep Learning with Chainer • ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリューション • ViEW 2018 基調講演 2018-12-7 実世界で働くロボットのためのビジョン・言語処理技術 • 東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを • •