機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon...

47
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. 機械学習基盤を作るのに Kubernetes SageMaker で迷っている人へ Yoshitaka Haribara Tech05 Startup Solutions Architect Amazon Web Services Japan

Transcript of 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon...

Page 1: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

機械学習基盤を作るのにKubernetes か SageMaker で迷っている人へYoshitaka Haribara

T e c h 0 5

Startup Solutions ArchitectAmazon Web Services Japan

Page 2: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

⾃⼰紹介• 針原 佳貴 (はりばら よしたか) • 博⼠ (情報理⼯学)• @_hariby

hariby• https://speakerdeck.com/hariby/

• Startup Solutions Architect• スタートアップの技術⽀援・機械学習導⼊⽀援• 最近は量⼦コンピュータの相談も• 好きなサービスは Amazon SageMaker

Page 3: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

このセッションの⽬的職業柄、最近「機械学習基盤を Kubernetes (Amazon EKS) で作るかAmazon SageMaker で作るか迷っています︕」という質問を受けるのでその答えを整理します

Page 4: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 5: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

なぜ Kubernetes で機械学習を⾏うのか︖• ライブラリ・依存関係の管理をコンテナで容易に• 環境の統⼀化と、再現性・追跡可能性

• トレーニング・デプロイの際に宣⾔的にインフラ環境をコントロールしたい• 環境のコード化とインフラの再現性

• ML パイプラインを構築するためのOpen Source エコシステム• Kubeflow Pipelines, MLflow, Metaflow,...• Custom Resource Definition (CRD) を使えば⾃分で書ける

Page 6: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

「コンテナ」による環境の統⼀化

CUDA, cuDNN

トレーニングスクリプトtrain.py

Deep Learning Framework

再現性・追跡可能性の担保

Docker image

Page 7: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 8: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon Elastic Kubernetes Service (EKS)

Page 9: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Upstream Kubernetes標準的な Kubernetes API を採⽤。コミュニティによるツールと協調。

Highly availableプロダクション環境向けに構築、複数 AZ にまたがり⾼い可⽤性。

IntegratedAWS エコシステムとの統合: VPC Networking, Elastic Load Balancing, IAM Permissions, CloudWatch など。

Amazon Elastic Kubernetes Service (EKS)

Page 10: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

構成例: Kubeflow on Amazon EKS

