SlideShare a Scribd company logo
Amazon SageMakerで
カスタムコンテナを使った学習
Training Toolkitを使った実装
2022/08/27 第14回勉強会
自己紹介
● 名前: 西岡 賢一郎
○ 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つに所属
○ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
今回のお話
● カスタムコンテナ
● sagemaker-training-toolkit
● SageMaker上でイメージのbuild
● デモ
カスタムコンテナ (前回のおさらい)
SageMakerのEndpoint作成フロー
SageMakerで学習を実施しEndpoint作成する
Step
1.学習 (fit)
2.モデル作成
3.Endpoint Config作成
4.Endpoint作成
トレーニングと推論のDockerイメージ
トレーニングと推論では別々のイメージを使うこともできる。
小さいコンテナのほうが実行は早くなるが、管理コストとのバランスで決める。
トレーニング用イメージ 推論用イメージ
カスタムコンテナ
出典: https://aws.amazon.com/jp/blogs/news/sagemaker-custom-containers-pattern-training/
カスタムコンテナは以下の3種類のパターンで
作成できる
1. AWS 提供のコンテナイメージを拡張
a. 最も簡単
b. 独自ライブラリを使いたいときなど
2. 独自のコンテナイメージ + SageMaker
Training Toolkit
a. SageMaker Training Toolkit
3. スクラッチのコンテナイメージ
a. 非推奨
b. 最も難しい
c. SageMaker Training Jobの外部とデータとの
やり取りの使用の理解が必要
今回は、2の独自のコンテナイメージ +
SageMaker Training Toolkitでカスタムコンテナ
を作る方法を紹介
今回はこちらを紹介
sagemaker-training-toolkit
sagemaker-training-toolkitのイメージ作成に必要な3つのこと
必ずやることは以下の3つ
1. 使いたいイメージの中で
pip install sagemaker-training
を実行
2. 学習用スクリプトを /opt/ml/code下に配置
3.SAGEMAKER_PROGRAM でスクリプトを指定
(カスタムコンテナ構築に必要な唯一の環境変
数)
出典: https://github.com/aws/sagemaker-training-toolkit
指定する項目が少なくて
実装も簡単!
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からモデル読み込み
学習パートと推論用のモデル読み込
みを実装。
推論を別のイメージにする場合は推
論用の実装は不要。
学習 推論
コンテナ内の構造
● /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
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
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 30
argparseなどで読み込む
SageMaker上でイメージのbuild
通常のbuild
● SageMakerでカスタムコンテナを使うためにはECRに作成したイメージをプ
ッシュする必要がある
● ECRにプッシュするためには、dockerコマンドだけでなくawsコマンドも使
う必要があり、ステップが少し多い
docker build
aws ecr get-
login
aws ecr create-
repository
docker push
実行コマンドが多い!!
sm-dockerをつかったbuild
sm-docker コマンドで以下の作業を一つのコマンドで実行
1.Dockerfile・コード・buildspec.ymlをS3へアップロード
2.CodeBuildでのイメージのbuild
3.ECRへのイメージのアップロード
出典: https://aws.amazon.com/blogs/machine-learning/using-the-amazon-sagemaker-studio-image-build-cli-to-build-container-images-from-your-studio-notebooks/
たった一つのコマンドで
多くのタスクを実行
sm-dockerの使い方
● SageMaker実行ロールの設定
○ SageMakerで使用している実行ロールに対して、CodeBuildの信頼ポリシーを追加
○ SageMakerで使用している実行ロールに対して、ECRにレポジトリを作成しイメージをプッ
シュできる権限を追加
○ 詳しくは、Using the Amazon SageMaker Studio Image Build CLI to build container images
from your Studio notebooks を参照
● インストール: !pip install sagemaker-studio-image-build
● イメージ作成: !sm-docker build .
最初の準備は大変だが
実行は圧倒的に楽!!
Trust Policy追記
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"codebuild.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
codebuildを追加する
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などの
権限を追加する
カスタムコンテナの使用
● image_uriにECRのURIを指定
● その他はSageMakerが用意してい
るイメージを使った場合の実装と
同じ
image_uri以外は
いつも通りの実装
デモ
● 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

More Related Content

What's hot

DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
 
Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論
西岡 賢一郎
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
 
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
西岡 賢一郎
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
Amazon Web Services Japan
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
Masaki Misawa
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話Yasuhiro Horiuchi
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync
Amazon Web Services Japan
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Amazon Web Services Japan
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
Masahiro NAKAYAMA
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
 
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
Amazon Web Services Japan
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
Amazon Web Services Japan
 
AWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したいAWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したい
Takayuki Ishikawa
 

What's hot (20)

DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
 
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
 
AWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したいAWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したい
 

Similar to Amazon SageMakerでカスタムコンテナを使った学習

