Upload
daisuke-nagao
View
283
Download
2
Embed Size (px)
Citation preview
#jawsdays #jd2017_a
API を叩くだけでない、 Deep Learning on AWS で自分だけの学習モデルを作ろう!
by JAWS-UG AI 支部
#jawsdays #jd2017_a
自己紹介• 長尾 太介 (Daisuke Nagao)
• 職歴– 富士ゼロックス ( 粉体シミュレータの開発、スパコン環境の導入・管理 )– NVIDIA Japan: Cloud Service Provider 向けの BD– Rescale Japan: 7 月に SaaS 型の CloudHPC を提供する Rescale へソリューションアーキテクトとして Join
• コミュニティー– JAWS-UG AI ( コアメンバ )– JAWS-UG HPC 専門支部 ( コアメンバ )
#jawsdays #jd2017_a
JAWS-UG AI 支部• Deep Learning を中心とした AI 関連技術を学び AWS 上で活用してくためのユーザグループです• 「 AWS は知っているけど、Deep Learning って何?」という方を対象とします• 「これから Deep Learning だけでなく AWS も同時に学びたい」という方も歓迎いたします• 運営側は Deep Learning に関して初心者なので、みなさん一緒に楽しく学んで行きましょう
#jawsdays #jd2017_a
本日の流れ• 前半 ( 長尾 )
– Deep Learning の クラウドアーキテクチャー• 後半 ( 中丸 )
– MXnet の デモ• 本日は、 Deep Learning のアーキテクチャー、動かし方にフォーカスします• Deep Learning の理論のお話は、丸山先生のマルレク資料等を参照してください ( 本日は言及しない )
#jawsdays #jd2017_a
Deep Learning とは• 脳内の神経回路網とそのプロセスを真似たもの・・・
イス
#jawsdays #jd2017_a
Google 翻訳も賢くなった
#jawsdays #jd2017_a
AWS も Deep Learning なサービスを発表• Amazon Rekognition
– 画像の状況、人物の顔、物体 を検出• Amazon Polly
– テキスト to スピーチ機能、なめらかに喋ってくれる• Amazon Lex
– テキストメッセージに応答するチャットボット開発を容易にするサービス
#jawsdays #jd2017_a
#jawsdays #jd2017_a
• なぬ〜 39 歳のオッサンを 100% 女と判定• 欧米人で最適化されているのかしら ? ( 勝手
に予測 )既存のサービス使えれば Good だが、、、、必ずしも所望の結果が得られるとは限らない
#jawsdays #jd2017_a
やりたいことは、 API 叩くだけで満足できますか?• アリ物の API を叩くだけでは、みんなと同じサー
ビスしかできない。簡単に真似される懸念がある• その API は “やりたいこと” ”課題”を解決してい
ますか?
#jawsdays #jd2017_a
自分で”脳みそ” を作っちゃおう• 脳みそから作って、あなた独自のサービスを展開
– 脳みそ作る工程 を Learning ( 学習 ) と言う– フレームワーク ( アプリケーション ) を使って 学習を行う– 代表的なフレームワークはどれも OSS
Deep Learning のフレームワークは無料HW さえ揃えれば誰でもできる
Caffe
#jawsdays #jd2017_a
どんなアーキテクチャが必要?
Learning( 学習 )
Inference( 推論 )
BIGDATA Labels
訓練済みのモデル apple OrangeBanana
API
数日間マシンをぶん回し学習を行う
Neural Network
HPC ( スパコン ) のアーキテクチャー サービス側のアーキテクチャー
Learning に適した GPU
入力に対してすぐに応答できるようなシステム
Submit Job タイプ ( バッチ処理 )Daemon タイプ
#jawsdays #jd2017_a
HPC ( スパコン ) のアーキテクチャーとは
13
FILE_SERVERHPC 用ジョブスケジューラ(Submit Node) Calc-nodes
マルチノード、マルチ GPU(1 台のマシンに複数の GPU) を一度に使い、アプリケーションを高速化するマルチノード環境 : MPI がよく使われるGPU 環境 : CUDA
NFSNFS
#jawsdays #jd2017_a
AWS における構成例P2
P2
P2
P2
NFS
EBS
Submit Node(e.g. c4.large)
状況によってインスタンスタイプを選択。場合によっては submit node をなくしても良い (EBS は計算ノード側へつける )
GPU を持つインスタンスを選択NFS マウントされた共有領域を、全ノードから見えると便利
Calc-Nodes
#jawsdays #jd2017_a
P2 インスタンス
https://www.slideshare.net/understeer/jawsug-ai-aws-ai
#jawsdays #jd2017_a
Cloud HPC の運用例
16
Time
Load
ave
rage
インスタ
ンス起動
HPC
クラスタ
構築
学習開始
クラスタ
の削除
ファイル
ステージ
ング
ファイル
ステージ
ング
Subm
it Jo
b
#jawsdays #jd2017_a
HPC 環境の運用を楽にするサービスたち
DL 用 Cluster を楽に構築cfncluster AWS Batch
AWS Native Services AWS 上で動く SaaS
https://aws.amazon.com/jp/blogs/compute/distributed-deep-learning-made-easy/
例えば
#jawsdays #jd2017_a
忘れちゃダメなプリ処理 ( 学習データセットの用意 )
• 学習データセットの作成– BIGDATA から学習用のデータを抽出
• 既存のサービスをうまく利用、hadoop, spark なども使えるかも– ラベルづけ (この写真は ”イス” です )
• Amazon Mechanical Turk 、要は人海戦術・・・• BIGDATA がなければ、オープンなデータセットの利用も検討
– AWS Public Dataset
• 仕掛け作りでデータを作る– お肌の年齢コンテスト、「お肌の写真とプロフィールを送ってください。優勝者には・・・・」
#jawsdays #jd2017_a
#jawsdays #jd2017_a
#jawsdays #jd2017_a
忘れちゃダメなデプロイ環境• 学習済みモデルを、うまくサービス側へ渡す仕組み• サービス側に沿った仕組みを構築
#jawsdays #jd2017_a
Neural NetworkStructure
Learning: HPC Architecture Inference: Web Architecture
BIGDATALabels
Deploy a trained Network
apple Orange strawberryBanana
Require real time processRequire Many Core, BIGDATA analysis
API
ついに HPC でも Docker が! How deploy your apps?Docker リポジトリーは?
Learning Inference
AWS Elastic Beanstalk
教師データ
cfncluster
AmazonDynamoDB
bucket
Meta Data
Amazon API Gateway
Submit Job DaemonHPC on AWS 用ミドルウェア• HPC Cluster の動的作成・削除・管理• スケジューリング機能
アーキたたき台
P2F1 もありLambda もあり
AWS Batch
or
前処理
#jawsdays #jd2017_a
ここまでのメッセージ• Deep Learnig を使った AI は、学習と推論どちらも必要• 学習データの収集 -> 学習 -> Deploy -> サービス と全体を踏まえて、全体をデザインしよう• AWS は、サービスをつなぎ合わせることでトータルでソリューションできる
#jawsdays #jd2017_a
自立 / 分散 /協調型も視野に入れて
http://www.meti.go.jp/committee/sankoushin/shojo/johokeizai/bunsan_senryaku_wg/pdf/001_03_00.pdf
エッジ側にどこまでの処理を任せるか、クラウドへ上げるデータは何かをよく考える
#jawsdays #jd2017_a
事例 : GTC JAPAN2016 で発表したプロト• 学習
– Rescaleを利用しCAFFEを動かす– ユーザには見えないが g2 インスタンスが後ろで動く
• 推論– NVIDIA Jetson (ARM + GPU の組み込みボード ) を利用– USBでカメラを取り付け物体認識を行う
• Deploy 方法– S3, SQS を利用 . JetsonがSQSをポーリング
AmazonS3
Amazon
SQS
Camera
GTC Japan 2016: システム計画研究所 /ISP さま事例
Amazon EC2
AmazonS3
AmazonSQS
クライアントアプリケーション( Jetson TX1)
API
ダウンロード
学習デプロイ
更新情報caffemodel
ポーリングダウンロード(判別機更新)wget
Rescale API を使った他のシステムとの連携Blog: http://wazalabo.com/rescale-gtcjapan-demo-report.html
#jawsdays #jd2017_a
クラウドだからプロトタイプも楽に作れる• 2, 3 人、数日で作成
– Rescale, AWS を利用することで数日でシステムが組めた– API でシステムを操作できることがとても重要
• オンプレじゃできねー
#jawsdays #jd2017_a
スタートでハマらないために• 大前提として
– ゼロベースで学習用のアプリケーションを書こうとしない。 GPU の使いこなしで死ぬ。 Deep Learning の フレームワークを適切に使う• 初心者は各種セットアップ / インストールを避けた方が無難。挫折する人も多数
– CUDA のインストール– フレームワークのインストール– CUDA とフレームワークのバージョン問題など– ipython との連携
#jawsdays #jd2017_a
Deep Learning 環境がインストールされた環境を使う• AMI を使う
– Deep Learning 環境の構築不要– マシンの管理は必要 (素の AWS 料金で OK)
• SaaS タイプのサービスを使う– Deep Learning 環境の構築不要– マシンの管理不要 ( その分高い )
#jawsdays #jd2017_a
Deep Learning 環境がインストールされた環境を使う• AMI を使う
– Deep Learning 環境の構築不要– マシンの管理は必要 (素の AWS 料金で OK)
• SaaS タイプのサービスを使う– Deep Learning 環境の構築不要– マシンの管理不要 ( その分高い )
#jawsdays #jd2017_a
DEMO: SUPINF 中丸さんへ