Slide 1

Slide 1 text

Let’s get started with AWS AWS で始める機械学習 JAWS DAYS Mar 10, 2018 Ryo NAKAMARU, JAWS-UG AI 支部

Slide 2

Slide 2 text

中丸 良 @pottava • AWS Certified SA, DevOps Engineer - Pro • CTO at SUPINF Inc. / Solutions Architect at Rescale, Inc. • クラサバ ERP → Web → クラウド / Docker → HPC / ML Profile 2

Slide 3

Slide 3 text

Profile 3 お客様先のオンプレミスに機械学習環境を構築したり 不足した機械学習用コンピュートリソースを クラウドに用意したりするお仕事させてもらってます

Slide 4

Slide 4 text

学習の流れを再確認してみます 4

Slide 5

Slide 5 text

機械学習の流れ 5 2. σʔλલॲཧ 3. ֶश 4. ਪ࿦ 1. σʔλऩू この流れに沿い、AWS をどう使えばいいのか 利用タイミングと目的別にご紹介します

Slide 6

Slide 6 text

学習 6

Slide 7

Slide 7 text

データの準備 7

Slide 8

Slide 8 text

データの収集 8 もちろん、最終的には IoT から得られるセンサデータなど 自社ならではのデータを使っていきたいところ。 とはいえ、まず試してみるだけなら 一般公開されたデータ を活用するのが簡単です。 1

Slide 9

Slide 9 text

一般公開された画像集 9 研究もコンテストも盛んで、たくさんあります。 • MNIST   http://yann.lecun.com/exdb/mnist/ • CIFAR-10 & CIFAR-100   https://www.cs.toronto.edu/~kriz/cifar.html • ImageNet   http://www.image-net.org/ • …

Slide 10

Slide 10 text

AWS Public Datasets 10 https://aws.amazon.com/jp/public-datasets/

Slide 11

Slide 11 text

Public Datasets | Google Cloud Platform 11 https://cloud.google.com/public-datasets/

Slide 12

Slide 12 text

Public data sets for Azure analytics 12 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-public-data-sets

Slide 13

Slide 13 text

Datasets « Deep Learning 13 http://deeplearning.net/datasets/

Slide 14

Slide 14 text

? 14 http://www.data.go.jp/data/dataset

Slide 15

Slide 15 text

AWS 15

Slide 16

Slide 16 text

関連サービス群 16

Slide 17

Slide 17 text

データ収集に便利なサービス 17 • AWS IoT • Amazon Kinesis Streams • Amazon CloudWatch Logs • Amazon S3 • Amazon Cognito + AWS SDK

Slide 18

Slide 18 text

データの前処理 18 入力データを行列計算などできるように加工する過程。 画像を切り落としたり 3 チャンネルにしたり CSV から必要なカラムだけを抜き出したり入れ替えたり。 Python で書けはするけど、専用ソフトウェアやサービスも便利。 2

Slide 19

Slide 19 text

AWS の関連サービス群 19

Slide 20

Slide 20 text

データ前処理に便利なサービス 20 • Amazon Mechanical Turk • AWS Glue • Amazon EMR / EC2 • AWS Lambda / Step Functions • AWS CloudWatch Events

Slide 21

Slide 21 text

Amazon Mechanical Turk 21

Slide 22

Slide 22 text

Amazon Mechanical Turk: 事例 22 アメリカではラベル付けなどで とても利用されている・・ Cloud AutoML Vision?

Slide 23

Slide 23 text

試行錯誤 / POC 23

Slide 24

Slide 24 text

試行錯誤に便利なものたち 24

Slide 25

Slide 25 text

Jupyter notebook 25 主に科学技術計算や機械学習の業界で あれこれ 試行錯誤 したり、それを誰かと簡単に 共有 できる
 ツール。多くの研究者やエンジニアに愛用されている。 git などでバージョン管理するのも容易!

Slide 26

Slide 26 text

(NVIDIA) GPU 26 学習にはとても時間がかかるもの。 行列計算が得意な GPU を使えば時間が節約できます!

Slide 27

Slide 27 text

