AWSで始める機械学習/machine-learning-on-aws-20180310

 AWSで始める機械学習/machine-learning-on-aws-20180310

JAWS DAYS 2018

1e5a15f4dc65c207a04a1e82a3f92e92?s=128

ryo nakamaru

March 10, 2018
Tweet

Transcript

  1. Let’s get started with AWS AWS で始める機械学習 JAWS DAYS Mar

    10, 2018 Ryo NAKAMARU, JAWS-UG AI 支部
  2. 中丸 良 @pottava • AWS Certified SA, DevOps Engineer -

    Pro • CTO at SUPINF Inc. / Solutions Architect at Rescale, Inc. • クラサバ ERP → Web → クラウド / Docker → HPC / ML Profile 2
  3. Profile 3 お客様先のオンプレミスに機械学習環境を構築したり 不足した機械学習用コンピュートリソースを クラウドに用意したりするお仕事させてもらってます

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

  5. 機械学習の流れ 5 2. σʔλલॲཧ 3. ֶश 4. ਪ࿦ 1. σʔλऩू

    この流れに沿い、AWS をどう使えばいいのか 利用タイミングと目的別にご紹介します
  6. 学習 6

  7. データの準備 7

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

  9. 一般公開された画像集 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/ • …
  10. AWS Public Datasets 10 https://aws.amazon.com/jp/public-datasets/

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

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

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

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

  15. AWS 15

  16. 関連サービス群 16

  17. データ収集に便利なサービス 17 • AWS IoT • Amazon Kinesis Streams •

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

    2
  19. AWS の関連サービス群 19

  20. データ前処理に便利なサービス 20 • Amazon Mechanical Turk • AWS Glue •

    Amazon EMR / EC2 • AWS Lambda / Step Functions • AWS CloudWatch Events
  21. Amazon Mechanical Turk 21

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

  23. 試行錯誤 / POC 23

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

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

    git などでバージョン管理するのも容易!
  26. (NVIDIA) GPU 26 学習にはとても時間がかかるもの。 行列計算が得意な GPU を使えば時間が節約できます!

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

    --rm -p 8888:8888 jupyter/tensorflow-notebook
  28. 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 なる サービスも
  29. AWS の関連サービス群 29

  30. 試行錯誤に便利なサービス 30 • Amazon Machine Learning • Amazon SageMaker •

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

  32. 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)
  33. Amazon DeepLearning AMI 33 CUDA, cuDNN, Anaconda and so on.

    P3, P3 & Intel Math Kernel Library for C5
  34. 学習 34

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

  36. AWS の関連サービス群 36

  37. 学習フェーズに便利なサービス 37 • Amazon EMR / Batch / EC2 ‣

    p3 / g3 (GPU) instances ‣ Deep Learning AMI ‣ Spot Fleet / AutoScaling Group • Amazon SageMaker • Amazon Machine Learning • Amazon EFS / S3
  38. AWS Batch 38 https://www.youtube.com/watch?v=UR8BI2Exkbc 科学技術計算・ハイパフォーマンスコンピューティング用途で 真価を発揮する、大規模なスケール、ジョブの依存定義が可能な マネージド 並列分散 バッチ処理基盤。現在 Docker

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

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

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

    DATA Corporation 堤 崇行さん
  42. Spot Fleet / Spot インスタンス 42 機械学習を AWS でやるなら、知って得する機能! 仮想サーバを安く使うことができる起動方法の一つ。

    AWS のデータセンタの「余剰分」を「入札」して利用。
  43. Amazon SageMaker 43 機械学習モデルを簡単に構築し、学習し、推論サービスをデプロイ するためのフルマネージドサービスです。EC2 を強く意識すること なく Jupyter notebook が立ち上がり、推論サービスもクリックだけ

    で展開することができます。
  44. Amazon SageMaker 44 設計 学習 デプロイ • ワンクリック起動 Jupyter notebook

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

  46. 推論 46

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

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

  49. 推論フェーズに便利なサービス 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
  50. Amazon ECS 50 ϑϧϚωʔδυͳ Docker ίϯςφΫϥελ؀ڥɻ GPU ϕʔεͷਪ࿦ΞϓϦέʔγϣϯͩͬͯಈ͖·͢ʂ ϩʔυόϥϯα΍ΦʔτεέʔϧͳͲͱ౷߹͞Ε 24/365

    ͷαʔϏεఏڙΛ༰қʹ࣮ݱ
  51. Amazon ECS 51 https://speakerdeck.com/ayemos/build-image-classification-service-with-amazon-ecs-and-gpu-instances クックパッド株式会社 染谷 悠一郎さん

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

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

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

  55. AWS の推論 API サービス 55 • Amazon Rekognition • Amazon

    Polly • Amazon Transcribe • Amazon Translate • Amazon Comprehend
  56. まとめ 56 2. σʔλલॲཧ 3. ֶश 4. ਪ࿦ 1. σʔλऩू

    Glue EMR Lambda Lambda ML SageMaker Batch ECS どこで何を使うか 難易度や機能に応じて選択
  57. Join us :)

  58. JAWS-UG AI 支部 58 • AWS で AI サービスを実装・運用するための  一般的な技術情報、知見、事例共有の場

    ‣ すでに活用している方 ‣ 導入を検討している方 ‣ 何それおいしいの?な方(開催ごとに難易度が多少違います)
  59. Cloud HPC with 59 • クラウド HPC シミュレーションプラットフォームを提供 • スケーラブルなシミュレーションや機械学習を!

    • Singularity でのコンテナ分散実行もサポート
  60. Containerize your app! 60 • クラウド / コンテナ を強みにした受託開発運用、コンサルティング •

    2015 年から Docker の本番運用を開始・豊富な CI / CD 事例 • スピンフ、と読みます・・
  61. ご静聴ありがとうございました 参考文献: • 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