Slide 1

Slide 1 text

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS でもう一歩進める機械学習 Amazon SageMaker ハンズオン Yoshitaka Haribara, Ph.D. Startup Solutions Architect, AWS

Slide 2

Slide 2 text

Yoshitaka Haribara @_hariby Startup Solutions Architect Tokyo, Japan ソリューションアーキテクトとして日本の スタートアップに対する AWS 導入支援、特 に機械学習・量子コンピュータ担当をやっ ています。

Slide 3

Slide 3 text

Daisuke Sato @eccyan 複数企業のスタートアップを渡 り歩き Startup SA としてジョイ ン。好きな筋トレはスクワット です! Seigo Uchida @spesnova 大中小様々な企業を経て AWS に ジョイン。ソリューションアー キテクトとして日本のスタート アップを支援。 Shingo Noguchi @nog スタートアップ、メガベン チャー等でサーバサイド開発や 技術責任者等を担当。好きなお にぎりは筋子です。 メンバー紹介

Slide 4

Slide 4 text

• 導入 (このスライドで話します) Amazon SageMaker のおさらいと最近のアップデート • ハンズオンワークショップ (SageMaker JumpStart) Notebook1: Training and Hosting a PyTorch Model Notebook2: How to Use Spot Training • デモ SageMaker Debugger, SageMaker Experiments, SageMaker Feature Store MLOps • まとめ: Q&A とアンケート Agenda http://bit.ly/sage-615

Slide 5

Slide 5 text

Amazon SageMaker の おさらいと最近のアップデート

Slide 6

Slide 6 text

Amazon SageMaker overview PREPARE SageMaker Ground Truth Label training data for machine learning SageMaker Data Wrangler NEW Aggregate and prepare data for machine learning SageMaker Processing Built-in Python, BYO R/Spark SageMaker Feature Store NEW Store, update, retrieve, and share features SageMaker Clarify NEW Detect bias and understand model predictions BUILD SageMaker Studio Notebooks Jupyter notebooks with elastic compute and sharing Built-in and Bring your-own Algorithms Dozens of optimized algorithms or bring your own Local Mode Test and prototype on your local machine SageMaker Autopilot Automatically create machine learning models with full visibility SageMaker JumpStart NEW Pre-built solutions for common use cases TRAIN & TUNE Managed Training Distributed infrastructure management SageMaker Experiments Capture, organize, and compare every step Automatic Model Tuning Hyperparameter optimization Distributed Training NEW Training for large datasets and models SageMaker Debugger NEW Debug and profile training runs Managed Spot Training Reduce training cost by 90% DEPLOY & MANAGE Managed Deployment Fully managed, ultra low latency, high throughput Kubernetes & Kubeflow Integration Simplify Kubernetes-based machine learning Multi-Model Endpoints Reduce cost by hosting multiple models per instance SageMaker Model Monitor Maintain accuracy of deployed models SageMaker Edge Manager NEW Manage and monitor models on edge devices SageMaker Pipelines NEW Workflow orchestration and automation Amazon SageMaker SageMaker Studio Integrated development environment (IDE) for ML

Slide 7

Slide 7 text

Amazon SageMaker Data Wrangler • 迅速かつ容易に機械学習のためのデータを準備 • SageMaker Studio IDE の UI で利用可能 − S3, Athena, Redshift, SageMaker Feature Store など複数データソースから SageMaker にデータを直接インポート − 1クリックでデータ選択、クエリ、データ変換、可視化等を行う • 300以上の組み込み変換処理を利用してコード記述なしに処理

Slide 8

Slide 8 text

SageMaker Feature Store • 機械学習の学習・推論に必要な Feature を保存、更新、取 得、共有等を可能にする専用リポジトリ • 格納された特徴データは、グループごとに整理され、メタ データを使用しタグ付け • 特徴データの共有および再利用が複数チームで簡単に行え るため、開発コストを削減しながらイノベーションを加速 • 学習中の Feature とリアルタイムの推論のためFeature の 統合ストアを提供。Feature の一貫性を保つために、追加 コードを記述等は不要 • Amazon SageMaker, Amazon SageMaker Pipelines と統合し て自動化された機械学習ワークフローを作成可能

Slide 9

Slide 9 text

JumpStart デモ

Slide 10

Slide 10 text

Amazon SageMaker 開発 Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Slide 11

Slide 11 text