機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store
西岡 賢一郎
 
Amazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成するAmazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成する
西岡 賢一郎
 
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
西岡 賢一郎
 
Amazon SageMaker JumpStart
Amazon SageMaker JumpStartAmazon SageMaker JumpStart
Amazon SageMaker JumpStart
西岡 賢一郎
 
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用するAmazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
西岡 賢一郎
 
Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習
西岡 賢一郎
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介
西岡 賢一郎
 
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化するAmazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
西岡 賢一郎
 
Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介
西岡 賢一郎
 
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解するFeature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
西岡 賢一郎
 
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
西岡 賢一郎
 
H2Oを使ったノーコードのAutoML
H2Oを使ったノーコードのAutoMLH2Oを使ったノーコードのAutoML
H2Oを使ったノーコードのAutoML
西岡 賢一郎
 
TorchDataチュートリアル解説
TorchDataチュートリアル解説TorchDataチュートリアル解説
TorchDataチュートリアル解説
西岡 賢一郎
 
AutoGluonではじめるAutoML
AutoGluonではじめるAutoMLAutoGluonではじめるAutoML
AutoGluonではじめるAutoML
西岡 賢一郎
 
H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門
西岡 賢一郎
 
機械学習の技術的負債
機械学習の技術的負債機械学習の技術的負債
機械学習の技術的負債
西岡 賢一郎
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
西岡 賢一郎
 
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきことPMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
西岡 賢一郎
 
未来のカタチ x AI
未来のカタチ x AI未来のカタチ x AI
未来のカタチ x AI
西岡 賢一郎
 
実践的なUXデザインとグロースハック
実践的なUXデザインとグロースハック実践的なUXデザインとグロースハック
実践的なUXデザインとグロースハック
Takahiro Ishiyama
 

Similar to Amazon SageMakerでカスタムコンテナを使った学習 (20)

機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store
 
Amazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成するAmazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成する
 
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
 
Amazon SageMaker JumpStart
Amazon SageMaker JumpStartAmazon SageMaker JumpStart
Amazon SageMaker JumpStart
 
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用するAmazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
 
Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介
 
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化するAmazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
 
Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介
 
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解するFeature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
 
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
 
H2Oを使ったノーコードのAutoML
H2Oを使ったノーコードのAutoMLH2Oを使ったノーコードのAutoML
H2Oを使ったノーコードのAutoML
 
TorchDataチュートリアル解説
TorchDataチュートリアル解説TorchDataチュートリアル解説
TorchDataチュートリアル解説
 
AutoGluonではじめるAutoML
AutoGluonではじめるAutoMLAutoGluonではじめるAutoML
AutoGluonではじめるAutoML
 
H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門
 
機械学習の技術的負債
機械学習の技術的負債機械学習の技術的負債
機械学習の技術的負債
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
 
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきことPMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
 
未来のカタチ x AI
未来のカタチ x AI未来のカタチ x AI
未来のカタチ x AI
 
実践的なUXデザインとグロースハック
実践的なUXデザインとグロースハック実践的なUXデザインとグロースハック
実践的なUXデザインとグロースハック
 

More from 西岡 賢一郎

リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待
西岡 賢一郎
 
リモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのことリモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのこと
西岡 賢一郎
 
ストリートビューから地域の豊かさを推定
ストリートビューから地域の豊かさを推定ストリートビューから地域の豊かさを推定
ストリートビューから地域の豊かさを推定
西岡 賢一郎
 
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
西岡 賢一郎
 
人間の意思決定を機械学習でモデル化できるか
人間の意思決定を機械学習でモデル化できるか人間の意思決定を機械学習でモデル化できるか
人間の意思決定を機械学習でモデル化できるか
西岡 賢一郎
 
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
西岡 賢一郎
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
西岡 賢一郎
 
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
西岡 賢一郎
 

More from 西岡 賢一郎 (8)

リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待
 
リモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのことリモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのこと
 
ストリートビューから地域の豊かさを推定
ストリートビューから地域の豊かさを推定ストリートビューから地域の豊かさを推定
ストリートビューから地域の豊かさを推定
 
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
 
人間の意思決定を機械学習でモデル化できるか
人間の意思決定を機械学習でモデル化できるか人間の意思決定を機械学習でモデル化できるか
人間の意思決定を機械学習でモデル化できるか
 
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
 
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
 

Recently uploaded

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 

Recently uploaded (15)

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 

Amazon SageMakerでカスタムコンテナを使った学習