Docker 27 試行錯誤するにはこれもとても便利です。 ライブラリがどんどんバージョン更新しても大丈夫! クラウド上に学習・推論を持って行く ときにも有用!  $ docker run -it --rm -p 8888:8888 jupyter/tensorflow-notebook

Slide 28

Slide 28 text

NVIDIA の Docker イメージ 28 cuda:8.0-runtime ubuntu:16.04 cuda:8.0-devel cuda:8.0-cudnn5-runtime cuda:8.0-cudnn5-devel digits (v6.0) 以下のような継承関係のイメージが公開されています。 機械学習の動作要件に適したイメージをベースに。 独自 Docker イメージのビルドもできます。 NGC なる サービスも

Slide 29

Slide 29 text

AWS の関連サービス群 29

Slide 30

Slide 30 text

試行錯誤に便利なサービス 30 • Amazon Machine Learning • Amazon SageMaker • Amazon EMR / EC2 ‣ p3 / g3 (GPU) instances ‣ Deep Learning AMI • Amazon EBS / S3 / ECR

Slide 31

Slide 31 text

Amazon Machine Learning 31 二項分類、複数クラス分類、線形回帰のマネージドサービス。 データの取り込みから、学習・推論が行えます。 サーバの管理が不要なため、スケーラビリティや 推論サービスの可用性は気にせず OK!

Slide 32

Slide 32 text

GPU インスタンス 32 汎用コンピューティング用途: p3 系: NVIDIA Tesla P100     単精度演算性能 9.3 TFLOPS, 半精度演算性能 18.7 TFLOPS     (3,584 CUDA cores) p2 系: NVIDIA Tesla K80     単精度演算性能 8.74 TFLOPS     (2,496 CUDA cores / GPU が 2 つで 1 つの K80)

Slide 33

Slide 33 text

Amazon DeepLearning AMI 33 CUDA, cuDNN, Anaconda and so on. P3, P3 & Intel Math Kernel Library for C5

Slide 34

Slide 34 text

学習 34

Slide 35

Slide 35 text

学習 35 3 もっとも重要、かつ ものすごく時間がかかる ところ。 自社のモデルを作るのはとても大変だが オリジナルのものができれば貴重な知財に。 クラウドの様々なサービスがサポートしてくれます。

Slide 36

Slide 36 text

AWS の関連サービス群 36

Slide 37

Slide 37 text

学習フェーズに便利なサービス 37 • Amazon EMR / Batch / EC2 ‣ p3 / g3 (GPU) instances ‣ Deep Learning AMI ‣ Spot Fleet / AutoScaling Group • Amazon SageMaker • Amazon Machine Learning • Amazon EFS / S3

Slide 38

Slide 38 text

AWS Batch 38 https://www.youtube.com/watch?v=UR8BI2Exkbc 科学技術計算・ハイパフォーマンスコンピューティング用途で 真価を発揮する、大規模なスケール、ジョブの依存定義が可能な マネージド 並列分散 バッチ処理基盤。現在 Docker コンテナ前提。

Slide 39

Slide 39 text

AWS Batch 39 Black Belt の資料が公開されています http://aws.typepad.com/sajp/2017/02/aws-black-belt-online-seminar-aws-batch.html

Slide 40

Slide 40 text

AWS Batch 40 私もユーザ視点で書きました http://qiita.com/pottava/items/d9886b2e8835c5c0d30f

Slide 41

Slide 41 text

AWS Batch: 事例 41 https://www.slideshare.net/RecruitLifestyle/step-functionsaws-batch-81700778 株式会社リクルートライフスタイル 山田 雄さん / NTT DATA Corporation 堤 崇行さん

Slide 42

Slide 42 text

Spot Fleet / Spot インスタンス 42 機械学習を AWS でやるなら、知って得する機能! 仮想サーバを安く使うことができる起動方法の一つ。 AWS のデータセンタの「余剰分」を「入札」して利用。

Slide 43

Slide 43 text

Amazon SageMaker 43 機械学習モデルを簡単に構築し、学習し、推論サービスをデプロイ するためのフルマネージドサービスです。EC2 を強く意識すること なく Jupyter notebook が立ち上がり、推論サービスもクリックだけ で展開することができます。

Slide 44