Amazon SageMaker 開発 Jupyter Notebook/Lab Amazon S3 学習 Amazon EC2 P3 Instances Amazon ECR The Jupyter Trademark is registered with the U.S. Patent & Trademark Office. ビルド済みのコンテナイメージが 予め用意されている

Slide 12

Slide 12 text

Amazon SageMaker 開発 学習 Amazon EC2 P3 Instances Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office. トレーニングでのメリット: • API 経由で学習⽤インスタ ンスを起動、 学習が完了すると⾃動停⽌ • ⾼性能なインスタンスを 秒課⾦で、 簡単にコスト削減 • 指定した数のインスタンス を同時起動、 分散学習も容易

Slide 13

Slide 13 text

Amazon SageMaker 開発 学習 Amazon EC2 P3 Instances Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Slide 14

Slide 14 text

Amazon SageMaker 開発 学習 推論 Amazon EC2 P3 Instances Jupyter Notebook/Lab Endpoint/ Batch transform Amazon S3 Amazon ECR The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Slide 15

Slide 15 text

Amazon SageMaker 推論 Endpoint Amazon API Gateway AWS Lambda (AWS SDK) User The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Slide 16

Slide 16 text

© 2021, Amazon Web Services, Inc. or its Affiliates. SageMaker Python SDK (v2) での呼び出し import sagemaker from sagemaker.pytorch import PyTorch # 各フレームワークに対応した Estimator クラス estimator = PyTorch("train.py", # トレーニングスクリプトなどを指定して初期化 role=sagemaker.get_execution_role(), instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.6.0", py_version="py3") estimator.fit("s3://mybucket/data/train") # fit でトレーニング predictor = estimator.deploy(initial_instance_count=2, # 2以上にすると Multi-AZ instance_type="ml.m5.xlarge") # deploy でエンドポイント作成

Slide 17

Slide 17 text

© 2021, Amazon Web Services, Inc. or its Affiliates. コード (例: train.py) の書き換えは最低限 import argparse if __name__ == '__main__’: parser = argparse.ArgumentParser() # hyperparameters parser.add_argument('--epochs', type=int, default=10) # input data and model directories parser.add_argument('--train', type=str, default=os.environ['SM_CHANNEL_TRAIN']) parser.add_argument('--test', type=str, default=os.environ['SM_CHANNEL_TEST']) parser.add_argument('--model-dir', type=str, default=os.environ['SM_MODEL_DIR']) args, _ = parser.parse_known_args() … コンテナ内のパス (環境変数の中身): /opt/ml/input/data/train /opt/ml/input/data/test /opt/ml/model 環境変数 から取得 Script Mode では普通の Python スクリプトとして実行される。 はじめに環境変数からデータ・モデル入出力のパスを取得して、 そこを読むように train.py を書く。推論用にモデルを読み込む。

Slide 18

Slide 18 text

