はじめに
本稿では、SageMakerで作成し、ローカルに保存したモデル(model.tar.gz)をもう一度デプロイする方法を説明します。
※今回私がデプロイするのは、犬の顔検出モデルです。
前提
- 既にSageMakerで作成したモデルをローカルに保存している。
実践
モデルのアップロード
※今回はテストのため、アクセス許可の設定などは行いませんが、実際に利用する際は、適切な設定を行ってください。
- 作成したバケットを開いて、アップロードを選択。
私は、バケット内にmodelというフォルダを作成し、その中にアップロードします。
- ローカルに保存しているモデルを選択し、アップロードを選択。
これで、モデルのアップロードは終了です。
モデルのデプロイ
- 下にスクロールし、IAM ロールの一番上のタブを選択し、新しいロールの作成を選択。
- 特定の S3 バケットにチェックを入れ、先ほど作成した S3 バケットノ名前を入力し、ロールの作成を選択。
- 下にスクロールして、ノートブックインスタンスの作成を選択。
- ステータスがInServiceになったら、Open Jupyterを選択。
- Jupyter が開いたら、New から conda_mxnet_p36 を選択。
- Notebook を選択したら、Untitled を選択。
- 任意の名前を Notebook に付け、Rename を選択。
-
次のコードを実行して、モデルをデプロイしましょう。
このコードの実行完了には5分ほど時間がかかりました。- model_data : 先ほどモデルを保存したパス
- image : 推論時に利用する Docker イメージ名
Docker イメージ名はこちらから参照してください。
#S3にアップロードしたモデルをデプロイ
import sagemaker
from sagemaker import get_execution_role
from sagemaker.model import Model
import boto3
import json
role = get_execution_role()
model = Model(model_data='s3://dog-face/model/model.tar.gz',
image='501404015308.dkr.ecr.ap-northeast-1.amazonaws.com/object-detection:latest',
role=role)
model_detection = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
実行結果
- - の後に ! がついたら、モデルのデプロイ完了です。
----------------------------------------------------------------------------------------------------------------!
おわりに
今回は、SageMakerの組み込みアルゴリズムで作成したモデルを、再デプロイする方法について説明しました。
モデルをローカルに保存してから、再デプロイするという方の参考になればと思います。