6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CLI で SageMaker を操作する。

Last updated at Posted at 2019-06-05

はじめに

今回は 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 を利用して、モデルのデプロイ、推論、削除を行ってみました。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?