© 2021, Amazon Web Services, Inc. or its Affiliates. Managed Spot Training でトレーニングの料金を削減 • オンデマンドに比べて最大90%のコスト削減 • 中断が発生する可能性があるので checkpoints に途中経過を書き出し • 最大で待てる時間を指定 呼び出し方: estimator = PyTorch("train.py", role=sagemaker.get_execution_role(), instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.6.0", py_version=”py3", use_spot_instances=True, max_run=1*24*60*60 max_wait=2*24*60*60, # max_run より長い時間を指定 checkpoint_s3_uri="s3://mybucket/checkpoints", checkpoint_local_path="/opt/ml/checkpoints/" ) estimator.fit("s3://mybucket/data/train") # fit でトレーニングは同様

Slide 19

Slide 19 text

Train • SageMaker Distributed Training − データ並列・モデル並列での分散学習が容易に • SageMaker Debugger − 学習時のハードウェアリソース有効活用のため、プロファイリング機能を追加 • P4d インスタンス (NVIDIA A100 GPU) が東京リージョンでも利用可能に

Slide 20

Slide 20 text

深層学習向けアクセラレータ on AWS • NVIDIA GPU − 学習: A100 (P4d), V100 32 GB (P3dn) / 16 GB (P3) − 推論: T4 (G4dn) • Intel − 学習: Habana Gaudi − 推論: (CPU instances) • AWS − 学習: AWS Trainium − 推論: AWS Inferentia (Inf1), AWS Graviton2 (C6g, etc.) Accelerator (Instance Family)

Slide 21

Slide 21 text

MLOps と推論

Slide 22

Slide 22 text

機械学習モデルのライフサイクルとプロジェクトの関係者 Data Quality Assurance Feature Engineering Model Monitoring Data Sourcing Model Development Model Training & Evaluation Model Deployment & Inference Production Integration Data Engineers Data Scientists ML Engineers AWS Accounts, Controls, Dev environments, and MLOps stacks (DevOps tools, artefacts repos, ML logs insights) SysOps ML Workflow Automation - Model Management - Continuous Delivery

Slide 23

Slide 23 text

31 © 2021 Amazon Web Services, Inc. or its affiliates. All rights reserved | Amazon SageMaker Pipelines 概要 Amazon SageMaker Pipelines フルマネージドな 機械学習ワークフローを構築 Model registry モデルバージョン、 メトリクス、承認、 モデルデプロイのカタログ 化 Real-time inference Batch scoring Input data Model drift Prepare or transform Explain Train Validate CI/CD とモデル系列追跡で ML Ops の自動化

Slide 24

Slide 24 text

32 © 2021 Amazon Web Services, Inc. or its affiliates. All rights reserved | How Amazon SageMaker Pipelines works パイプライン実行の 開始: • 手動 • データアップロード 時の CloudWatch event • コード check-in (git push) Acceptable accuracy Non-acceptable accuracy Get input data Process data Train model Validation Deploy model Alert and stop

Slide 25

Slide 25 text

33 © 2021 Amazon Web Services, Inc. or its affiliates. All rights reserved | パイプライン実行の詳細とリアルタイムのメトリクス 完了したステップの確認と 実行中のステップの モニタリング 出力メトリクスとログを確認 各ステップのパラメータを モニター、変更、管理

Slide 26

Slide 26 text

34 © 2021 Amazon Web Services, Inc. or its affiliates. All rights reserved | モデルのプロダクションデプロイを承認

Slide 27

Slide 27 text

AWS Step Functions workflow その他、機械学習パイプラインの構築例 Test data Train data Data Scientists/ Developers Git webhook docker push Amazon SageMaker Processing Amazon S3 (data) Amazon SageMaker Training Job / HPO AWS CodeCommit or 3rd party Git repo Amazon S3 (raw data) Amazon Elastic Container Registry (ECR) AWS CodeBuild Endpoint Amazon SageMaker Batch Transform / Endpoint deploy Amazon S3 (trained model) git push AWS CodePipeline

Slide 28

Slide 28 text

AWS のワークフロー管理ツール • サーバーレスオーケストレーション サービス • 分散アプリケーション・マイクロサー ビスの全体を「ステートマシン」と呼 ばれる仕組みでオーケストレート • 定義したステートマシンは AWS コン ソールから「ワークフロー」という形 式で可視化 • ステートマシンの各ステップの実⾏履 歴をログから追跡できる • Apache Airflow によるワークフローを構 築可能なマネージドサービス • ETLジョブやデータパイプラインを実⾏ するワークフローをマネージド型で実⾏ 可能。開発者がビジネス上の課題解決に 注⼒できるようにする • Airflowのメトリクスを CloudWatch メト リクスとして扱い、ログを CloudWatch Logs に転送可能 Amazon SageMaker Pipelines Amazon Managed Workflows for Apache Airflow (MWAA) AWS Step Functions w/Data Science SDK (Python) • 機械学習の CI/CD を実現する Amazon SageMaker の機能 • 機械学習ワークフローのデータ ロードや学習処理などの⼀連の処 理ステップを任意のタイミングや 所定の時間に実⾏できる • 各ステップの処理結果は SageMaker Experiments で記録さ れ、モデルの出来映えや学習パラ メータなどを視覚化できる

Slide 29

Slide 29 text

ご案内 • AWS Startup ブログ − 他のスタートアップは AWS 使ってどんな感じで機械学習やってるの? と聞かれるのでSageMaker と Personalize の事例まとめブログを書きました § https://aws.amazon.com/jp/blogs/startup/tech-case-study-jp-startup-ai-ml/ • JAWS-UG AI/ML 支部 − ユーザーグループが復活しました。 スタートアップのお客様も中心メンバーにいます § https://jawsug-ai.connpass.com/

Slide 30

Slide 30 text

Thank you © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. @_hariby