$30 off During Our Annual Pro Sale. View Details »

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

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

JAWS DAYS 2018

ryo nakamaru

March 10, 2018
Tweet

More Decks by ryo nakamaru

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 学習
    6

    View Slide

  7. データの準備
    7

    View Slide

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

    View Slide

  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/
    • …

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide


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

    View Slide

  15. AWS
    15

    View Slide

  16. 関連サービス群
    16

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. Amazon Mechanical Turk
    21

    View Slide

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

    View Slide

  23. 試行錯誤 / POC
    23

    View Slide

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

    View Slide

  25. Jupyter notebook
    25
    主に科学技術計算や機械学習の業界で
    あれこれ 試行錯誤 したり、それを誰かと簡単に 共有 できる

    ツール。多くの研究者やエンジニアに愛用されている。
    git などでバージョン管理するのも容易!

    View Slide

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

    View Slide

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

    View Slide

  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 なる
    サービスも

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

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

    View Slide

  34. 学習
    34

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. Amazon SageMaker: 事例
    45

    View Slide

  46. 推論
    46

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  57. Join us :)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide