Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon SageMaker 2020

Amazon SageMaker 2020

スタートアップの事例など含め、全体像を説明するスライド (2020版) です。

Yoshitaka Haribara

May 22, 2020
Tweet

More Decks by Yoshitaka Haribara

Other Decks in Technology

Transcript

  1. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    Web Services Japan Startup ML Solutions Architect Yoshitaka Haribara, Ph.D. 2020-05-22 Amazon SageMaker Build, train, and deploy machine learning models
  2. © 2020, Amazon Web Services, Inc. or its Affiliates. 自己紹介

    • 針原 佳貴 (はりばら よしたか) • 博士 (情報理工学) • Startup / Machine Learning Solutions Architect • スタートアップの技術支援・機械学習導入支援 • 好きなサービスは Amazon SageMaker, Amazon Braket
  3. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    の機械学習スタック 幅広く完全な機械学習のサービス群 コンピュータ ビジョン 音声 テキスト 検索 チャットボット パーソナライズ 予測 不正検知 開発 コンタクトセンター Deep Learning AMIs & Containers GPUs & CPUs Elastic Inference Inferentia FPGA Amazon Rekognition Amazon Polly Amazon Transcribe +Medical Amazon Comprehend +Medical Amazon Translate Amazon Lex Amazon Personalize Amazon Forecast Amazon Fraud Detector Amazon CodeGuru AI サービス ML サービス 深層学習フレームワーク & インフラ Amazon Textract Amazon Kendra Contact Lens For Amazon Connect DeepGraphLibrary Ground Truth AWS Marketplace for ML Neo Augmented AI Built-in algorithms Notebooks Experiments Processing Model training & tuning Debugger Autopilot Model hosting Model Monitor SageMaker Studio IDE Amazon SageMaker
  4. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker をお使いの数万ものお客様
  5. © 2020, Amazon Web Services, Inc. or its Affiliates. 「Cinnamon

    AI は、Amazon SageMaker マネージドスポットトレーニングで ML モデルのトレーニングコストを 70% 節約」 https://aws.amazon.com/jp/blogs/news/cinnamon-ai-saves-70-on-ml-model- training-costs-with-amazon-sagemaker-managed-spot-training/
  6. © 2020, Amazon Web Services, Inc. or its Affiliates. “Making

    Amazon SageMaker and TensorFlow Work for You — Mobileye guest post” https://medium.com/@julsimon/making-amazon-sagemaker-and-tensorflow- work-for-you-893365184233
  7. © 2020, Amazon Web Services, Inc. or its Affiliates. 「AWS

    SageMaker導入による機械学習インフラ大改善」 (株式会社Studio Ousia) https://aws.amazon.com/jp/blogs/startup/event-report-ml-at-loft-5/#studio- ousia
  8. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker 事例祭り https://aws.amazon.com/jp/blogs/news/tag/amazon-sagemaker-fes/
  9. © 2020, Amazon Web Services, Inc. or its Affiliates. 最大

    2x のパフォーマンス向上を Neo のモデル最適化で 最大 70% のコスト削減を Ground Truth によるデータラベリングで 最大 75% の推論コスト削減を Elastic Inference で コスト削減 スケールとパフォーマンス 簡単に使える 最大 90% のコスト削減を Managed Spot Training で 最大 90% の GPU 効率を AWS-optimized TensorFlow で セキュリティ & コンプライアンス SOC, PCI/DSS, ISO, HIPAA, C5, OSPAR, HITRUST CSF, GDPR, FIPS お客様が Amazon SageMaker を選ぶ理由 1クリックで モデルの トレーニングとデプロイ 一度の学習で どこででも実行 Single IDE Web ベースのインターフェースで 機械学習のすべてのステップを実行 少なくとも 54% 低い TCO Kubernetes との統合 Kubernetes operators と pipelines を使って SageMaker でモデルを トレーニング・デプロイ
  10. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker で 54% 低い TCO を3年間で実現 Build Train Deploy ML インフラストラクチャ 運用 セキュリティ&コンプライアンス Amazon SageMaker で開発者の生産性を10x に
  11. © 2020, Amazon Web Services, Inc. or its Affiliates. •

    完全マネージドなトレーニング・ホスティング • 100 GPUs までほぼ線形にスケーリング • EC2 P3 で 3x 速いネットワークスループット 65% Stock TensorFlow AWS-optimized TensorFlow 90% Amazon SageMaker は TensorFlow の実行に最適な場所
  12. © 2020, Amazon Web Services, Inc. or its Affiliates. SageMaker

    で完全に マネージされたインフラ Amazon SageMaker Operators for Kubernetes Kubernetes ユーザーが Amazon SageMaker で モデルのトレーニング・チューニング・デプロイが可能
  13. © 2020, Amazon Web Services, Inc. or its Affiliates. 機械学習のワークフローは反復的かつ複雑

    準備 構築 トレーニング&チューニング デプロイと管理 101011010 010101010 000011110 データ収集と準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視
  14. © 2020, Amazon Web Services, Inc. or its Affiliates. 完全マネージドな

    データ処理ジョブと ラベリングの ワークフロー 1クリックの コラボレーションと ビルトインの高性能な アルゴリズム・モデル 1クリックで トレーニング デバッグ・最適化 1クリックで デプロイと オートスケーリング Amazon SageMaker でできること 可視化して トラッキング・比較 コンセプト ドリフトの 自動検知 オートスケーリング によるコスト削減 準備 構築 トレーニング&チューニング デプロイ&管理 101011010 010101010 000011110 データ収集・準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視 予測結果に 人手のレビュー 機械学習のための Web ベース統合開発環境 (IDE) モデルの自動構築・トレーニング
  15. © 2020, Amazon Web Services, Inc. or its Affiliates. 機械学習のための完全な統合開発環境

    Amazon SageMaker Studio 数千の実験を 管理・追跡・比較 コードの依存関係を 気にせず ノートブックを共有 コードを書くことなく 可視性と制御性のある 正確なモデルを取得 デバッグ・監視・ 品質の担保を自動で 一貫した UI で コード記述・モデル構築・ トレーニング・デプロイ・ 監視
  16. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Studio によるモデル品質の向上
  17. © 2020, Amazon Web Services, Inc. or its Affiliates. モデルの自動生成を完全な可視性と制御性のもとに

    Amazon SageMaker Autopilot クイックスタート 表形式のデータを与えて 予測したい列を指定 モデルの自動生成 特徴量エンジニアリングと モデルチューニングを 自動的に完了 可視性と制御性 モデルとソースコードを ノートブックの形で提供 最適化 モデルの継続的な更新
  18. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Autopilot で回帰・分類モデルの生成 データ分析 特徴量 エンジニアリング モデル チューニング モデル完成
  19. © 2020, Amazon Web Services, Inc. or its Affiliates. 完全マネージドな

    データ処理ジョブと ラベリングの ワークフロー 1クリックの コラボレーションと ビルトインの高性能な アルゴリズム・モデル 1クリックで トレーニング デバッグ・最適化 1クリックで デプロイと オートスケーリング Amazon SageMaker でできること 可視化して トラッキング・比較 コンセプト ドリフトの 自動検知 オートスケーリング によるコスト削減 準備 構築 トレーニング&チューニング デプロイ&管理 101011010 010101010 000011110 データ収集・準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視 予測結果に 人手のレビュー 機械学習のための Web ベース統合開発環境 (IDE) モデルの自動構築・トレーニング
  20. © 2020, Amazon Web Services, Inc. or its Affiliates. •

    ラベルづけコストを最大70%削減 • アノテーターは3種類: • Amazon Mechanical Turk • Amazon 承認済ベンダー • 自社で用意するプライベートワーカー • 正確な結果を素早く取得 機械学習を用いて正確なデータセットを作成 Amazon SageMaker Ground Truth
  21. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Ground Truth の仕組み 自動 アノテーション 生データ 人手の アノテーション トレーニングデータ 人手の アノテーション
  22. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Processing データ変換とモデル評価のための分析ジョブ SageMaker 組込コンテナ あるいは bring your own コンテナ 特徴エンジニアリング のためのスクリプト持込み カスタム処理 クラスターで分散処理 リソースを自動作成・ 設定・終了 SageMaker の セキュリティ・ コンプライアンス機能
  23. © 2020, Amazon Web Services, Inc. or its Affiliates. 完全マネージドな

    データ処理ジョブと ラベリングの ワークフロー 1クリックの コラボレーションと ビルトインの高性能な アルゴリズム・モデル 1クリックで トレーニング デバッグ・最適化 1クリックで デプロイと オートスケーリング Amazon SageMaker でできること 可視化して トラッキング・比較 コンセプト ドリフトの 自動検知 オートスケーリング によるコスト削減 準備 構築 トレーニング&チューニング デプロイ&管理 101011010 010101010 000011110 データ収集・準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視 予測結果に 人手のレビュー 機械学習のための Web ベース統合開発環境 (IDE) モデルの自動構築・トレーニング
  24. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Notebooks 秒でノートブックに接続 管理者が アクセスと権限管理 1クリックで ノートブックの共有 計算リソースの 上げ下げ 計算リソースを立ち上げずに ノートブックを利用 共有可能なノートブック
  25. © 2020, Amazon Web Services, Inc. or its Affiliates. 分類

    画像 トピックモデル テキスト レコメンド 時系列予測 • Linear Learner • XGBoost • KNN • Image Classification • BlazingText • Supervised • Unsupervised • Factorization Machines • DeepAR • LDA • NTM Amazon SageMaker ビルトインアルゴリズム 異常検知 • Random Cut Forests シーケンス変換 • Seq2Seq • Object Detection クラスタリング • K-means 次元削減 • PCA 回帰 • Linear Learner • XGBoost • k-NN • IP Insights • Semantic Segmentation • Object2Vec
  26. © 2020, Amazon Web Services, Inc. or its Affiliates. アルゴリズム・モデル・データを機械学習の

    Marketplace で購入 AWS Marketplace for Machine Learning AWS Marketplace で閲覧・検索 1クリックで サブスクライブ Amazon SageMaker で利用可能
  27. © 2020, Amazon Web Services, Inc. or its Affiliates. 数百のアルゴリズム・モデル・データ

    自然言語処理 Text-to-speech 物体検出 音声認識 文法 テキスト生成 話者認識 回帰 テキスト OCR テキスト分類 テキストクラスタリング コンピュータビジョン 3D 画像 手書き文字認識 Named entity recognition 異常検知 ランキング 動画分類 機械学習による自動ラベリング IP 保護 自動請求・計量 セラー 幅広い有料・無料・オープンソースのアルゴリズム・モデル データ保護 AWS の支払いに含められる バイヤー
  28. © 2020, Amazon Web Services, Inc. or its Affiliates. 完全マネージドな

    データ処理ジョブと ラベリングの ワークフロー 1クリックの コラボレーションと ビルトインの高性能な アルゴリズム・モデル 1クリックで トレーニング デバッグ・最適化 1クリックで デプロイと オートスケーリング Amazon SageMaker でできること 可視化して トラッキング・比較 コンセプト ドリフトの 自動検知 オートスケーリング によるコスト削減 準備 構築 トレーニング&チューニング デプロイ&管理 101011010 010101010 000011110 データ収集・準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視 予測結果に 人手のレビュー 機械学習のための Web ベース統合開発環境 (IDE) モデルの自動構築・トレーニング
  29. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker を使えば1クリックでトレーニング 大きな GPU メモリ 再学習のための チェックポイント インスタンスに 対するデータ ストリーミング デフォルト 分散学習可能 自前アルゴリズムで トレーニング 一貫した トレーニング
  30. © 2020, Amazon Web Services, Inc. or its Affiliates. P3/P3dn

    インスタンス p3.16xlarge / p3dn.24xlarge • ネットワークトポロジー p3.16xl p3dn.24xl CPU Intel Xeon E5- 2686 v4 Intel Skylake 8175 (w/ AVX 512) vCPUs 64 96 GPU 8x 16 GB NVIDIA V100 8x 32 GB NVIDIA V100 RAM 488 GB 768 GB Network 25 Gbps ENA 100 Gbps ENA + EFA GPU Interconnect NVLink – 300 GB/s
  31. © 2020, Amazon Web Services, Inc. or its Affiliates. TensorFlow

    でのマルチノードトレーニング on EC2 P3 ImageNet で 分散学習 • 120万枚の画像 • 1000カテゴリ • 256 GPUs • 15分 TF CUDA10 TF CUDA 9 IDEAL 120k img/s 14.6 min w/ 256 GPUs • Scalable multi-node training with TensorFlow • Launching TensorFlow distributed training easily with Horovod or Parameter Servers in Amazon SageMaker
  32. © 2020, Amazon Web Services, Inc. or its Affiliates. EC2

    P3dn インスタンス + EFA • スケーラブルなスループット • Fairseq (PyTorch seq-to-seq) での分散効率ベンチマーク • Optimizing deep learning on P3 and P3dn with EFA • AWS Elastic Fabric Adapterの通信速度評価
  33. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    to offer NVIDIA A100 Tensor Core GPU-based Amazon EC2 instances https://aws.amazon.com/blogs/machine-learning/aws-to-offer-nvidia-a100- tensor-core-gpu-based-amazon-ec2-instances/
  34. © 2020, Amazon Web Services, Inc. or its Affiliates. Managed

    Spot Training でトレーニングの料金を削減 • オンデマンドに比べて最大90%のコスト削減 • 中断が発生する可能性があるので checkpoints に途中経過を書き出し • 最大で待てる時間を指定 呼び出し方 (SageMaker Python SDK >= v1.37.2 で対応): estimator = PyTorch("train.py", role=sagemaker.get_execution_role(), train_instance_count=1, train_instance_type="ml.p3.2xlarge", framework_version="1.5.0", train_use_spot_instances=True, train_max_wait=2*24*60*60, # train_max_run (デフォルト1日) より長い時間を指定 checkpoint_s3_uri="s3://mybucket/checkpoints", checkpoint_local_path="/opt/ml/checkpoints/" ) estimator.fit("s3://mybucket/data/train") # fit でトレーニングは同様
  35. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Automatic Model Tuning モデルのハイパーパラメータを自動調整 Neural Networks レイヤー数 隠れ層の幅 学習率 埋め込み次元 Dropout XGBoost 木の深さの最大数 Gamma Eta Lambda Alpha 大規模にチューニング 数千もの異なるパラメータ の組合せを探索 自動化 機械学習を用いて 最適なパラメータを発見 高速 数日・数週間かかる 面倒な手作業を排除 例
  36. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker で Optuna を用いたハイパーパラメータ最適化を実装する https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-optuna-hpo/
  37. © 2020, Amazon Web Services, Inc. or its Affiliates. 実験

    (モデルトレーニング) の管理・追跡・比較 Amazon SageMaker Experiments 大規模に トラッキング 可視化 メトリクス・ロギング 高速なイテレーション 実験・ユーザーにまたがる パラメータ・メトリクスを カスタム管理 チーム・ゴール・仮説で 実験を管理 実験結果を簡単に 可視化・比較 カスタムメトリクスを Python SDK & API を用いて 実験を繰り返し 高品質なモデルを生成
  38. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Experiments を用いて 数千の実験を追跡・管理
  39. © 2020, Amazon Web Services, Inc. or its Affiliates. 分析とデバッグ・説明性・アラートの生成

    Amazon SageMaker Debugger データ分析・デバッグ 関連データ取得 自動エラー検出 アラートで 生産性の向上 視覚的に 分析・デバッグ コードの変更なしに データ分析とデバッグ データを分析のために 自動取得 ルールに従い エラーを自動生成 アラートに従って アクションを生成 SageMaker Studio で 視覚的に分析・デバッグ
  40. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Debugger を使って 勾配消失などの問題を特定
  41. © 2020, Amazon Web Services, Inc. or its Affiliates. 完全マネージドな

    データ処理ジョブと ラベリングの ワークフロー 1クリックの コラボレーションと ビルトインの高性能な アルゴリズム・モデル 1クリックで トレーニング デバッグ・最適化 1クリックで デプロイと オートスケーリング Amazon SageMaker でできること 可視化して トラッキング・比較 コンセプト ドリフトの 自動検知 オートスケーリング によるコスト削減 準備 構築 トレーニング&チューニング デプロイ&管理 101011010 010101010 000011110 データ収集・準備 機械学習 アルゴリズム構築 トレーニング環境の セットアップ モデルの トレーニング・ デバッグ・ チューニング 本番環境への デプロイ 実験管理 モデルの 監視 予測結果に 人手のレビュー 機械学習のための Web ベース統合開発環境 (IDE) モデルの自動構築・トレーニング
  42. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker は完全マネージド 1クリック のモデルデプロイ オートスケーリング Python SDK Bring your own model 低レイテンシー 高スループット 単一エンドポイントに 複数モデルをデプロイ
  43. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Model Monitor プロダクション環境でのモデルの継続的なモニタリング 自動データ収集 継続的モニタリング CloudWatch との統合 エンドポイントから データを自動収集 Amazon CloudWatch アラームに基づいた アクションの自動化 ビジュアル データ分析 モニタリングスケジュール を定義して 事前定義されたベースライン からの変化を検出 監視結果・データ・ 統計量・異常レポートを SageMaker Studio で確認 ルールの柔軟性 ビルトインルールで データドリフトの検知 あるいは カスタムルールで分析
  44. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Model Monitor を用いて モデルのドリフト検知とアクションの自動化
  45. © 2020, Amazon Web Services, Inc. or its Affiliates. 一度のトレーニングで、どこでも

    2x のパフォーマンス Amazon SageMaker Neo Neo Broad framework support Broad hardware support Open-source Neo-AI device runtime and compiler 1/10th the size of original frameworks https://github.com/neo-ai/
  46. © 2020, Amazon Web Services, Inc. or its Affiliates. Parse

    Model Optimize Tensors Generate Code Optimize Graph TensorFlow, MXNet, PyTorch, XGBoost のモデルを共通 フォーマットに変換 ML モデル (NN) 中のパターンを 認識し、実行コストを削減する ようグラフ構造の最適化 入力データの shape から パターンを抽出し、 効率的にメモリを割り当てる ターゲットデバイス用に 低レベルコンパイラを 用いて機械語を生成 Neo コンパイラ (TVM / treelite) Pruning Operator fusion Nested loop tiling Vectorization / Tensorization Data layout transform
  47. © 2020, Amazon Web Services, Inc. or its Affiliates. プロダクション環境

    の課題は推論コスト 90% Inference (Prediction) 10% Training
  48. © 2020, Amazon Web Services, Inc. or its Affiliates. 0

    50 100 150 200 1 2 4 6 8 10 セッション数を増やしてもスループットが飽和
  49. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    Elastic Inference 低い推論コスト アクセラレーターごと 1 - 32 TFLOPS 需要に合わせた キャパシティ TensorFlow, Apache MXNet, PyTorch (coming soon) をサポート Amazon EC2, Amazon SageMaker と統合 単精度・混合精度演算 深層学習の推論コストを最大75%削減
  50. © 2020, Amazon Web Services, Inc. or its Affiliates. 機械学習

    推論用プロセッサ AWS Inferentia • AWS による独自設計推論プロセッサ • 4 Neuron コア / チップ • チップ当たり最大128 TOPS • (2,000 TOPS @inf1.24xlarge) • 2ステージ メモリ階層 • 大容量オンチップ キャッシュと DRAM メモリ • FP16, BF16, INT8 データタイプをサポート • FP32 で構築された学習モデルを BF16 で実行可能 • 高速チップ間通信 Inferentia Neuron コア cache Neuron コア cache メモリ Neuron コア cache Neuron コア cache メモリ メモリ メモリ
  51. © 2020, Amazon Web Services, Inc. or its Affiliates. Neuronコア

    パイプライン - 大規模モデルを低遅延で推論 • 大規模モデルを低遅延で推論 • Neuron コア間、チップ間をパイプラインモードで接続することによ り、大規模モデルを各オンチップキャッシュメモリ上に展開し、 高スループット・低レイテンシを実現 CACHE Memory CACHE Memory CACHE Memory CACHE Memory Neuron コア パイプライン
  52. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    Neuron SDK https://github.com/aws/aws-neuron-sdk コンパイル Neuron コンパイラ (NCC) NEFF を出⼒ Neuron バイナ リ (NEFF) デプロイ Neuron ランタイム (NRT) プロファイル Neuron ツール C:\>code --version 1.1.1
  53. © 2020, Amazon Web Services, Inc. or its Affiliates. Multi-Model

    Endpoint • 単一のエンドポイントの裏に複数のモデルを置くことができる • 動的にモデルを追加することも可能 S3 model storage tokyo.tar.gz kanagawa.tar.gz osaka.tar.gz aichi.tar.gz S3://bucket/our-endpoint-models/ S3://bucket/our-endpoint-models Load
  54. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    Augmented AI (A2I) 推論結果の人間によるレビューを簡単に実現 人間によるレビューの ワークフローを簡単に実装 事前定義された ワークフローと UI で 市場投入を加速 複数の ワーカー選択肢 カスタム ML モデルとの統合 精度向上のための 事前構築された アルゴリズム
  55. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    Augmented AI (A2I) の仕組み クライアントアプリが 入力データを送る AWS AI Service あるいはカスタム ML モデルが推論を実行 結果は S3 に保存 1 2 6 4 確信度の低い推論結果は 人間のレビューに送られる 3 確信度が高い推論結果は 即座にクライアントに返される 5 A2I の統合アルゴリズムで 複数人のレビュー結果を統合 クライアント アプリケーション
  56. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker を使ってみましょう Amazon SageMaker Studio 機械学習のための統合開発環境 (IDE) Amazon SageMaker Autopilot ML モデルを自動で構築・トレーニング Amazon SageMaker Model Monitor コンセプトドリフトの自動検知 Amazon SageMaker Notebooks 1クリックで利用できるノートブック Amazon SageMaker Experiments 各ステップで取得・管理・比較 Amazon SageMaker Neo 一度のトレーニングでどこへでもデプロイ AWS Marketplace 構築済アルゴリズム・モデル・データ Amazon SageMaker Debugger トレーニングのデバッグ・プロファイリング Automatic Model Tuning 1クリックハイパーパラメータ探索 Amazon Augmented AI 推論結果に人手のレビューを追加 Amazon SageMaker GroundTruth トレーニングデータセットの構築 準備 構築 トレーニング・チューニング デプロイ・管理 Processing Job Python, Spark でデータ前処理 One Click Training 教師あり・教師なし・強化学習 One Click Deployment リアルタイム・バッチ・複数モデル Amazon Elastic Inference オートスケーリングで最大75%コスト削減
  57. © 2020, Amazon Web Services, Inc. or its Affiliates. SageMaker

    Studio (IDE) に SSO/IAM でログイン
  58. © 2020, Amazon Web Services, Inc. or its Affiliates. Notebook

    インスタンス (Jupyter Notebook/Lab) も使えます • インスタンスタイプを選んで立ち上げるだけ • フレームワークがプリインストール • ノートブックインスタンス作成・起動時にスクリプト実行 • https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples
  59. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office. 開発 データは予め Amazon S3 にアップロード。 やりやすい方法で: • SageMaker Python SDK で簡単に • sagemaker_session.upload_data( path='data', key_prefix='data/DEMO') • AWS CLI や AWS SDK (Python だと boto3) などでも • aws s3 sync <source> <dest> • GUI (マネージメントコンソール) からでも
  60. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker 開発 Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.
  61. © 2020, Amazon Web Services, Inc. or its Affiliates. 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. ビルド済みのコンテナイメージが 予め用意されている
  62. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker 開発 学習 Amazon EC2 P3 Instances Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office. トレーニングでのメリット: • API 経由で学習用インスタ ンスを起動、 学習が完了すると自動停止 • 高性能なインスタンスを 秒課金で、 簡単にコスト削減 • 指定した数のインスタンス を同時起動、 分散学習も容易
  63. © 2020, Amazon Web Services, Inc. or its Affiliates. Amazon

    SageMaker 開発 学習 Amazon EC2 P3 Instances Jupyter Notebook/Lab Amazon S3 The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.
  64. © 2020, Amazon Web Services, Inc. or its Affiliates. 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.
  65. © 2020, Amazon Web Services, Inc. or its Affiliates. ワークフロー構築を助けるツール

    • SageMaker Python SDK • https://github.com/aws/sagemaker-python-sdk/ • AWS Step Functions Data Science SDK • https://github.com/aws/aws-step-functions-data-science-sdk-python • Docker コンテナによる環境統一 • ビルド済みコンテナ (対応フレームワークのバージョン) は上記 URL の README • Git レポジトリとの統合
  66. © 2020, Amazon Web Services, Inc. or its Affiliates. SageMaker

    Python SDK import sagemaker from sagemaker.pytorch import PyTorch # 各フレームワークに対応した Estimator クラス estimator = PyTorch("train.py", # トレーニングスクリプトなどを指定して初期化 role=sagemaker.get_execution_role(), train_instance_count=1, train_instance_type="ml.p3.2xlarge", framework_version="1.5.0")
  67. © 2020, Amazon Web Services, Inc. or its Affiliates. SageMaker

    Python SDK import sagemaker from sagemaker.pytorch import PyTorch # 各フレームワークに対応した Estimator クラス estimator = PyTorch("train.py", # トレーニングスクリプトなどを指定して初期化 role=sagemaker.get_execution_role(), train_instance_count=1, train_instance_type="ml.p3.2xlarge", framework_version="1.5.0") estimator.fit("s3://mybucket/data/train") # fit でトレーニング
  68. © 2020, Amazon Web Services, Inc. or its Affiliates. SageMaker

    Python SDK import sagemaker from sagemaker.pytorch import PyTorch # 各フレームワークに対応した Estimator クラス estimator = PyTorch("train.py", # トレーニングスクリプトなどを指定して初期化 role=sagemaker.get_execution_role(), train_instance_count=1, train_instance_type="ml.p3.2xlarge", framework_version="1.5.0") estimator.fit("s3://mybucket/data/train") # fit でトレーニング predictor = estimator.deploy(initial_instance_count=2, # 2以上にすると Multi-AZ instance_type="ml.m5.xlarge") # deploy でエンドポイント作成
  69. © 2020, Amazon Web Services, Inc. or its Affiliates. 「コンテナ」による環境の統⼀化

    CUDA, cuDNN トレーニングスクリプト train.py Deep Learning Framework スクリプトの実行に必要なものを コードで記述し一箇所にまとめる Docker image
  70. © 2020, Amazon Web Services, Inc. or its Affiliates. コードの書き換え

    (Script Mode, File Mode) 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() … (以下省略) train.py コンテナ内のパス (環境変数の中身): /opt/ml/input/data/train /opt/ml/input/data/test /opt/ml/model 環境変数 から取得 Script Mode では普通の Python スクリプトとして実行される。 はじめに環境変数からデータ・モデル入出力のパスを取得して、 そこを読み書きするように train.py を書く。推論用にモデルを読み込む。
  71. © 2020, Amazon Web Services, Inc. or its Affiliates. データ入力

    • Amazon S3 • FILE モード (Default): データをダウンロードしてから学習開始 • S3 からデータダウンロード • トレーニング開始 • PIPE モード: ストリーミングでダウンロードしながら非同期に学習を実施 • Epoch ごとに channel を作ってストリーミングでデータを読むことによって ファイル転送のオーバーヘッドを軽減 • TensorFlow, MXNet のみ対応 • ブログ「Amazon SageMaker でより速いパイプモードを使用してモデルの トレーニングを高速化する」 • Amazon EFS • Amazon FSx for Lustre
  72. © 2020, Amazon Web Services, Inc. or its Affiliates. Git

    レポジトリとの統合 • Notebook インスタンス立ち上げ時に紐付けが可能 • Public レポジトリの clone • Private レポジトリの認証情報を AWS Secrets Manager に保管して レポジトリを登録 • Git レポジトリのコードから直接トレーニングを実行する事も可能 • ブログ「Amazon SageMaker Python SDK で Git 統合を利用可能」 git_config = {'repo': 'https://github.com/awslabs/amazon-sagemaker-examples.git’, 'branch': 'training-scripts’} estimator = TensorFlow(entry_point='train.py', source_dir='char-rnn-tensorflow', git_config=git_config, train_instance_type=train_instance_type, train_instance_count=1, role=sagemaker.get_execution_role(), framework_version=‘1.14', py_version='py3', script_mode=True) • Jupyter Lab で Notebook の diff を取れる • SageMaker Notebooks now support diffing
  73. © 2020, Amazon Web Services, Inc. or its Affiliates. 機械学習の一般的なワークフロー

    データ収集 クリーン アップ データ変換・ ラベル付け トレーニング モデル評価 本番環境に デプロイ 推論・監視
  74. © 2020, Amazon Web Services, Inc. or its Affiliates. トレーニングジョブとモデルの管理

    • トレーニングジョブには 以下のような情報が記録される • ジョブ名 • 作成時間 • トレーニング時間 • インスタンスタイプ・数 • コンテナイメージ (レポジトリ URI) • 入力データ • チャネル名・型・S3 URI など • 出力 • 学習済みモデルとそのS3 パス • ハイパーパラメータ • メトリクス • ジョブを検索可能 • アルゴリズム名 • イメージ • データ URI • 開始・終了時間 メトリクスでソート、 ベストなモデルを取得し、 その時の実験環境を再現 することが可能
  75. © 2020, Amazon Web Services, Inc. or its Affiliates. 継続的な機械学習のワークフロー

    • トレーニングからデプロイまでのワークフローを自動化 • AWS Step Functions, Apache Airflow • 継続的なモデルのアップデートを実現 • スケジュール / イベントトリガーによる増分学習 • とにかく自動化、自動化、自動化しきれないところは半自動化 • Human-in-the-Loop
  76. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    Step Functions • JSON ベースの言語でステートマシンを記述できるマネージドサービス • AWS Step Functions Data Science SDK • AWS Lambda をはじめとした各サービスに対応 • CloudWatch Event でスケジュール実行やイベントトリガーが可能 Start End Train Deploy Prepare data AWS Glue Amazon SageMaker Amazon SageMaker Amazon CloudWatch Events (Schedule / event trigger)
  77. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    Step Functions workflow 機械学習パイプラインの構築例 Test data Train data Data Scientists/ Developers Git webhook docker push AWS Glue Amazon S3 (data) Amazon SageMaker Training Job / HPO AWS CodeCommit or 3rd party Git repository Amazon S3 (raw data) Amazon Elastic Container Registry (ECR) AWS CodeBuild Endpoint https://aws.amazon.com/blogs/machine-learning/automated-and-continuous-deployment-of-amazon-sagemaker-models-with-aws-step-functions/ Amazon SageMaker Batch Transform / Endpoint deploy Amazon S3 (trained model) git push
  78. © 2020, Amazon Web Services, Inc. or its Affiliates. Apache

    Airflow にも SageMaker Operator が用意されている • Python で記述した DAG (有向非巡回グラフ) でワークフロー管理 • Amazon SageMaker とのインテグレーションも • EC2 + RDS は別途必要 (マネージドサービスではない) Raw data Cleaned data Train data Test data Amazon SageMaker Training / HPO Model artifact Amazon SageMaker Batch transform Airflow DAG Filter long-tailed data sparse data format → RecordIO protobuf Analyze model performance based on test data Operator PythonOperator PythonOperator SageMakerTrainOperator/ SageMakerTransformOperator PythonOperator SageMakerTuningOperator Blog: https://aws.amazon.com/jp/blogs/news/build-end-to-end-machine-learning-workflows-with-amazon-sagemaker-and-apache-airflow/ Prediction results
  79. © 2020, Amazon Web Services, Inc. or its Affiliates. まとめ

    • Amazon SageMaker で機械学習のワークフローを構築 • 開発・トレーニング・デプロイの自然な流れを整備 • SageMaker Python SDK と Docker コンテナ • ワークフロー自動化で継続的なモデル更新と運用負荷の削減 • AWS Step Functions や Apache Airflow などのワークフロー管理ツールで • Amazon SageMaker Ground Truth によるアノテーションも • 効率の良い推論のためシナリオに沿った適切な選択肢を選ぶ • リアルタイムかバッチか、遅延はどれくらい許容できるかによって Batch Transform Job, Amazon Elastic Inference, Amazon SageMaker Neo
  80. © 2020, Amazon Web Services, Inc. or its Affiliates. References

    • Event info [Web] • Amazon SageMaker 事例祭り[Blogs] • ML@Loft [Blogs] • AWS Startup Day • スタートアップのための機械学習入門 [Slides] • 機械学習基盤を作るのに Kubernetes か SageMaker で迷っている人へ [Slides] • AWS ブログ: Keras [Blog#1, #2], Apache Airflow [Blog], Kubeflow [Blog], • HPO: SageMaker default [Blog], Optuna [Blog] • オンプレ資産の GPU がある人 [Blog] • SageMaker Containers [GitHub] • Jupyter 以外のエディター/IDE 使いたい場合は、その環境に [SageMaker Python SDK] を入れて API 叩く
  81. © 2020, Amazon Web Services, Inc. or its Affiliates. これまでの

    ML@Loft イベント内容 https://ml-loft.connpass.com/ これまでのイベント内容は登壇者のスライド付きで 開催報告ブログにまとめてあります https://aws.amazon.com/jp/blogs/startup/tag/mlloft/ #1. MLOps #2. MLOps #3. レコメンド #4. Edge #5. NLP #6. MLPP との共催, 参加者の方の Blog #7. ユーザー分析 #8. 量子コンピュータ #9. Deep Learning フレームワークと推論 #MLLoft