Chainer on Azure
2 年間の取り組み
廣野 淳平
マイクロソフト
2019/3/30
この流れ… どこかで見たぞ
お呼びいただき、ありがとうございます
自己紹介
• 廣野 淳平
• 深層学習領域のビズデブ
• Deep Learning Lab 事務局長
• Chainer は v1.2 ぐらいから
• 主な活動
• 機械学習プロジェクト推進
• AI Startup との協業
• AI 関連の講演
• Azure 啓蒙活動、ハンズオン
• 社内のいろいろ(重要)
岩登りで培ったメンタル力で
つらい深層学習プロジェクトを
乗り切っています。
遡ること 2 年前の 5 月 23 日
PFN x Microsoft(HQ) の
グローバル協業発表
Chainer と Azure の親和性を
増していくぞ!
これを組成したのが廣野です
この後、AWSさん、GCPさんの
Chainer対応が続き、日本人として
誇らしいです(2017/5/23 de:code 2017 基調講演の様子)
今日のお品書き
• 学習領域での取り組み
• 推論領域での取り組み
• ML Ops / Tool 系の取り組み
• 最近の活動の宣伝
Azure インスタンスラインナップ
NC
NVIDIA GPU K80
HPC, DL
InfiniBand搭載
(NC24r)
最速CPU
InfiniBand搭載
(H16r)
H ND
NVIDIA P40 搭載
Deep Learning
InfiniBand 搭載
(ND24rs)
NVIDIA P100
HPC, DL
InfiniBand 搭載
(NC24rs_v2)
NCv2
NVIDIA GPU
M60搭載
可視化
NV
6
A Av2 B D Dv2Dv3 DS DSv2
G GSF Ev3FS Fv2 M
Ls汎用
コンピューティング最適化
メモリの最適化
ストレージの最適化
NVIDIA V100
HPC, DL
InfiniBand 搭載
(NC24rs_v3)
NCv3
ハイパフォーマンス
コンピューティング GPUコンピューティング
NVv2(Public Preview), NDv2(Public Preview予定 2018年末)
HB, HC
(リリース予定 2018年末)
日本DC 2019 H1
GPUインスタンス
NCシリーズ NVシリーズ NCv2シリーズ NDシリーズ NCv3シリーズ
用途 HPC & DL 可視化 HPC & DL DL HPC & DL
GPU Tesla K80
(1~4GPU)
Tesla M60
(1~4GPU)
Tesla P100
(1~4GPU)
Tesla P40
(1~4GPU)
Tesla V100
(1~4GPU)
GPU Xeon E5-2690
v3
(1~24コア)
Xeon E5-2690
v3
(1~24コア)
Xeon E5-2690
v4
(1~24コア)
Xeon E5-2690
v4
(1~24コア)
Xeon E5-2690
v4
(1~24コア)
メモリ 56~224GB 56~224GB 112GB~448GB 112GB~448GB 112GB~448GB
ローカル
SSD
~1.4TB ~1.4TB ~1.344TB ~1.344TB ~1.344TB
InfiniBand FDR InfiniBand N/A FDR InfiniBand FDR InfiniBand FDR InfiniBand
データサイエンス仮想マシン(DSVM)
データ サイエンス専用カスタマイズされた VM イメージ
https://docs.microsoft.com/ja-jp/azure/machine-learning/data-science-
virtual-machine/overview
開発環境としてのWSL
Windows Subsystem for Linux
素晴らしいんだけど…
OpenCL / CUDA 未サポート
ぐぬぬぬ…
そこで Ubuntu on Surface Book 2
とはいえ、1060 は非力すぎ
たぶん GTX 2060 積んだ Surface Book 3 も
出ると思います(未来を確約するものではあ
りません)
そこでInfiniBand 付 GPU クラスタですよ
(ちょっと飛躍しすぎ)
P100 実験結果 (NC24rs_v2 (P100) x 32 nodes = 128 GPUs)
V100 実験結果 (NC24rs_v3 (V100 x 4) x 32 nodes = 128 GPUs)
K80 vs P100
0
2000
4000
6000
8000
10000
12000
0 20 40 60 80 100 120 140
Speedup(times,linear)
# of GPUs
K80 vs P100 – Scale out Comparison
NC24r (K80) NC24rs_v2 (P100)
ChainerMN on Azure まとめ
• ChainerMNを使った大規模分散深層学習はAzureで動作可能
• ただし、現状のAzureではセットアップが煩雑で実戦投入するのは
難しい
• セットアップ済みのVMを簡単にデプロイできるようARM Template
等を準備中
• いろいろな活用可能性
• 頻繁に新しい膨大な追加データが届き、それを次のデータ追加ま
でに学習し終えなければならない場合
• モデルアーキテクチャへ変更を加えた後、それを素早く
ImageNet-1Kでpre-trainingしたい場合
• 大規模なデータセットを使った研究開発サイクルの効率化
• ご利用は計画的に
Azure Platform Services
Containers + Serverless
Open and Interoperable AI
Before ONNX
CNTK TensorFlow Chainer PyTorch
CPU Clusters GPU Clusters FPGA Clusters
IoT iOS/AndroidAzureWindows
Research
After ONNX
CNTK TensorFlow Chainer PyTorch
ONNX
CPU Clusters GPU Clusters FPGA Clusters
IoT iOS/AndroidAzureWindows
import numpy as np
import chainer
from chainer import serializers
import onnx_chainer
serializers.load_npz("my.model", model)
sample_input = np.zeros((1, 3, 224, 224), dtype=np.float32)
chainer.config.train = False
onnx_chainer.export(model, sample_input, filename="my.onnx")
Chainer Model の Export 例
ONNX Runtime & Menoh
• High performance runtime for ONNX models
• Supports full ONNX-ML spec (v1.2 and higher,
currently up to 1.4)
• Works on Mac, Windows, Linux (ARM too)
• Extensible architecture to plug-in optimizers
and hardware accelerators
• CPU and GPU support
• Python, C#, and C APIs
0 1 2 3
BERT-based
Transformer w/
attention
Bing QnA
Original framework
ONNX Runtime
0 1 2 3
zfnet512
tiny_yolov2
squeezenet
shufflenet
resnet 50
inception_v2
inception_v1
emotion_ferplus
densenet121
bvlc_googlenet
ONNX Model Zoo
CUDA TensorRT
FPGA の話
7km x 7km のNAIPの120TBのデータセット
224 pixel x 224 pixel の PNG 画像に分割、2億枚 18TBのデータセット
National Land Cover Mapのデータセットで4万枚学習、1万枚 Validation 6クラス Resnet50で学習、
トレーニングデータセットでの制度で93%、Validationデータセットで81%
2億枚推論を 10分38秒、Total Wall Time(環境構築含めた時間)は43分
秒感30万枚推論
モデル開発は繰り返す
1. 課題の特定
2. データの取得と加工
3. モデルの設計
4. モデルの作成5. モデルの
テストと評価 a. 初期化
b. データセットからミニバッチ
データ取得
c. 損失(差分)を計算d. 最適化: 損失(差分)の最小
化
e. 重みづけの更新
y =Wx + b
loss = |desired – actual
outcome|
δ
6. 展開と推論
a. ログ収取
アナリティクスを強力に推進する
プラットフォーム
Prepare
Data
Register and
Manage Model
Train & Test
Model
Build
Image
…
Build model
(your favorite
IDE)
Deploy
Service
データ準
備
モデリング モデル実装・モデル実行
Model
Monitor
Azure Cloud Services
Compute (Container) / Storage
Python SDK
✓データの加工
✓モデルの構築
✓モデルの管理
✓モデルの展開
Azure Machine Learning services の実体
もちろん Chainer 対応
https://github.com/Azure/MachineLearningNotebooks/
Python での モデル開発
✓ ブラウザー
✓ 無料
✓ Microsoft Account のみ
✓ Azure 連携
✓ Azure コアモジュール
インストール済み
✓ Github 連携
✓ CPU のみ
主に…お勉強 | 一人で
✓ Azure 上の仮想マシン
✓ GPU 対応
✓ Azure 連携
✓ 各種 深層学習のフレーム
ワークがインストール+構成
済み
深層学習 | 1人で 繰り返し | チームで
AIデータ活用コンソーシアム
「日本国内」に特化した、AIデータの流通・活用促進
に向けて2019年3月6日発足。
当団体が取り組む3つのテーマ
AIにおけるデータ活用における課題の検討および解決のため作業部会
(WG)を設置、AIの研究開発、ソリューション実現に寄与する。
知的財産
学習で使用するデータ、AIにより生
成されるデータの権利関係の検討。
学習結果であるモデルの知財をどの
ように考えるのか。また、生成系ア
ルゴリズムによる学習データと生成
されたデータにおける権利関係の検
討を行う。
データ共有基盤
多種・多様なデータを共有する上で
求められるサービス基盤の検討。
完全にオープンなデータから、機密
性の高いデータ、NDAなどの契約が
必要となるデータ、一部有償のデー
タをホストする上で求められる基盤
の検討。また、データ活用における
利便性についても検討。
法令
海外で進むゲノム、個人情報を含む
データ活用における法令、ガイドラ
インの調査、および検討。
国際的に競争力のあるAI研究、およ
びデータ活用における課題の検討、
提言、法令解釈について作業を行い、
AIにおける国際競争力強化に貢献す
る。
契約の標準化、関係省庁との調整
想定される知財、個人情報、プライバシーなどを考慮
した手続きの確立。円滑なデータ、AIモデル取引基盤
の実現
AIモデル、データ共有・取引基盤の構築
多様なトランザクション要件を満たした、多様なデータ
のストア・共有、AIモデル実行基盤の構築
データ収集・活用
基盤となるデータ収集、およびデータホル
ダーリレーションの構築。AI研究、イノ
ベーションによるビジネス活用の推進。
機械学習・深層学習の実用化を推進
会員数 5,200 名
全国 7 都市で
54 回イベント開催
福岡
大阪
広島
名古屋
東京
札幌
オンライン・オフライン含めた
機械学習教育講座の全国での推進
機械学習 SI エコシステム日本最大の AI コミュニティ
ChainerRL x Minecraft
https://dllab.connpass.com/event/113267/
DeepCon @ Otemachi 2019/6/8(Sat)
Global
Business Hub
Preferred
Networks
Spaces
Intel Show
Room
NTT Com
Otemachi
Places

Chainer on Azure 2 年の歴史