タダです.
Python もくもく自習室 #20
に参加してきました.もくもくでは Amazon SageMaker(以下,SageMaker)でモデル開発とデプロイを実践しました.
retty.connpass.com
フレームワークは XGBoost
を使うことにしました.今後 Kaggle にチャレンジしたいのですが, XGBoost
はよく使われるフレームワークという情報を見つけたため使ってみました.参考にさせてもらったのはこちらのチュートリアルです.今回はチュートリアルを終えて SageMaker を使う際の AWS 観点で注意すべき点をまとめます.
SageMaker とは
SageMaker は AWS の機械学習サービスの1つで機械学習のモデル開発,トレーニング,デプロイが SageMaker で完結できるものになっています.国内での利用事例も増えつつあると感じており,昨日もちょうど dely さんの SageMaker を活用した寄稿記事がリリースされてました.AWS で機械学習をするなら中核となるサービスと言えます.
XGBoost とは
XGBoost
は決定木を使った勾配ブースティングのオープンソースのフレームワークになります.勾配ブースティングはアンサンブル学習の一種で,教師あり学習のアルゴリズムです.
利用したデータセット
今回使ったデータセットは「Bank Marketing Data Set (銀行マーケティング・データセット)」を使いました.カルフォルニア大学では様々なオープンデータを公開しているようです.同様にオープンデータを活用したチュートリアルは書評記事を書いた「機械学習の炊いたん。」でも MXNet
フレームワークを使ったチュートリアルが解説されているので気になる方は購入を検討してみてください.
関連記事
AWS 観点で注意すべき点
ノートブックインスタンス,モデル訓練用インスタンス,モデルのデプロイ用インスタンスが存在する
今回のチュートリアルを行って初めて知ったのですが,ノートブックインスタンスのみでモデル開発とデプロイが完結するかと勘違いしていました.実際は,モデルの訓練,デプロイしホスティングするインスタンスが異なります.課金もそれぞれの利用時間当たりの料金がかかってきますので利用する際は料金表を参照ください.
チュートリアルでは,モデルの訓練時は「ml.m4.xlarge」でモデルのデプロイとホスティングを「ml.c4.xlarge」で実施しました.なお、今回活用したチュートリアルでの利用料金はおよそ3~4ドルほどとのことです.お試しの料金として問題ない範囲かと思います.
また参考情報としてドキュメントで推奨のインスタンスタイプも紹介されているので参考になると思います.
訓練データの出力先の S3 バケット名について
SageMaker で訓練データで使う S3 を利用します.S3 バケットをモデル開発を行う前に構築しますが,試しに利用する目的であればバケット名に「SageMaker」,「Sagemaker」,「sagemaker」の文言をつければ SageMaker がデータの出力先として認識してくれます.というのも SagaMaker のノートブックインスタンスに付与される IAM ロールで指定されているためです.そのためバケット名に特にこだわりがない場合は以下のいずれかの文言を活用すると良いでしょう.
※IAM ポリシー抜粋 { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*", "arn:aws:s3:::*aws-glue*" ] }
XGBoost 専用のコンテナイメージのエンドポイントについて
モデルの訓練を行う際に ECR の所定のコンテナイメージを指定します.エンドポイントが既にあるのですが下記のように利用しています.アルゴリズムごとに ECR コンテナイメージが用意されているため利用用途に応じて選択ください.
※チュートリアルのコードを抜粋 containers = {'us-west-2': '433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest', 'us-east-1': '811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest', 'us-east-2': '825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest', 'eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest', 'ap-northeast-1': '501404015308.dkr.ecr.ap-northeast-1.amazonaws.com/xgboost:latest'}
参考情報
まとめ
今回は SageMaker を使ってモデル開発〜モデルのホスティングまで行う XGBoost
のチュートリアルを使って感じた SageMaker 利用時のAWS 観点で注意すべき点をまとめました.今回のチュートリアルで使ったのは S3,ECR でしたが他にも関連できるサービスはあるためこれから色々なサービスと組み合わせて使っていければと思います.
もくもくで扱えなかったもの
もくもく会で扱えなかったのですがネットで盛り上がっているディープラーニング入門 Chainer チュートリアル
を今度やってみたい.