はじめに
今回は SageMaker の組み込みアルゴリズムを使った、モデルのデプロイ、推論をAWS CLI を利用して行います。
前提
-
AWS CLI が使える。
AWS CLI のインストール、設定は こちら を参考にしてください。 -
すでに SageMaker で作成した、モデルがある。
モデルのデプロイ
モデルのデプロイには2つの工程があります。
エンドポイントの設定ファイル作成
- まず、create-endpoint-config を使用して、設定ファイルを作成します。
- --endpoint-config-name : エンドポイントの設定ファイル名
- --production-variants : 設定を記述したjsonファイル名
- 他にもオプションで、タグをつけたり、AWS KMS を使用したデータの暗号化などが行えるが、今回は使用しない。
他のオプションについては、こちらを参照してください。
$ create-endpoint-config --endpoint-config-name <value> --production-variants <value>
- 設定を記述するjsonファイル(--production-variants の入力)のテンプレ
- VariantName : 同じ設定をする際に使う名前
- ModelName : 作成したモデルの名前
- InitialInstanceCount : 最初に起動するインスタンスの数
- InstanceType : モデルのデプロイに利用するインスタンスタイプ
- AcceleratorType : Elastic Inference を使用する場合に設定
[
{
"VariantName": "string",
"ModelName": "string",
"InitialInstanceCount": integer,
"InstanceType": "ml.t2.medium"|"ml.t2.large"|"ml.t2.xlarge"|"ml.t2.2xlarge"|"ml.m4.xlarge"|"ml.m4.2xlarge"|"ml.m4.4xlarge"|"ml.m4.10xlarge"|"ml.m4.16xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.12xlarge"|"ml.m5.24xlarge"|"ml.c4.large"|"ml.c4.xlarge"|"ml.c4.2xlarge"|"ml.c4.4xlarge"|"ml.c4.8xlarge"|"ml.p2.xlarge"|"ml.p2.8xlarge"|"ml.p2.16xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.18xlarge",
"AcceleratorType": "ml.eia1.medium"|"ml.eia1.large"|"ml.eia1.xlarge"
}
]
- 実際に create-endpoint-config を使用してみる。
$ aws sagemaker create-endpoint-config --endpoint-config-name dog-face-endpoint-config-1 --production-variants file://config.json
- config.jsonの中身
[
{
"ModelName": "dog-face-model",
"InitialInstanceCount": 1,
"InstanceType": "ml.m4.xlarge"
}
]
エンドポイント作成(モデルのデプロイ)
- create-endpoint を使用して、エンドポイントを作成する。
- --endpoint-name : 作成するエンドポイントの名前
- --endpoint-config-name : 先ほど作成したエンドポイントの設定ファイル名
create-endpoint --endpoint-name <value> --endpoint-config-name <value>
- 実際に create-endpoint を使用する。
aws sagemaker create-endpoint --endpoint-name dog-face-endpoint-1 --endpoint-config-name dog-face-endpoint-config-1
推論
デプロイしたモデルで推論を行います。
- 推論にはinvoke-endpointを使用します。
- --endpoint-name : 先ほど作成したエンドポイント名
- --body :入力データ
- --content-type : 入力データのMIMEタイプ
- outfile : 出力ファイル名
invoke-endpoint --endpoint-name <value> --body <value> --content-type <value> outfile <value>
- 実際に invoke_endpoint を使用する。
aws sagemaker invoke-endpoint --endpoint-name dog-face-endpoint-1 --body file://test.jpeg --content-type image/jpeg outfile out.json
エンドポイント削除
エンドポイントにモデルをデプロイしたままでは、時間単位で課金が発生するので、使わなくなったら、削除しましょう。
- エンドポイントの削除にはdelete-endpointを使用します。
- --endpoint-name : 先ほど作成したエンドポイント名
delete-endpoint --endpoint-name <value>
- 実際に delete_endpoint を使用する。
aws sagemaker delete-endpoint --endpoint-name dog-face-endpoint-1
最後に
今回は、AWS CLI を利用して、モデルのデプロイ、推論、削除を行ってみました。