Amazon EKS Workshop > Advanced > Machine Learning using Kubeflow(kfctl build でコケたら https://github.com/aws-samples/eks-workshop/issues/639 )

Amazon Elastic Kubernetes Service(EKS)

Amazon Elastic Container Registry (ECR)

Docker images for training/serving

Pod PodPod

Model serving / inferenceModel training

Worker nodes

Spawn

Page 11: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Kubeflow ダッシュボード

Page 12: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Notebook の作成

Page 13: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

数分で⽴ち上がり接続すると

Page 14: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

⾒慣れた Jupyter Notebook の画⾯が

Page 15: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Kubeflow fairing from kubeflow.fairing import TrainJob

train_job = TrainJob(HousingServe,

input_files=['ames_dataset/train.csv', "requirements.txt"],

docker_registry=DOCKER_REGISTRY,

backend=BackendClass(build_context_source=BuildContext))

train_job.submit()

from kubeflow.fairing import PredictionEndpoint

endpoint = PredictionEndpoint(HousingServe,

input_files=['trained_ames_model.dat', "requirements.txt"],

docker_registry=DOCKER_REGISTRY,

service_type='ClusterIP',

backend=BackendClass(build_context_source=BuildContext))

endpoint.create()

Page 16: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

スタートアップで割とよくある状況• Kubeflow on Amazon EKS などが作れて運⽤できるなら OK • Kubernetes / Kubeflow のバージョンアップ

• モデルを作ってデプロイできる環境があれば、それらがどう動いてるかは必ずしも重要ではない• 例えば Kubeflow 的な何かがあれば、ツールがどう動いているか⾃体は興味ない

(Kubeflow はあくまでも⼀例です)

• 多くの機械学習エンジニアにとって基盤の運⽤は結構つらいことが多い• 機械学習モデル構築と、インフラ・ワークフローエンジンを触るスキルセットの乖離

• あえて⾃分で作らない、という選択肢も必要

Page 17: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 18: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

Amazon SageMaker

トレーニングとパラメーターチューニング

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Page 19: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Amazon SageMaker Ground Truth

トレーニングとパラメーターチューニング

Amazon SageMaker

Page 20: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

本番環境での運⽤とスケーリング

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

Amazon SageMaker Ground Truth

AWS Marketplace forMachine Learning

トレーニングとパラメーターチューニング

• k-means クラスタリング• Factorization Machines

(レコメンド)• DeepAR (時系列予測)• BlazingText (Word2Vec)• Object2Vec• XGBoost

• 画像分類・物体検出• Seq2Seq• LDA / Neural Topic Modelling

(トピックモデル)• 主成分分析• 線型学習器 (回帰 / 分類) など

Amazon SageMaker

Page 21: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Amazon EC2 P3 Instances

Managed Spot TrainingAmazon SageMaker

Ground TruthAWS Marketplace for

Machine Learning

トレーニングとパラメーターチューニング

Amazon SageMaker

Page 22: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

トレーニングとパラメーターチューニング

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Amazon EC2 P3 Instances

Managed Spot TrainingAmazon SageMaker

Ground TruthAWS Marketplace for

Machine Learning

Amazon SageMaker

Page 23: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

トレーニングとパラメーターチューニング

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Amazon EC2 P3 Instances

Managed Spot TrainingAmazon SageMaker

Ground TruthAWS Marketplace for

Machine Learning Amazon SageMaker Neo

Amazon SageMaker

Page 24: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

トレーニングとパラメーターチューニング

あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ

トレーニング環境の

整備と運⽤

本番環境へのデプロイ

学習データの収集と準備

ML アルゴリズムの

選択と最適化

123

本番環境での運⽤とスケーリング

Amazon EC2 P3 Instances

Managed Spot TrainingAmazon SageMaker

Ground Truth

Amazon Elastic Inference

Multi-Model EndpointAWS Marketplace for

Machine Learning Amazon SageMaker Neo

Amazon SageMaker

Page 25: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker re:Invnet 2019 でのアップデート

Amazon SageMaker Studio

Amazon SageMaker Notebooks(Preview) Amazon SageMaker

Debugger

Amazon SageMaker Experiments

Amazon SageMaker Model Monitor

Amazon SageMaker Autopilot

Page 26: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

開発環境

• インスタンスタイプを選んで⽴ち上げるだけ• フレームワークはプリインストール• ノートブックインスタンス作成・起動時にスクリプト実⾏も• https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-

config-samples

Jupyter Notebook/Lab を簡単に使える

Page 27: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

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 (マネージメントコンソール) からでも

Page 28: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker

開発

Jupyter Notebook/Lab

Amazon S3

The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Page 29: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

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.

ビルド済みのコンテナイメージが予め用意されている

Page 30: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker

開発 学習

Amazon EC2 P3 InstancesJupyter Notebook/Lab

Amazon S3

The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

トレーニングでのメリット:• API 経由で学習⽤インスタンスを起動、学習が完了すると⾃動停⽌

• ⾼性能なインスタンスを秒課⾦でスポットインスタンスも使えて、簡単にコスト削減

• 指定した数のインスタンスを同時起動、分散学習も容易

Page 31: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker

開発 学習

Amazon EC2 P3 InstancesJupyter Notebook/Lab

Amazon S3

The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Page 32: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker

開発 学習 推論

Amazon EC2 P3 InstancesJupyter Notebook/Lab

Endpoint/Batch transform

Amazon S3

Amazon ECR

The Jupyter Trademark is registered with the U.S. Patent & Trademark Office.

Page 33: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Amazon SageMaker は⾒⽅を変えると機械学習に特化したコンテナ オーケストレーションサービスという理解も

• 環境は Docker コンテナとして⽤意• トレーニング・デプロイ先の環境はインスタンスタイプ・台数を選ぶ• Input パラメータとしてインスタンスタイプやトレーニングデータの path を指定、

それ⾃体は Kubernetes で書くのとそれほど変わらないはず

• 過去のトレーニングジョブの履歴・⽣成物が残るため、実験管理も容易

Page 34: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

ワークフロー構築を助けるツール• Docker コンテナによる環境統⼀• ビルド済みコンテナ or コンテナ持ち込み

• 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

Page 35: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

SageMaker Python SDK

import sagemaker

Page 36: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

SageMaker Python SDK

import sagemaker

from sagemaker.mxnet import MXNet # 各フレームワーク⽤の Estimator クラスestimator = MXNet("train.py", # トレーニングスクリプトなどを指定して初期化

role=sagemaker.get_execution_role(),

train_instance_count=1,

train_instance_type="ml.p3.2xlarge",

framework_version="1.6.0")

Page 37: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

SageMaker Python SDK

import sagemaker

from sagemaker.mxnet import MXNet # 各フレームワーク⽤の Estimator クラスestimator = MXNet("train.py", # トレーニングスクリプトなどを指定して初期化

role=sagemaker.get_execution_role(),

train_instance_count=1,

train_instance_type="ml.p3.2xlarge",

framework_version="1.6.0")

estimator.fit("s3://mybucket/data/train") # fit でトレーニング

Page 38: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

SageMaker Python SDK

import sagemaker

from sagemaker.mxnet import MXNet # 各フレームワーク⽤の Estimator クラスestimator = MXNet("train.py", # トレーニングスクリプトなどを指定して初期化

