LoginSignup
1
0

More than 1 year has passed since last update.

SageMakerへのscikit-learnモデルのデプロイメント

Last updated at Posted at 2022-01-30

scikit-learn model deployment on SageMaker | Databricks on AWS [2021/3/22時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

このノートブックではscikit-learnモデルのトレーニング、scikit-learnフォーマットでの保存で説明されている糖尿病データセットでトレーニングしたElasticNetモデルを使用します。このノートブックでは以下を説明しています。

  • MLflowエクスペリメントUIを用いてデプロイするモデルを選択。
  • MLflow APIを用いてSageMakerにモデルをデプロイ。
  • sagemaker-runtime APIを用いてデプロイされたモデルを検索。
  • 別のモデルに対してデプロイ、クエリープロセスの繰り返し。
  • MLflow APIを用いてデプロイメントを削除。

DatabricksからAWS SageMakerにMLflowモデルをデプロイできるように、どのようにAWSの認証設定を行うのかについては、機械学習モデルをSageMakerにデプロイするのためのAWS認証設定のセットアップをご覧ください。

SageMakerエンドポイントへのデプロイがわかりにくいので補足します。

MLflow SageMaker APIを用いてモデルをSageMakerエンドポイントにデプロイする際、AmazonのElastic Container Registry (ECR)のDockerイメージを指定します。SageMakerはモデルをサービングする際にこのイメージを使用します。

ローカルマシンでMLflow CLI:mlflow sagemaker build-and-push-containerを実行し、mlflow-pyfuncイメージをビルドし、イメージをECRのリポジトリにアップロードします。ECRリポジトリにmlflow-pyfuncイメージが作成されます。アップロード完了後、DockerイメージのURLを取得することができます。

  1. ローカルマシンでAWS CLIのインストール、設定aws configureを行います。
  2. インストールされていない場合、PyPIでmlflow、 boto3をインストールしておきます。
  3. ローカルマシンでmlflow sagemaker build-and-push-containerを実行すると、Dockerイメージの作成およびECRへのアップロードが行われます。
Python
# 以下でECR DockerイメージのURLを指定します。
# ECR URLは以下のフォーマットである必要があります: {account_id}.dkr.ecr.{region}.amazonaws.com/{repo_name}:{tag}
image_ecr_url = "<AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/mlflow-pyfunc:1.23.1"

上のURLを指定して、エンドポイントへのモデルデプロイを行います。

Python
import mlflow.sagemaker as mfs
app_name = "diabetes-class-v1"
mfs.deploy(app_name=app_name, model_uri=model_uri, image_url=image_ecr_url, region_name=region, mode="create")

しばらくすると、エンドポイントがInServiceになるので、この後は予測結果を得るために
モデルに対してクエリーを実行することができます。

sagemaker_endpoint_inservice.png

MLflow scikit-learnモデルトレーニングのノートブック

Databricks 無料トライアル

Databricks 無料トライアル

1
0
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
1
0