Editor's Notes

  1. こちらが私のプロフィールとなります。 機械学習には、大学時代の研究から携わっており、自分で立ち上げたスタートアップでも機械学習を使ったサービスを提供していました。 プロダクト開発チームやデータサイエンスチームの立ち上げなどもやっています。
  2. ここでは、SageMakerでどのように学習をしていくかを説明。 SageMakerではECRやS3を使って学習を進めていく。 ECRは学習や推論に使うイメージの取得に使われ、S3は学習データなどの入力データや学習済みモデルなどの出力に使う。 fitでは学習済みモデルがS3に保存されるが、これだけだとSageMakerで学習済みモデルを使えないので、create_modelをすることにより、学習済みモデルを作る。 あとは細かい話として、エンドポイントを作ることで外部から推論を実行できるようになる。
  3. こちらは、先程のフローをもう少し簡略化したもの。 青い丸が解析者がやるアクション。 重要な点はfitとcreate_modelがそれぞれ学習と推論のためのアクションであり、それらに対してコンテナが必要となること。 つまり、学習で独自のコンテナを使うということは、fitで使うコンテナを自分で作るということになる。
  4. カスタムコンテナの作り方は3種類。 1, 2, 3の順番で難易度が高くなる。 まず一つ目がAWSがすでに提供しているコンテナイメージを拡張する方法。独自ライブラリを使いたい場合などはこちらで対応。 2つめがSageMaker Training Toolkitを使ったもの。こちらは自分で好きなベースイメージを選ぶことができる。 3つめがスクラッチで作っていくもの。こちらはTraining Jobが外部とどのようにデータをやり取りしているか知る必要があり難しい。
  5. sagemaker-training-toolkitの使い方は非常にシンプル。 自分の好きなベースイメージを使ったDockerfileの中で3つの操作を指定するだけ。 まず一つ目が、sagemaker-trainingのライブラリをインストールします。こちらはpipを使えばすぐにインストールできます。 次に学習用の独自スクリプトを/opt/ml/code/train.pyに配置します。 そして、環境変数SAGEMAKER_PROGRAMにtrain.pyを指定します。 train.pyの実装は必要ですが、コンテナイメージ自体はこんなにシンプルに作ることができるようになっています。
  6. では、学習用スクリプトはどんなものかを紹介。 こちらは、学習と推論両方に対応するために作ったスクリプトで、大きく分けて2つのパートに別れている。 一つがname==mainとなっている部分。ここが学習データを読み込み、学習をし、学習済みモデルを保存する部分。 学習モデルの保存場所は決まっていて、/opt/ml/modelに保存する。 もう一つが推論のためのモデルの読み込みで、model_fn関数で定義されている。 こちらは先程の/opt/ml/modelからモデルを読み込む。 /opt/ml/modelは環境変数でSM_MODEL_DIRで呼び出すこともできる。
  7. コンテナ内の構造をもう少し説明。
  8. CHANNELがどのように作成されるか理解しておくことも重要。 fitのときにどのように与えるかでCHANNELは変わる。 training, validation, testingで与えた場合は、/opt/ml/input/data以下にそれぞれのデータが配置される。 そして、環境変数SM_CHANNEL_でそれぞれのパスを取得できるようになる。
  9. 最後にSageMakerがトレーニングのときに行うことを紹介。
  10. sagemaker-training-toolkitの使い方は紹介済み。 sagemaker上でのイメージのbuildについて説明。
  11. イメージはbuild下だけでは使えないので、ecrにプッシュする必要がある。 イメージを作ってecrにログインして、ecrにレポジトリを作って、そこにpushするという作業が必要。 何回も修正するたびに作り直すのもめんどくさい。
  12. sagemaker上ではsm-dockerを使えば、面倒くさい作業を一気にやることができます。 sm-dockerでbuildをすると、dockerfile, コード、buildspec.ymlなどをs3へアップロードし、codebuildでイメージをbuildし、ecrへのイメージのアップロードまでしてくれます。
  13. sm-docker自体のインストールはpip installをするだけなので簡単なのですが、実際に実行するためにはSageMakerに紐付いている実行ロールに信頼ポリシーと権限を追加する必要があります。 ここが少しハードルが高い部分。 IAMをいじらないといけない。 ただ、この設定をしてしまえば、sm-docker buildとするだけで、簡単にイメージの作成とプッシュまで行ってくれる。
  14. 詳細はあとから見てほしいが、trust policyとpermission policyを少し紹介。 trust policyに関しては、codebuildのものを追加するだけ。
  15. permisson policyはもはや文字が小さくて見えないと思うが、codebuildやecr, s3などの権限を追加。 policyさえ作ってしまえばいいし、サンプルとなるポリシーも公開されているので、IAMに慣れている人であれば、設定はそこまで大変ではない。
  16. 最後にカスタムコンテナを使った実行のためのコードを紹介。 こちらは非常に簡単で、image_uriに先程作ったECRのURIを指定するだけ。
  17. 最後に簡単にデモ。