role=sagemaker.get_execution_role(),

train_instance_count=1,

train_instance_type="ml.p3.2xlarge",

framework_version="1.6.0")

estimator.fit("s3://mybucket/data/train") # fit でトレーニング

predictor = estimator.deploy(initial_instance_count=2, # 2以上にすると Multi-AZ

instance_type="ml.m5.xlarge") # deploy でエンドポイント作成

Page 39: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

EKS (Kubernetes) か SageMaker か• トータルのコスト (TCO)• トレーニング・推論に使う CPU/GPU • 基盤⾃体の運⽤負荷

• セキュリティ・コンプライアンス・ガバナンス• B-to-B で提供する場合は特に重要• どういう観点が必要かは AWS Well-Architected Framework のセキュリティの柱を参照

⼀般的論として、⾃由度を⼿に⼊れるためには運⽤負荷の増加を受け⼊れる必要がある

Page 40: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 41: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

TCO の考え⽅: 4種類のコストCapability 考慮事項

インスタンスのプロビジョン・運⽤

• インスタンスのプロビジョン、環境構築の容易さ• パッチ適⽤等のメンテナンス• スポットインスタンスなどの活⽤によるコスト削減

セキュリティ・コンプライアンスの管理

• 転送時・保管時のデータ暗号化• 権限管理• 証跡管理• SOC, PCI, ISO, FedRAMP, HIPAAなどのコンプライアンス対応

インフラパフォーマンス最適化

• トレーニングジョブ毎の独⽴したパフォーマンス• 分散学習に適したストレージやネットワークのチューニング• 推論のための最適なインフラ選択とチューニング

⾼可⽤性インフラ管理• データやモデル成果物の可⽤性・耐久性• トレーニング・推論環境のモニタリング、ログの取得や管理• 推論環境の可⽤性 (Multi-AZ 対応やオートスケーリング)

Page 42: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

TCO の考え⽅: Amazon SageMaker との⽐較• ML インフラストラクチャ• 運⽤コスト組織が⼩さいうちは Amazon SageMaker を使った⽅が得

組織規模 Amazon SageMaker でのコスト削減⾃社運⽤Kubernetes (EKS) との⽐較

⼩ 5 data scientists -90%中 15 data scientists -85%⼤ 50 data scientists -65%巨⼤ 250 data scientists -54%

https://pages.awscloud.com/NAMER-ln-GC-400-machine-learning-sagemaker-tco-learn-ty.html

Page 43: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

インスタンスの管理とコスト• SageMaker • トレーニングごとにインスタンスを⽴ち上げ、終わったら勝⼿に落ちる

• Kubernetes • クラスタを共有するので、無駄なコストをかけないためには Cluster Autoscaler などで

ジョブが流れない時にはインスタンスを落とすようにする必要がある

GPU の利⽤率が低い時間帯がある場合、インスタンスの上げ下げがコストに⼤きく効いてくる

Page 44: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

SageMaker Operator for Kubernetes

• SageMaker ⾃体は便利そうだが既存 Kubernetes クラスターがあり、SageMaker API や SDK の使い⽅を覚えるのが⾯倒な場合などに

• Kubernetes でパイプラインとワークフローの作成・ML ワークロードのオーケストレーションを⾏いながらも部分的にSageMaker でモデルのトレーニング・チューニング・デプロイ

• SageMaker 側でインフラを完全にマネージ• Managed Spot Training や分散学習などの機能も利⽤可能

Kubernetes から Amazon SageMaker を呼びモデルをトレーニング・チューニング・デプロイ

Amazon SageMakerKubernetes

Page 45: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

選択肢• Kubernetes を Amazon EKS で運⽤• Kubernetes に慣れている企業• Kubeflow を使った構成例を紹介した

• Kubernetes から Amazon SageMaker を呼ぶ (mix)• 既存 Kubernetes クラスターから、機械学習部分だけ切り出し• SageMaker Operator for Kubernetes で呼ぶ

• Amazon SageMaker を使う• TCO の⾯で多くのスタートアップにとって合理的• 環境は Docker コンテナで管理できる

Page 46: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

まとめ• 機械学習ワークロードをコンテナ管理するメリットは多⼤にある• 環境の統⼀化・再現性・追跡可能性

• オーケストレーションはいくつかの選択肢がある• TCO も考慮して最適なものを選択、多くの場合は Amazon SageMaker が第⼀候補

• ツール選定は開発速度にも影響• 選択肢が多すぎて迷ったら AWS の Solutions Architect に相談

Page 47: 機械学習基盤を作るのに Kubernetes かSageMaker で迷って …TCO の考え⽅: Amazon SageMaker との⽐較 •ML インフラストラクチャ •運⽤コスト 組織が⼩さいうちはAmazon

Thank you!

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Yoshitaka Haribara@_hariby