Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
西岡 賢一郎
PPTX, PDF
1,308 views
Amazon SageMakerでカスタムコンテナを使った学習
機械学習の社会実装勉強会第14回(https://machine-learning-workshop.connpass.com/event/257236/)で発表した資料です。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
Most read
10
/ 21
11
/ 21
12
/ 21
Most read
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
Most read
18
/ 21
19
/ 21
20
/ 21
21
/ 21
Recommended
PPTX
Amazon AthenaでSageMakerを使った推論
by
西岡 賢一郎
PPTX
Amazon SageMaker ML Governance 3つの機能紹介
by
西岡 賢一郎
PDF
AWSではじめるMLOps
by
MariOhbuchi
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
by
Amazon Web Services Japan
PPTX
AWSで作る分析基盤
by
Yu Otsubo
PPTX
SageMakerを使った異常検知
by
Ryohei Yamaguchi
PDF
20190522 AWS Black Belt Online Seminar AWS Step Functions
by
Amazon Web Services Japan
PPTX
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
by
西岡 賢一郎
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
by
Yusuke Suzuki
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
PPTX
MLOps入門
by
Hiro Mura
PDF
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
by
Amazon Web Services Japan
PDF
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
PDF
Amazon Athena 初心者向けハンズオン
by
Amazon Web Services Japan
PDF
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
by
Amazon Web Services Japan
PDF
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
PDF
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
by
Amazon Web Services Japan
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
by
Amazon Web Services Japan
PDF
Amazon SageMaker で始める機械学習
by
Amazon Web Services Japan
PDF
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
by
Amazon Web Services Japan
PDF
20190723 AWS Black Belt Online Seminar AWS CloudHSM
by
Amazon Web Services Japan
PDF
20200826 AWS Black Belt Online Seminar AWS CloudFormation
by
Amazon Web Services Japan
PPTX
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
by
西岡 賢一郎
PDF
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
by
Amazon Web Services Japan
More Related Content
PPTX
Amazon AthenaでSageMakerを使った推論
by
西岡 賢一郎
PPTX
Amazon SageMaker ML Governance 3つの機能紹介
by
西岡 賢一郎
PDF
AWSではじめるMLOps
by
MariOhbuchi
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
by
Amazon Web Services Japan
PPTX
AWSで作る分析基盤
by
Yu Otsubo
PPTX
SageMakerを使った異常検知
by
Ryohei Yamaguchi
PDF
20190522 AWS Black Belt Online Seminar AWS Step Functions
by
Amazon Web Services Japan
Amazon AthenaでSageMakerを使った推論
by
西岡 賢一郎
Amazon SageMaker ML Governance 3つの機能紹介
by
西岡 賢一郎
AWSではじめるMLOps
by
MariOhbuchi
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
20200630 AWS Black Belt Online Seminar Amazon Cognito
by
Amazon Web Services Japan
AWSで作る分析基盤
by
Yu Otsubo
SageMakerを使った異常検知
by
Ryohei Yamaguchi
20190522 AWS Black Belt Online Seminar AWS Step Functions
by
Amazon Web Services Japan
What's hot
PPTX
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
by
西岡 賢一郎
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
by
Yusuke Suzuki
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
PPTX
MLOps入門
by
Hiro Mura
PDF
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
by
Amazon Web Services Japan
PDF
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
PDF
Amazon Athena 初心者向けハンズオン
by
Amazon Web Services Japan
PDF
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
by
Amazon Web Services Japan
PDF
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
PDF
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
by
Amazon Web Services Japan
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
by
Amazon Web Services Japan
PDF
Amazon SageMaker で始める機械学習
by
Amazon Web Services Japan
PDF
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
by
Amazon Web Services Japan
PDF
20190723 AWS Black Belt Online Seminar AWS CloudHSM
by
Amazon Web Services Japan
PDF
20200826 AWS Black Belt Online Seminar AWS CloudFormation
by
Amazon Web Services Japan
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
by
西岡 賢一郎
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
by
Yusuke Suzuki
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
Serverless時代のJavaについて
by
Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
MLOps入門
by
Hiro Mura
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
by
Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
Amazon Athena 初心者向けハンズオン
by
Amazon Web Services Japan
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
by
Amazon Web Services Japan
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
by
Amazon Web Services Japan
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
by
Amazon Web Services Japan
Amazon SageMaker で始める機械学習
by
Amazon Web Services Japan
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
by
Amazon Web Services Japan
20190723 AWS Black Belt Online Seminar AWS CloudHSM
by
Amazon Web Services Japan
20200826 AWS Black Belt Online Seminar AWS CloudFormation
by
Amazon Web Services Japan
Similar to Amazon SageMakerでカスタムコンテナを使った学習
PPTX
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
by
西岡 賢一郎
PDF
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
by
Amazon Web Services Japan
PPTX
機械学習の特徴量を管理するAmazon SageMaker Feature Store
by
西岡 賢一郎
PPTX
Amazon SageMaker Studio Lab紹介
by
西岡 賢一郎
PPTX
機械学習プラットフォーム5つの課題とAmazon SageMakerの4つの利点
by
西岡 賢一郎
PPTX
Amazon SageMaker Canvasを使ったノーコード機械学習
by
西岡 賢一郎
PDF
大規模並列実験を支えるクラウドサービスと基盤技術
by
RyuichiKanoh
PDF
Amazon SageMaker Unified Studioを触ってみた (20250129)
by
NTTDOCOMO-ServiceInnovation
PPTX
AWSで実践する機械学習
by
Core Concept Technologies
PPTX
Amazon SageMakerでゼロからはじめる機械学習入門
by
__john_smith__
PDF
[CTO Night & Day 2019] ML services: MLOps #ctonight
by
Amazon Web Services Japan
PPTX
ML Sagemaker Dev.IO
by
__john_smith__
PDF
Transfer Learning & API Azure
by
Yuki Hattori
PDF
JAWSUG20171220
by
陽平 山口
PDF
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
by
Toshihiko Yamakami
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
by
西岡 賢一郎
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
by
Amazon Web Services Japan
機械学習の特徴量を管理するAmazon SageMaker Feature Store
by
西岡 賢一郎
Amazon SageMaker Studio Lab紹介
by
西岡 賢一郎
機械学習プラットフォーム5つの課題とAmazon SageMakerの4つの利点
by
西岡 賢一郎
Amazon SageMaker Canvasを使ったノーコード機械学習
by
西岡 賢一郎
大規模並列実験を支えるクラウドサービスと基盤技術
by
RyuichiKanoh
Amazon SageMaker Unified Studioを触ってみた (20250129)
by
NTTDOCOMO-ServiceInnovation
AWSで実践する機械学習
by
Core Concept Technologies
Amazon SageMakerでゼロからはじめる機械学習入門
by
__john_smith__
[CTO Night & Day 2019] ML services: MLOps #ctonight
by
Amazon Web Services Japan
ML Sagemaker Dev.IO
by
__john_smith__
Transfer Learning & API Azure
by
Yuki Hattori
JAWSUG20171220
by
陽平 山口
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
by
Toshihiko Yamakami
More from 西岡 賢一郎
PPTX
Amazon SageMakerのNotebookからJobを作成する
by
西岡 賢一郎
PPTX
AutoGluonではじめるAutoML
by
西岡 賢一郎
PPTX
XAI (説明可能なAI) の必要性
by
西岡 賢一郎
PPTX
H2Oを使ったノーコードのAutoML
by
西岡 賢一郎
PPTX
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
by
西岡 賢一郎
PPTX
TorchDataチュートリアル解説
by
西岡 賢一郎
PPTX
機械学習の技術的負債
by
西岡 賢一郎
PPTX
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
by
西岡 賢一郎
PPTX
H2O Waveを使ったAIアプリケーション作成入門
by
西岡 賢一郎
PPTX
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
by
西岡 賢一郎
PPTX
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
by
西岡 賢一郎
PPTX
人間の意思決定を機械学習でモデル化できるか
by
西岡 賢一郎
PPTX
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
by
西岡 賢一郎
PPTX
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
by
西岡 賢一郎
PPTX
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
by
西岡 賢一郎
PPTX
リモートワークで意識すべき7つのこと
by
西岡 賢一郎
PPTX
Amazon SageMaker JumpStart
by
西岡 賢一郎
PPTX
未来のカタチ x AI
by
西岡 賢一郎
PPTX
ストリートビューから地域の豊かさを推定
by
西岡 賢一郎
PPTX
リモートワークで知っておきたい コミュニケーション時の過大な期待
by
西岡 賢一郎
Amazon SageMakerのNotebookからJobを作成する
by
西岡 賢一郎
AutoGluonではじめるAutoML
by
西岡 賢一郎
XAI (説明可能なAI) の必要性
by
西岡 賢一郎
H2Oを使ったノーコードのAutoML
by
西岡 賢一郎
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
by
西岡 賢一郎
TorchDataチュートリアル解説
by
西岡 賢一郎
機械学習の技術的負債
by
西岡 賢一郎
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
by
西岡 賢一郎
H2O Waveを使ったAIアプリケーション作成入門
by
西岡 賢一郎
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
by
西岡 賢一郎
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
by
西岡 賢一郎
人間の意思決定を機械学習でモデル化できるか
by
西岡 賢一郎
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
by
西岡 賢一郎
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
by
西岡 賢一郎
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
by
西岡 賢一郎
リモートワークで意識すべき7つのこと
by
西岡 賢一郎
Amazon SageMaker JumpStart
by
西岡 賢一郎
未来のカタチ x AI
by
西岡 賢一郎
ストリートビューから地域の豊かさを推定
by
西岡 賢一郎
リモートワークで知っておきたい コミュニケーション時の過大な期待
by
西岡 賢一郎
Amazon SageMakerでカスタムコンテナを使った学習
1.
Amazon SageMakerでカスタムコンテナを使った学習Training Toolkitを使った実装2022/08/27
第14回勉強会
2.
自己紹介● 名前: 西岡
賢一郎○ Twitter: @ken_nishi○ note: 西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro)○ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル(https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg)● 経歴○ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得○ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社トライディアを設立○ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職○ CDPのスタートアップと株式会社データインフォームドの2つに所属○ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
3.
今回のお話● カスタムコンテナ● sagemaker-training-toolkit●
SageMaker上でイメージのbuild● デモ
4.
カスタムコンテナ (前回のおさらい)
5.
SageMakerのEndpoint作成フローSageMakerで学習を実施しEndpoint作成するStep1.学習 (fit)2.モデル作成3.Endpoint Config作成4.Endpoint作成
6.
トレーニングと推論のDockerイメージトレーニングと推論では別々のイメージを使うこともできる。小さいコンテナのほうが実行は早くなるが、管理コストとのバランスで決める。トレーニング用イメージ 推論用イメージ
7.
カスタムコンテナ出典: https://aws.amazon.com/jp/blogs/news/sagemaker-custom-containers-pattern-training/カスタムコンテナは以下の3種類のパターンで作成できる1. AWS
提供のコンテナイメージを拡張a. 最も簡単b. 独自ライブラリを使いたいときなど2. 独自のコンテナイメージ + SageMakerTraining Toolkita. SageMaker Training Toolkit3. スクラッチのコンテナイメージa. 非推奨b. 最も難しいc. SageMaker Training Jobの外部とデータとのやり取りの使用の理解が必要今回は、2の独自のコンテナイメージ +SageMaker Training Toolkitでカスタムコンテナを作る方法を紹介今回はこちらを紹介
8.
sagemaker-training-toolkit
9.
sagemaker-training-toolkitのイメージ作成に必要な3つのこと必ずやることは以下の3つ1. 使いたいイメージの中でpip install
sagemaker-trainingを実行2. 学習用スクリプトを /opt/ml/code下に配置3.SAGEMAKER_PROGRAM でスクリプトを指定(カスタムコンテナ構築に必要な唯一の環境変数)出典: https://github.com/aws/sagemaker-training-toolkit指定する項目が少なくて実装も簡単!
10.
https://github.com/knishioka/machine-learning-workshop/blob/main/sagemaker/sklearn_custom_ml.py学習用スクリプト train.py大きく分けて2つのパートを用意しておく1.モデルを学習しシリアライズし/opt/ml/modelに保存○ SKlearnのコンテナはカスタムスクリプトをインポートするため、間違えて実行されないようにif
__name__ == "__main__" に入れておく2.学習済みモデルを/opt/ml/modelから読み込む○ model_fnは、学習、評価、予測をサポートするすべてのロジックを含む関数学習 → シリアライズ → /opt/ml/modelに保存/opt/ml/modelからモデル読み込み学習パートと推論用のモデル読み込みを実装。推論を別のイメージにする場合は推論用の実装は不要。学習 推論
11.
コンテナ内の構造● /opt/mlすべてSageMaker用となるため、アルゴリズムが必要とするようなデータを置いてはいけない● /opt/ml/inputトレーニングジョブ実行時に利用●
/opt/ml/codeコンテナが実行するスクリプトを配置● /opt/ml/modelアルゴリズムによって生成されたモデルを書き込む● /opt/ml/outputモデル以外に保存するアーティファクトを書き込む● /opt/ml/failureトレーニングに失敗した場合、すべてのアルゴリズムの出力を書き込む出典: https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/amazon-sagemaker-toolkits.html
12.
CHANNELを理解するSM_CHANNEL_XXXのXXXがそのまま展開(Fileモード)。例えば、以下のように実行するとfit({"training": "s3://path/to/training""validation": "s3://path/to/validation","testing":
"s3://path/to/testing"})コンテナ内の以下の場所にデータが展開される● /opt/ml/input/data/training● /opt/ml/input/data/validation● /opt/ml/input/data/testingチャネル名は大文字として環境変数に設定される● SM_CHANNEL_TRAINING=/opt/ml/input/data/training● SM_CHANNEL_VALIDATION=/opt/ml/input/data/validation● SM_CHANNEL_TESTING=/opt/ml/input/data/testing
13.
SageMakerがトレーニング時に行うこと● docker run
image train を実行○ train引数によりコンテナ内のデフォルトのCMDが上書きされる● ENTRYPOINTで実行形式を指定○ 例: ENTRYPOINT ["python", "k-means-algorithm.py"]○ ENTRYPOINTで直接実行ファイルを指定することで、SageMaker APIからSIGTERMやSIGKILLのシグナルを送ることができるようになる● ハイパーパラメータで渡された値はオプションとして渡されるhyperparameters={"max_leaf_nodes": 30} python … --max_leaf_nodes 30argparseなどで読み込む
14.
SageMaker上でイメージのbuild
15.
通常のbuild● SageMakerでカスタムコンテナを使うためにはECRに作成したイメージをプッシュする必要がある● ECRにプッシュするためには、dockerコマンドだけでなくawsコマンドも使う必要があり、ステップが少し多いdocker
buildaws ecr get-loginaws ecr create-repositorydocker push実行コマンドが多い!!
16.
sm-dockerをつかったbuildsm-docker コマンドで以下の作業を一つのコマンドで実行1.Dockerfile・コード・buildspec.ymlをS3へアップロード2.CodeBuildでのイメージのbuild3.ECRへのイメージのアップロード出典: https://aws.amazon.com/blogs/machine-learning/using-the-amazon-sagemaker-studio-image-build-cli-to-build-container-images-from-your-studio-notebooks/たった一つのコマンドで多くのタスクを実行
17.
sm-dockerの使い方● SageMaker実行ロールの設定○ SageMakerで使用している実行ロールに対して、CodeBuildの信頼ポリシーを追加○
SageMakerで使用している実行ロールに対して、ECRにレポジトリを作成しイメージをプッシュできる権限を追加○ 詳しくは、Using the Amazon SageMaker Studio Image Build CLI to build container imagesfrom your Studio notebooks を参照● インストール: !pip install sagemaker-studio-image-build● イメージ作成: !sm-docker build .最初の準備は大変だが実行は圧倒的に楽!!
18.
Trust Policy追記{"Version": "2012-10-17","Statement":
[{"Effect": "Allow","Principal": {"Service": ["codebuild.amazonaws.com"]},"Action": "sts:AssumeRole"}]}codebuildを追加する
19.
Permission Policy追加{"Version": "2012-10-17","Statement":
[{"Effect": "Allow","Action": ["codebuild:DeleteProject","codebuild:CreateProject","codebuild:BatchGetBuilds","codebuild:StartBuild"],"Resource":"arn:aws:codebuild:*:*:project/sagemaker-studio*"},{"Effect": "Allow","Action": "logs:CreateLogStream","Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*"},{"Effect": "Allow","Action": ["logs:GetLogEvents","logs:PutLogEvents"],"Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*:log-stream:*"},{"Effect": "Allow","Action": "logs:CreateLogGroup","Resource": "*"},{"Effect": "Allow","Action": ["ecr:CreateRepository","ecr:BatchGetImage","ecr:CompleteLayerUpload","ecr:DescribeImages","ecr:DescribeRepositories","ecr:UploadLayerPart","ecr:ListImages","ecr:InitiateLayerUpload","ecr:BatchCheckLayerAvailability","ecr:PutImage"],"Resource": "arn:aws:ecr:*:*:repository/sagemaker-studio*"},{"Effect": "Allow","Action": "ecr:GetAuthorizationToken","Resource": "*"},{"Effect": "Allow","Action": ["s3:GetObject","s3:DeleteObject","s3:PutObject"],"Resource": "arn:aws:s3:::sagemaker-*/*"},{"Effect": "Allow","Action": ["s3:CreateBucket"],"Resource": "arn:aws:s3:::sagemaker*"},{"Effect": "Allow","Action": ["iam:GetRole","iam:ListRoles"],"Resource": "*"},{"Effect": "Allow","Action": "iam:PassRole","Resource": "arn:aws:iam::*:role/*","Condition": {"StringLikeIfExists": {"iam:PassedToService": "codebuild.amazonaws.com"}}}]}codebuildやecrやS3などの権限を追加する
20.
カスタムコンテナの使用● image_uriにECRのURIを指定● その他はSageMakerが用意しているイメージを使った場合の実装と同じimage_uri以外はいつも通りの実装
21.
デモ● SageMaker上でのイメージのビルドとカスタムコンテナを使った学習の実行● コード○
全体: https://github.com/knishioka/machine-learning-workshop/tree/main/sagemaker/custom_container_with_sagemaker-training-toolkit○ 実行用notebook: https://github.com/knishioka/machine-learning-workshop/blob/main/sagemaker/custom_container_with_sagemaker-training-toolkit/training_with_custom_container.ipynb
Editor's Notes
#3
こちらが私のプロフィールとなります。機械学習には、大学時代の研究から携わっており、自分で立ち上げたスタートアップでも機械学習を使ったサービスを提供していました。プロダクト開発チームやデータサイエンスチームの立ち上げなどもやっています。
#6
ここでは、SageMakerでどのように学習をしていくかを説明。SageMakerではECRやS3を使って学習を進めていく。ECRは学習や推論に使うイメージの取得に使われ、S3は学習データなどの入力データや学習済みモデルなどの出力に使う。fitでは学習済みモデルがS3に保存されるが、これだけだとSageMakerで学習済みモデルを使えないので、create_modelをすることにより、学習済みモデルを作る。あとは細かい話として、エンドポイントを作ることで外部から推論を実行できるようになる。
#7
こちらは、先程のフローをもう少し簡略化したもの。青い丸が解析者がやるアクション。重要な点はfitとcreate_modelがそれぞれ学習と推論のためのアクションであり、それらに対してコンテナが必要となること。つまり、学習で独自のコンテナを使うということは、fitで使うコンテナを自分で作るということになる。
#8
カスタムコンテナの作り方は3種類。1, 2, 3の順番で難易度が高くなる。まず一つ目がAWSがすでに提供しているコンテナイメージを拡張する方法。独自ライブラリを使いたい場合などはこちらで対応。2つめがSageMaker Training Toolkitを使ったもの。こちらは自分で好きなベースイメージを選ぶことができる。3つめがスクラッチで作っていくもの。こちらはTraining Jobが外部とどのようにデータをやり取りしているか知る必要があり難しい。
#10
sagemaker-training-toolkitの使い方は非常にシンプル。自分の好きなベースイメージを使ったDockerfileの中で3つの操作を指定するだけ。まず一つ目が、sagemaker-trainingのライブラリをインストールします。こちらはpipを使えばすぐにインストールできます。次に学習用の独自スクリプトを/opt/ml/code/train.pyに配置します。そして、環境変数SAGEMAKER_PROGRAMにtrain.pyを指定します。train.pyの実装は必要ですが、コンテナイメージ自体はこんなにシンプルに作ることができるようになっています。
#11
では、学習用スクリプトはどんなものかを紹介。こちらは、学習と推論両方に対応するために作ったスクリプトで、大きく分けて2つのパートに別れている。一つがname==mainとなっている部分。ここが学習データを読み込み、学習をし、学習済みモデルを保存する部分。学習モデルの保存場所は決まっていて、/opt/ml/modelに保存する。もう一つが推論のためのモデルの読み込みで、model_fn関数で定義されている。こちらは先程の/opt/ml/modelからモデルを読み込む。/opt/ml/modelは環境変数でSM_MODEL_DIRで呼び出すこともできる。
#12
コンテナ内の構造をもう少し説明。
#13
CHANNELがどのように作成されるか理解しておくことも重要。fitのときにどのように与えるかでCHANNELは変わる。training, validation, testingで与えた場合は、/opt/ml/input/data以下にそれぞれのデータが配置される。そして、環境変数SM_CHANNEL_でそれぞれのパスを取得できるようになる。
#14
最後にSageMakerがトレーニングのときに行うことを紹介。
#15
sagemaker-training-toolkitの使い方は紹介済み。sagemaker上でのイメージのbuildについて説明。
#16
イメージはbuild下だけでは使えないので、ecrにプッシュする必要がある。イメージを作ってecrにログインして、ecrにレポジトリを作って、そこにpushするという作業が必要。何回も修正するたびに作り直すのもめんどくさい。
#17
sagemaker上ではsm-dockerを使えば、面倒くさい作業を一気にやることができます。sm-dockerでbuildをすると、dockerfile, コード、buildspec.ymlなどをs3へアップロードし、codebuildでイメージをbuildし、ecrへのイメージのアップロードまでしてくれます。
#18
sm-docker自体のインストールはpip installをするだけなので簡単なのですが、実際に実行するためにはSageMakerに紐付いている実行ロールに信頼ポリシーと権限を追加する必要があります。ここが少しハードルが高い部分。IAMをいじらないといけない。ただ、この設定をしてしまえば、sm-docker buildとするだけで、簡単にイメージの作成とプッシュまで行ってくれる。
#19
詳細はあとから見てほしいが、trust policyとpermission policyを少し紹介。trust policyに関しては、codebuildのものを追加するだけ。
#20
permisson policyはもはや文字が小さくて見えないと思うが、codebuildやecr, s3などの権限を追加。policyさえ作ってしまえばいいし、サンプルとなるポリシーも公開されているので、IAMに慣れている人であれば、設定はそこまで大変ではない。
#21
最後にカスタムコンテナを使った実行のためのコードを紹介。こちらは非常に簡単で、image_uriに先程作ったECRのURIを指定するだけ。
#22
最後に簡単にデモ。
Download
[8]
ページ先頭
©2009-2025
Movatter.jp