Slide 44 text

Amazon SageMaker 44 設計 学習 デプロイ • ワンクリック起動 Jupyter notebook • プリセットされた 機械学習アルゴリ ズム群 ▶ ▶ • ジョブを定義し   学習開始 • 並列分散学習 • ハイパーパラメタ  最適化 • シンプルな API で   モデルをデプロイ • フルマネージドな 推論エンドポイント の提供

Slide 45

Slide 45 text

Amazon SageMaker: 事例 45

Slide 46

Slide 46 text

推論 46

Slide 47

Slide 47 text

推論 47 学習済みのモデルを使い、推論する。 ビジネスと直結 することが多く、稼働は 24 / 365。 可用性とレイテンシが重要なのは一般サービス同様。 もしかしてサーバレスでも・・いける・・・? 4

Slide 48

Slide 48 text

AWS の関連サービス群 (自社で推論サービスを提供する場合) 48

Slide 49

Slide 49 text

推論フェーズに便利なサービス 49 • Amazon ECS / EC2 ‣ p3 / g3 (GPU) / F1 (FPGA) instances ‣ Deep Learning AMI ‣ Spot Fleet / AutoScaling Group • AWS Lambda / Amazon API Gateway • AWS ElasticBeanstalk • Amazon EFS / EBS / S3 / ECR

Slide 50

Slide 50 text

Amazon ECS 50 ϑϧϚωʔδυͳ Docker ίϯςφΫϥελ؀ڥɻ GPU ϕʔεͷਪ࿦ΞϓϦέʔγϣϯͩͬͯಈ͖·͢ʂ ϩʔυόϥϯα΍ΦʔτεέʔϧͳͲͱ౷߹͞Ε 24/365 ͷαʔϏεఏڙΛ༰қʹ࣮ݱ

Slide 51

Slide 51 text

Amazon ECS 51 https://speakerdeck.com/ayemos/build-image-classification-service-with-amazon-ecs-and-gpu-instances クックパッド株式会社 染谷 悠一郎さん

Slide 52

Slide 52 text

Amazon ECS 52 Black Belt の資料が公開されています https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016-amazon-ec2-container-service

Slide 53

Slide 53 text

AWS Lambda 53 サーバレスで MXNet による推論をする実装例 http://aws.typepad.com/sajp/2017/01/ seamlessly-scale-predictions-with-aws-lambda- and-mxnet.html

Slide 54

Slide 54 text

AWS の関連サービス群 (推論マネージドサービスの利用) 54

Slide 55

Slide 55 text

AWS の推論 API サービス 55 • Amazon Rekognition • Amazon Polly • Amazon Transcribe • Amazon Translate • Amazon Comprehend

Slide 56

Slide 56 text

まとめ 56 2. σʔλલॲཧ 3. ֶश 4. ਪ࿦ 1. σʔλऩू Glue EMR Lambda Lambda ML SageMaker Batch ECS どこで何を使うか 難易度や機能に応じて選択

Slide 57

Slide 57 text

Join us :)

Slide 58

Slide 58 text

JAWS-UG AI 支部 58 • AWS で AI サービスを実装・運用するための  一般的な技術情報、知見、事例共有の場 ‣ すでに活用している方 ‣ 導入を検討している方 ‣ 何それおいしいの?な方(開催ごとに難易度が多少違います)

Slide 59

Slide 59 text

Cloud HPC with 59 • クラウド HPC シミュレーションプラットフォームを提供 • スケーラブルなシミュレーションや機械学習を! • Singularity でのコンテナ分散実行もサポート

Slide 60

Slide 60 text

Containerize your app! 60 • クラウド / コンテナ を強みにした受託開発運用、コンサルティング • 2015 年から Docker の本番運用を開始・豊富な CI / CD 事例 • スピンフ、と読みます・・

Slide 61

Slide 61 text

ご静聴ありがとうございました 参考文献: • Cloud Native Technologies in the Fortune 100           http://redmonk.com/fryan/2017/09/10/cloud-native-technologies-in-the-fortune-100/ • A Study of Security Vulnerabilities on Docker Hub        http://dance.csc.ncsu.edu/papers/codaspy17.pdf