

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リアルタイム推論用のモデルをデプロイする
<a name="realtime-endpoints-deploy-models"></a>

**重要**  
Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「[SageMaker AI リソースにタグ付けのアクセス許可を付与する](security_iam_id-based-policy-examples.md#grant-tagging-permissions)」を参照してください。  
SageMaker リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md) には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

SageMaker AI ホスティングサービスを使用してモデルをデプロイするには、複数のオプションがあります。SageMaker Studio を使用してモデルをインタラクティブにデプロイできます。または、SageMaker Python AWS SDK や SDK for Python (Boto3) などの SDK を使用してプログラムでモデルをデプロイすることもできます。を使用してデプロイすることもできます AWS CLI。

## [開始する前に]
<a name="deploy-prereqs"></a>

SageMaker AI モデルをデプロイする前に、次を探して記録してください:
+ Amazon S3 バケット AWS リージョン がある 
+ モデルアーティファクトが保存されている Amazon S3 URI パス
+ SageMaker AI の IAM ロール
+ 推論コードを含むカスタムイメージの Docker Amazon ECR URI レジストリパス、または および でサポートされている組み込み Docker イメージのフレームワークとバージョン AWS

 各 AWS のサービス で使用できる のリストについては AWS リージョン、[「リージョンマップとエッジネットワーク](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。IAM ロールの作成については、「[IAM ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)」を参照してください。

**重要**  
モデルアーティファクトが保存されている Amazon S3 バケットは、作成するモデルと同じ AWS リージョン に存在している必要があります。

## 複数のモデルでリソース使用率を共有する
<a name="deployed-shared-utilization"></a>

Amazon SageMaker AI を使用して、エンドポイントにモデルを 1 つまたは複数デプロイできます。複数のモデルがエンドポイントを共有する場合は、そこでホストされるリソース (ML 演算処理インスタンス、CPU、アクセラレーターなど) を共同で使用します。エンドポイントに複数のモデルを柔軟にデプロイするには、各モデルを*推論コンポーネント*として定義するのが一番です。

### 推論コンポーネント
<a name="inference-components"></a>

推論コンポーネントは、モデルをエンドポイントにデプロイするために使用できる SageMaker AI ホスティングオブジェクトです。推論コンポーネント設定では、モデル、エンドポイント、およびエンドポイントがホストするリソースをモデルがどのように使用するかを指定します。モデルを指定する際、SageMaker AI Model オブジェクトを指定することも、モデルアーティファクトとイメージを直接指定することもできます。

設定では、必要な CPU コア、アクセラレータ、メモリをモデルに割り当てる方法を調整することで、リソース使用率を最適化できます。エンドポイントに複数の推論コンポーネントをデプロイし、各推論コンポーネントに 1 つのモデルと、そのモデルのリソース使用率のニーズを含めることができます。

推論コンポーネントをデプロイした後、SageMaker API で InvokeEndpoint アクションを使用すると、関連付けられたモデルを直接呼び出すことができます。

推論コンポーネントには以下の利点があります。

**柔軟性**  
推論コンポーネントでは、モデルのホスティングの詳細がエンドポイント自体から切り離されます。そのため、モデルをエンドポイントでどのようにホスティングおよび提供するかを柔軟にコントロールできます。同じインフラストラクチャで複数のモデルをホスティングし、必要に応じてエンドポイントにモデルを追加または削除できます。各モデルは個別にアップデートできます。

**スケーラビリティ**  
ホストする各モデルのコピー数を指定したり、モデルがリクエストを処理するために必要なコピーの最小数を設定したりできます。推論コンポーネントのコピーをゼロにスケールダウンすることで、別のコピーをスケールアップする余地を作成できます。

以下を使用してモデルをデプロイすると、SageMaker AI がモデルを推論コンポーネントとしてパッケージ化します。
+ SageMaker Studio Classic。
+ Model オブジェクトをデプロイする SageMaker Python SDK (エンドポイントタイプを `EndpointType.INFERENCE_COMPONENT_BASED` に設定した場合)。
+ エンドポイントにデプロイする`InferenceComponent`オブジェクト AWS SDK for Python (Boto3) を定義する 。

## SageMaker Studio を使用してモデルをデプロイする
<a name="deploy-models-studio"></a>

SageMaker Studio を使用してモデルをインタラクティブに作成およびデプロイするには、次の手順を実行します。Studio の詳細については、[Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) のドキュメントを参照してください。さまざまなデプロイシナリオの詳細なチュートリアルについては、ブログ[「Package and deploy classical ML models and LLMs easily with Amazon SageMaker AI – Part 2」](https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-2-interactive-user-experiences-in-sagemaker-studio/)を参照してください。

### アーティファクトとアクセス許可を準備する
<a name="studio-prereqs"></a>

SageMaker Studio でモデルを作成する前に、このセクションを完了してください。

アーティファクトを Studio に取り入れてモデルを作成する場合、次の 2 つのオプションがあります:

1. モデルアーティファクト、カスタム推論コード、`requirements.txt` ファイルに記載されている依存関係を含めて `tar.gz` アーカイブにあらかじめパッケージ化できます。

1. SageMaker AI からアーティファクトをパッケージ化できます。未加工のモデルアーティファクトと依存関係を `requirements.txt` ファイルに取り込むだけで、SageMaker AI によってデフォルトの推論コードが提供されます (または、デフォルトのコードを独自のカスタム推論コードで上書きすることもできます)。PyTorch、XGBoost のフレームワークであれば、SageMaker AI でこのオプションを使用できます。

モデル、 AWS Identity and Access Management (IAM) ロール、Docker コンテナ (または SageMaker AI に構築済みのコンテナがある目的のフレームワークとバージョン) を持ち込むだけでなく、SageMaker AI Studio を介してモデルを作成およびデプロイするアクセス許可も付与する必要があります。

[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) ポリシーを IAM ロールにアタッチし、SageMaker AI と他のサービスへのアクセスを可能にする必要があります。Studio でインスタンスタイプの料金を確認するには、[AWS PriceListServiceFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSPriceListServiceFullAccess.html) ポリシーもアタッチする必要があります (または、ポリシー全体をアタッチしない場合は、`pricing:GetProducts` アクションを使用します)。

モデルの作成時にモデルアーティファクトをアップロードする場合 (または推論レコメンデーションのサンプルペイロードファイルをアップロードする場合)、Amazon S3 バケットを作成する必要があります。バケット名には、 `SageMaker AI`という単語のプレフィックスを付ける必要があります。SageMaker AI では大文字小文字 (`Sagemaker` または `sagemaker`) は区別されません。

バケット命名規則 `sagemaker-{{{Region}}}-{{{accountID}}}` を使用することをお勧めします。このバケットは、アップロードしたアーティファクトを保存するために使用されます。

バケットを作成したら、次の CORS (クロスオリジンリソース共有) ポリシーをバケットにアタッチします。

```
[
    {
        "AllowedHeaders": ["*"],
        "ExposeHeaders": ["Etag"],
        "AllowedMethods": ["PUT", "POST"],
        "AllowedOrigins": ['https://*.sagemaker.aws'],
    }
]
```

次のいずれかの方法で、CORS ポリシーを Amazon S3 バケットにアタッチします。
+ Amazon S3 コンソールの[クロスオリジンリソース共有 (CORS) の編集](https://s3.console.aws.amazon.com/s3/bucket/bucket-name/property/cors/edit)ページに移動する
+ Amazon S3 API の [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) を使用する。
+ put-bucket-cors AWS CLI コマンドを使用します。

  ```
  aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
  ```

### デプロイモデルを作成する
<a name="studio-create-model"></a>

この手順では、アーティファクトおよびその他の項目 (コンテナとフレームワーク、カスタム推論コード、ネットワーク設定など) を SageMaker AI で入力して、モデルのデプロイ可能なバージョンを作成します。

SageMaker Studio でデプロイ可能なモデルを作成するには、次の手順を実行します。

1. SageMaker Studio アプリケーションを開きます。

1. 左のナビゲーションペインで **[モデル]** を選択します。

1. **[デプロイ可能なモデル]** タブを選択します。

1. **デプロイ可能なモデル**ページで **[作成]** を選択します。

1. **デプロイ可能なモデルの作成**ページの **[モデル名]** フィールドに、モデルの名前を入力します。

**デプロイ可能なモデルの作成**ページで入力するセクションは、他にもいくつかあります。

**[コンテナ定義]** セクションは次のスクリーンショットのようになります。

![Studio でモデルを作成する際の [コンテナ定義] セクションのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-container-definition.png)


****[コンテナ定義]** セクションで以下を実行します。**

1. **[コンテナタイプ]** では、SageMaker AI マネージドコンテナを使用する場合は **[構築済みコンテナ]** を選択し、独自のコンテナを使用する場合は **[独自のコンテナ**] を選択します。

1. **[構築済みコンテナ]** を選択した場合、使用する **[コンテナフレームワーク]**、**[フレームワークバージョン]**、および **[ハードウェアタイプ]** を選択します。

1. **[独自のコンテナ]** を選択した場合は、**[コンテナイメージへの ECR パス]** にAmazon ECR パスを入力します。

次に、**[アーティファクト]**セクションを次のスクリーンショットのように入力します。

![Studio でモデルを作成する [アーティファクト] セクションのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-artifacts-section.png)


****[アーティファクト]** セクションでは、以下を実行します。**

1. SageMaker AI でモデルアーティファクト (PyTorch または XGBoost) をパッケージ化できるフレームワークを使用している場合は、**[アーティファクト]** で **[アーティファクトをアップロード]** オプションを選択します。このオプションを使用すると、未加工のモデルアーティファクト、カスタム推論コード、および requirements.txt ファイルを指定するだけで、SageMaker AI によってアーカイブのパッケージ化が処理されます。以下の操作を実行します。

   1. **[アーティファクト]** で、**[アーティファクトのアップロード]** を選択して処理を続行します。または、`tar.gz` アーカイブにモデルファイル、推論コード、`requirements.txt` ファイルが含まれる場合は、**[S3 の URI を事前パッケージ化アーティファクトに入力する]** を選択します。

   1. アーティファクトのアップロードを選択した場合は、**[S3 バケット]** に、SageMaker AI がアーティファクトをパッケージ化した後にそれを保存する Amazon S3 のバケットへのパスを入力します。以下の手順を実行します。

   1. **[モデルアーティファクトをアップロード]** でモデルファイルをアップロードします。

   1. SageMaker AI が推論のために提供するデフォルトコードを使用する場合は、**[推論コード]** で **[デフォルトの推論コードを使用]** を選択します。独自の推論コードを使用する場合は、**[カスタマイズした推論コードをアップロード]** を選択します。

   1. **[requirements.txt をアップロード]** で、実行時にインストールする依存関係のリストが入力されたテキストファイルをアップロードします。

1. SageMaker AI でモデルアーティファクトをパッケージ化できるフレームワークを使用しない場合は、Studio に **[事前パッケージ化アーティファクト]** オプションが表示され、`tar.gz` アーカイブにパッケージ化されたすべてのアーティファクトを入力する必要があります。以下の操作を実行します。

   1. **[事前パッケージ化アーティファクト]** で、`tar.gz` アーカイブが Amazon S3 に既にアップロードされている場合は、**[S3 の URI を事前パッケージ化モデルアーティファクトに入力する]** を選択します。アーカイブを SageMaker AI に直接アップロードする場合は、**[事前パッケージ化モデルアーティファクトをアップロード]** を選択します。

   1. **[S3 の URI を事前パッケージ化モデルアーティファクトに入力する]**を選択した場合は、Amazon S3 のアーカイブへのパスを **S3 URI** に入力します。または、ローカルマシンからアーカイブを選択してアップロードします。

次のセクションは **[セキュリティ]** です。次のスクリーンショットのように表示されます。

![Studio でモデルを作成する [セキュリティ] セクションのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-security-section.png)


****[セキュリティ]** セクションで、以下の操作を行います。**

1. **[IAM ロール]**に、IAM ロールの ARN を入力します。

1. (オプション) **[仮想プライベートクラウド (VPC)]** で、モデル設定とアーティファクトを保存する Amazon VPC を選択します。

1. (オプション) コンテナのインターネットアクセスを制限する場合は、**[ネットワークの隔離]** トグルをオンにします。

最後に、オプションで **[詳細オプション]** セクションに入力します。次のスクリーンショットのように表示されます。

![Studio でモデルを作成する [詳細オプション] セクションのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-advanced-options.png)


**(オプション) **[詳細オプション]** セクションで、以下の操作を行います:**

1. 作成されたモデルで Amazon SageMaker Inference Recommender ジョブを実行する場合は、**[カスタマイズされたインスタンスのレコメンデーション]** トグルをオンにします。Inference Recommender は、推論のパフォーマンスとコストを最適化できるインスタンスタイプを推奨するための機能です。これらのインスタンスのレコメンデーションは、モデルのデプロイを準備する際に表示されます。

1. **[環境変数を追加]** には、コンテナの環境変数をキーと値のペアで入力します。

1. **[タグ]** に任意のタグをキーと値のペアで入力します。

1. モデルとコンテナの設定が完了したら、**[デプロイ可能なモデルを作成]** を選択します。

これで、SageMaker Studio にデプロイ可能なモデルが完成しました。

### モデルをデプロイする
<a name="studio-deploy"></a>

最後に、前の手順で設定したモデルを HTTPS エンドポイントにデプロイします。エンドポイントに 1 つまたは複数のモデルをデプロイできます。

**モデルとエンドポイントの互換性**  
モデルをエンドポイントにデプロイする前に、以下の設定がモデルとエンドポイント間で同じであり、互換性が保たれていることを確認してください。  
IAM ロール
Amazon VPC (サブネットとセキュリティグループ)
ネットワークの隔離 (有効または無効)
互換性のないエンドポイントにモデルがデプロイされないよう、Studio で次の処理が行われます。  
新しいエンドポイントにモデルをデプロイすると、SageMaker AI は互換性を維持するようにエンドポイントを設定します。この設定を変更して互換性が失われると、Studio はアラートを表示し、デプロイが失敗します。
既存のエンドポイントにデプロイすると、エンドポイントに互換性がない場合は Studio がアラートを表示し、デプロイが失敗します。
デプロイに複数のモデルを追加する場合、相互に互換性がなければ、Studio によってモデルのデプロイがエラーになります。
Studio にモデルとエンドポイントの非互換性に関するアラートが表示された場合、**[詳細を表示]** を選択して、どの設定で互換性が失われたかを確認できます。

モデルをデプロイするために、Studio で以下を実行する方法を選択できます。

1. SageMaker Studio アプリケーションを開きます。

1. 左のナビゲーションペインで **[モデル]** を選択します。

1. **[モデル]** ページで、SageMaker AI モデルのリストから 1 つ以上のモデルを選択します。

1. **[デプロイ]** をクリックします。

1. **[エンドポイント名]** で、ドロップダウンメニューを開きます。既存のエンドポイントを選択するか、モデルをデプロイする新しいエンドポイントを作成します。

1. **[インスタンスタイプ]** で、エンドポイントに使用するインスタンスタイプを選択します。モデルに対して以前に Inference Recommender ジョブを実行している場合は、推奨されるインスタンスタイプが **[推奨]** というタイトルのリストに表示されます。実行していない場合は、モデルに適した **[想定インスタンス]** がいくつか表示されます。
**JumpStart のインスタンスタイプの互換性**  
JumpStart モデルをデプロイする場合、Studio にはモデルがサポートするインスタンスタイプのみが表示されます。

1. **[初期インスタンス数]** には、エンドポイントにプロビジョニングするインスタンスの初期数を入力します。

1. **[最大インスタンス数]** には、トラフィックの増加に合わせてスケールアップする場合にエンドポイントにプロビジョニング可能なインスタンスの最大数を指定します。

1. デプロイするモデルがモデルハブで最も使用されている JumpStart LLM のいずれかである場合は、**[代替設定]** オプションが [インスタンスタイプ] と [インスタンス数] フィールドの後に表示されます。

   最も一般的な JumpStart LLMs AWS の場合、 には、コストまたはパフォーマンスを最適化するために事前にベンチマークされたインスタンスタイプがあります。このデータを使用し、どのインスタンスタイプを LLM のデプロイに使用するかを判断できます。**[代替設定]** を選択して、ベンチマーク済みのデータを表示するダイアログボックスを開きます。パネルは次のスクリーンショットのようになります。  
![[代替設定] ボックスのスクリーンショット](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-jumpstart-alternate-configurations.png)

   **[代替設定]** ボックスで以下の操作を行います。

   1. インスタンスのタイプを選択します。**[1 時間あたりのコスト]** または **[最高のパフォーマンス]** を選択して、モデルのコストやパフォーマンスを最適化するインスタンスを表示します。**[その他のサポートされているインスタンス]** を選択して、JumpStart モデルと互換性のある他のインスタンスタイプのリストを表示することもできます。ここでインスタンスタイプを選択すると、手順 6 で指定したインスタンスが上書きされることに注意してください。

   1. (任意) **[選択した設定をカスタマイズ]** トグルをオンにして、**[トークン合計の最大数]** (許可するトークンの最大数。入力トークンおよびモデルで生成されるトークンの合計)、**[入力するトークンの最大長]** (各リクエストで入力が許可されるトークンの最大数)、および **[最大同時リクエスト]** (モデルが一度に処理できるリクエストの最大数) を指定します。

   1. **[選択]** を選択して、インスタンスタイプと設定を確認します。

1. **[モデル]** フィールドには、デプロイするモデルの名前がすでに入力されています。**[モデルの追加]** を選択して、デプロイにモデルを追加します。追加するモデルごとに、次のフィールドを入力します:

   1. **[CPU コアの数]** に、モデルのみで使用される CPU コアを入力します。

   1. **[最小コピー数]** には、任意の時点でエンドポイントでホストされるモデルコピーの最小数を入力します。

   1. **[最小 CPU メモリ (MB)]** には、モデルに必要な最小メモリ量 (MB) を入力します。

   1. **[最大 CPU メモリ (MB)]** には、モデルに使用を許可するメモリの最大量 (MB) を入力します。

1. (オプション) **[詳細オプション]** で、以下の操作を行います:

   1. **[IAM ロール]** で、デフォルトの SageMaker AI IAM 実行ロールを使用するか、必要なアクセス許可を含む独自のロールを指定します。この IAM ロールは、デプロイ可能なモデルの作成時に指定したロールと同じである必要があります。

   1. **[仮想プライベートクラウド (VPC)]** では、エンドポイントをホストする VPC を指定します。

   1. **暗号化 KMS キー**で、 AWS KMS キーを選択して、エンドポイントをホストする ML コンピューティングインスタンスにアタッチされたストレージボリューム上のデータを暗号化します。

   1. **[ネットワーク分離の有効化]** トグルをオンにして、コンテナのインターネットアクセスを制限します。

   1. **[タイムアウト設定]** で、**[モデルデータのダウンロードタイムアウト (秒)]** と **[コンテナ起動のヘルスチェックタイムアウト (秒)]** フィールドに値を入力します。これらの値によって、SageMaker AI がモデルをコンテナにダウンロードする最大時間と、コンテナを起動する最大時間が決まります。

   1. **[タグ]** に任意のタグをキーと値のペアで入力します。
**注記**  
SageMaker AI は、IAM ロール、VPC、およびネットワーク隔離の設定を、デプロイするモデルと互換性のある初期値を使用して設定します。この設定を変更して互換性が失われると、Studio はアラートを表示し、デプロイが失敗します。

オプションを設定すると、ページが次のスクリーンショットのように表示されます。

![Studio のデプロイモデルページのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/inference/studio-deploy-realtime-model-2.png)


デプロイを設定したら、**[デプロイ]** を選択してエンドポイントを作成し、モデルをデプロイします。

## Python SDK でモデルをデプロイする
<a name="deploy-models-python"></a>

SageMaker Python SDK を使用すると、2 つの方法でモデルを構築できます。1 つ目は、`Model` クラスまたは `ModelBuilder` クラスからモデルオブジェクトを作成する方法です。`Model` クラスを使用して `Model` オブジェクトを作成する場合は、モデルパッケージまたは推論コード (モデルサーバーによって異なります) を指定し、クライアントとサーバー間のデータのシリアル化と逆シリアル化を処理するスクリプトと、Amazon S3 にアップロードされる依存関係を指定する必要があります。2 つ目は、`ModelBuilder` を使用してモデルアーティファクトまたは推論コードを提供する方法です。`ModelBuilder` は依存関係を自動的に取得し、必要なシリアル化およびシリアル化解除関数を推論し、依存関係をパッケージ化して `Model` オブジェクトを作成します。`ModelBuilder` の詳細については、「[ModelBuilder を使用して Amazon SageMaker AI でモデルを作成する](how-it-works-modelbuilder-creation.md)」を参照してください。

次のセクションでは、モデルを作成する方法と、モデルオブジェクトをデプロイする方法を説明します。

### セットアップする
<a name="python-setup"></a>

以下に、モデルデプロイプロセスを準備する例を示します。必要なライブラリをインポートし、モデルアーティファクトを指す S3 URL を定義します。

------
#### [ SageMaker Python SDK ]

**Example import ステートメント**  
次の例は、SageMaker Python SDK、SDK for Python (Boto3)、および Python 標準ライブラリからモジュールをインポートします。これらのモジュールはモデルのデプロイ便利であり、以下の例でも使用されています。  

```
import boto3
from datetime import datetime
from sagemaker.compute_resource_requirements.resource_requirements import ResourceRequirements
from sagemaker.predictor import Predictor
from sagemaker.enums import EndpointType
from sagemaker.model import Model
from sagemaker.session import Session
```

------
#### [ boto3 inference components ]

**Example import ステートメント**  
次の例は、SDK for Python (Boto3) と Python 標準ライブラリからモジュールをインポートします。これらのモジュールはモデルのデプロイ便利であり、以下の例でも使用されています。  

```
import boto3
import botocore
import sys
import time
```

------
#### [ boto3 models (without inference components) ]

**Example import ステートメント**  
次の例は、SDK for Python (Boto3) と Python 標準ライブラリからモジュールをインポートします。これらのモジュールはモデルのデプロイ便利であり、以下の例でも使用されています。  

```
import boto3
import botocore
import datetime
from time import gmtime, strftime
```

------

**Example モデルアーティファクト URL**  
次のコードは、Amazon S3 URL を構築する例です。URL は、Amazon S3 バケット内の事前トレーニング済みモデルのモデルアーティファクトを指します。  

```
# Create a variable w/ the model S3 URL

# The name of your S3 bucket:
s3_bucket = "amzn-s3-demo-bucket"
# The directory within your S3 bucket your model is stored in:
bucket_prefix = "{{sagemaker/model/path}}"
# The file name of your model artifact:
model_filename = "{{my-model-artifact.tar.gz}}"
# Relative S3 path:
model_s3_key = f"{bucket_prefix}/"+model_filename
# Combine bucket name, model file name, and relate S3 path to create S3 model URL:
model_url = f"s3://{s3_bucket}/{model_s3_key}"
```
完全な Amazon S3 URL が変数 `model_url` に保存され、次の例で使用されます。

### 概要
<a name="python-overview"></a>

SageMaker Python SDK または SDK for Python (Boto3) を使用してモデルをデプロイする方法は複数あります。以下のセクションでは、いくつかのアプローチで実行する手順をまとめて説明します。それらの手順を、以下の例で示しています。

------
#### [ SageMaker Python SDK ]

SageMaker Python SDK を使用すると、次のいずれかの方法でモデルを構築できます:
+ **`Model` クラスからモデルオブジェクトを作成する** – モデルパッケージまたは推論コード (モデルサーバーによって異なります) を指定し、クライアントとサーバー間のデータのシリアル化と逆シリアル化を処理するスクリプトと、Amazon S3 にアップロードされる依存関係を指定する必要があります。
+ **`ModelBuilder` クラスからモデルオブジェクトを作成する** – モデルアーティファクトまたは推論コードを指定すると、`ModelBuilder` が依存関係を自動的にキャプチャし、必要なシリアル化およびシリアル化解除関数を推測して、依存関係をパッケージ化した `Model` オブジェクトを作成します。

  `ModelBuilder` の詳細については、「[ModelBuilder を使用して Amazon SageMaker AI でモデルを作成する](how-it-works-modelbuilder-creation.md)」を参照してください。詳細については、ブログ[「Package and deploy classical ML models and LLMs easily with SageMaker AI – Part 1」](https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-1-pysdk-improvements/)をご覧ください。

以下の例では、モデルを作成する方法と、モデルオブジェクトをデプロイする方法を説明します。これらの方法でモデルをデプロイするには、次の手順を実行します。

1. モデルに割り当てるエンドポイントリソースを、`ResourceRequirements` オブジェクトを使用して定義します。

1. `Model` クラスまたは `ModelBuilder` クラスからモデルオブジェクトを作成します。`ResourceRequirements` オブジェクトはモデル設定で指定します。

1. `Model` オブジェクトの `deploy` メソッドを使用して、モデルをエンドポイントにデプロイします。

------
#### [ boto3 inference components ]

次の例は、モデルを推論コンポーネントに割り当てた後、推論コンポーネントをエンドポイントにデプロイする方法を示しています。この方法でモデルをデプロイするには、次の手順を実行します:

1. (オプション) [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html) メソッドを使用して SageMaker AI モデルオブジェクトを作成します。

1. エンドポイント設定オブジェクトを作成して、エンドポイントの設定を指定します。[https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config) メソッドを使用して作成します。

1. [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) メソッドを使用してエンドポイントを作成し、作成したエンドポイント設定をリクエストに指定します。

1. `create_inference_component` メソッドを使用して推論コンポーネントを作成します。設定で、次のいずれかを実行してモデルを指定します。
   + SageMaker AI モデルオブジェクトを指定する
   + モデルイメージ URI と S3 URL を指定する

   また、エンドポイントリソースをモデルに割り当てます。推論コンポーネントを作成することで、モデルがエンドポイントにデプロイされます。モデルごとに 1 つずつ、複数の推論コンポーネントを作成することで、複数のモデルをエンドポイントにデプロイできます。

------
#### [ boto3 models (without inference components) ]

次の例は、モデルオブジェクトを作成し、モデルをエンドポイントにデプロイする方法を示しています。この方法でモデルをデプロイするには、次の手順を実行します:

1. [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html) メソッドを使用して SageMaker AI モデルを作成します。

1. エンドポイント設定オブジェクトを作成して、エンドポイントの設定を指定します。[https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config) メソッドを使用して作成します。エンドポイント設定で、モデルオブジェクトを本番稼働用のバリアントに割り当てます。

1. [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) メソッドを使用してエンドポイントを作成します。作成したエンドポイント設定をリクエストに指定します。

   エンドポイントを作成すると、SageMaker AI はエンドポイントリソースをプロビジョニングし、モデルをエンドポイントにデプロイします。

------

### 構成する
<a name="python-configure"></a>

次の例では、モデルをエンドポイントにデプロイするために必要なリソースを設定します。

------
#### [ SageMaker Python SDK ]

次の例は、`ResourceRequirements` オブジェクトを持つモデルにエンドポイントリソースを割り当てています。これらのリソースには、CPU コア、アクセラレーター、メモリが含まれます。次に、この例のように `Model` クラスからモデルオブジェクトを作成します。または、[ModelBuilder](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-modelbuilder-creation.html) クラスをインスタンス化して `build` を実行することで、モデルオブジェクトを作成することもできます。このメソッドも例に示されています。`ModelBuilder` はモデルをパッケージ化する統合インターフェイスを提供し、このインスタンスでは大規模にデプロイするためのモデルを準備しています。この例は、`ModelBuilder` を使用して Hugging Face モデルをコンストラクトします。(JumpStart モデルを渡すこともできます)。モデルを構築したら、モデルオブジェクトでリソース要件を指定します。次の手順では、このオブジェクトを使用してモデルをエンドポイントにデプロイします。

```
resources = ResourceRequirements(
    requests = {
        "num_cpus": {{2}},  # Number of CPU cores required:
        "num_accelerators": {{1}}, # Number of accelerators required
        "memory": {{8192}},  # Minimum memory required in Mb (required)
        "copies": {{1}},
    },
    limits = {},
)

now = datetime.now()
dt_string = now.strftime("%d-%m-%Y-%H-%M-%S")
model_name = "{{my-sm-model}}"+dt_string

# build your model with Model class
model = Model(
    name = "{{model-name}}",
    image_uri = "{{image-uri}}",
    model_data = model_url,
    role = "arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    resources = resources,
    predictor_cls = Predictor,
)
                        
# Alternate mechanism using ModelBuilder
# uncomment the following section to use ModelBuilder
/*
model_builder = ModelBuilder(
    model="{{<HuggingFace-ID>}}", # like "meta-llama/Llama-2-7b-hf"
    schema_builder=SchemaBuilder({{sample_input}},{{sample_output}}),
    env_vars={ "HUGGING_FACE_HUB_TOKEN": "{{<HuggingFace_token>}}}" }
)

# build your Model object
model = model_builder.build()

# create a unique name from string 'mb-inference-component'
model.model_name = unique_name_from_base("mb-inference-component")

# assign resources to your model
model.resources = resources
*/
```

------
#### [ boto3 inference components ]

次の例は、`create_endpoint_config` メソッドを使用してエンドポイントを設定しています。この設定を、エンドポイントの作成時に割り当てます。設定で、1 つ以上の本番稼働用バリアントを定義します。バリアントごとに、Amazon SageMaker AI がプロビジョニングするインスタンスタイプを選択し、マネージドインスタンススケーリングを有効化できます。

```
endpoint_config_name = "{{endpoint-config-name}}"
endpoint_name = "{{endpoint-name}}"
inference_component_name = "{{inference-component-name}}"
variant_name = "{{variant-name}}"

sagemaker_client.create_endpoint_config(
    EndpointConfigName = endpoint_config_name,
    ExecutionRoleArn = "arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    ProductionVariants = [
        {
            "VariantName": variant_name,
            "InstanceType": "{{ml.p4d.24xlarge}}",
            "InitialInstanceCount": {{1}},
            "ManagedInstanceScaling": {
                "Status": "{{ENABLED}}",
                "MinInstanceCount": {{1}},
                "MaxInstanceCount": {{2}},
            },
        }
    ],
)
```

------
#### [ boto3 models (without inference components) ]

**Example モデルの定義**  
次の例では、 AWS SDK for Python (Boto3)で `create_model`メソッドを使用して SageMaker AI モデルを定義します。  

```
model_name = "{{model-name}}"

create_model_response = sagemaker_client.create_model(
    ModelName = model_name,
    ExecutionRoleArn = "arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    PrimaryContainer = {
        "Image": "{{image-uri}}",
        "ModelDataUrl": model_url,
    }
)
```
この例では以下を指定します:  
+ `ModelName`: モデルの名前 (この例では、`model_name` という文字列変数として保存されています)。
+ `ExecutionRoleArn`: Amazon SageMaker AI が機械学習コンピューティングインスタンスへのデプロイまたはバッチ変換ジョブのためにモデルアーティファクトや Docker イメージにアクセスするのに使用できる IAM ロールの Amazon リソースネーム (ARN)。
+ `PrimaryContainer`: 推論コード、関連アーティファクト、予測のためにモデルがデプロイされるときに推論コードが使用するカスタム環境マップを含むプライマリ Docker イメージの場所。

**Example エンドポイント設定**  
次の例は、`create_endpoint_config` メソッドを使用してエンドポイントを設定しています。Amazon SageMaker AI はこの設定を使用してモデルをデプロイします。この設定では、`create_model` メソッドを使用して作成された 1 つ以上のモデルを特定して、Amazon SageMaker AI がプロビジョンするリソースをデプロイします。  

```
endpoint_config_response = sagemaker_client.create_endpoint_config(
    EndpointConfigName = "{{endpoint-config-name}}", 
    # List of ProductionVariant objects, one for each model that you want to host at this endpoint:
    ProductionVariants = [
        {
            "VariantName": "{{variant-name}}", # The name of the production variant.
            "ModelName": model_name, 
            "InstanceType": "{{ml.p4d.24xlarge}}",
            "InitialInstanceCount": {{1}} # Number of instances to launch initially.
        }
    ]
)
```
この例では、`ProductionVariants` フィールドに次のキーを指定します:  
+ `VariantName`: 本番稼働用バリアントの名前。
+ `ModelName`: ホストするモデルの名前。これは、モデル作成時に指定した名前です。
+ `InstanceType`: コンピューティングインスタンスタイプ。サポートされているコンピューティングインスタンスタイプとインスタンスタイプごとの料金のリストについては、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) の `InstanceType` フィールドと「[SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing/)」を参照してください。

------

### デプロイ
<a name="python-deploy"></a>

次の例は、モデルをエンドポイントにデプロイしています。

------
#### [ SageMaker Python SDK ]

次の例は、モデルオブジェクトの `deploy` メソッドを使用して、モデルをリアルタイムの HTTPS エンドポイントにデプロイします。モデルの作成とデプロイの両方の `resources` 引数に値を指定する場合は、デプロイに指定するリソースが優先されます。

```
predictor = model.deploy(
    initial_instance_count = {{1}},
    instance_type = "{{ml.p4d.24xlarge}}", 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    resources = resources,
)
```

この例では `instance_type` フィールドにモデルの Amazon EC2 インスタンスタイプの名前を指定します。`initial_instance_count` フィールドには、エンドポイントで実行されるインスタンスの初期数を指定します。

次のコードサンプルは、モデルをエンドポイントにデプロイし、別のモデルを同じエンドポイントにデプロイする別のケースを示しています。この場合、両方のモデルの `deploy` メソッドに同じエンドポイント名を指定する必要があります。

```
# Deploy the model to inference-component-based endpoint
falcon_predictor = falcon_model.deploy(
    initial_instance_count = 1,
    instance_type = "ml.p4d.24xlarge", 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    endpoint_name = "{{<endpoint_name>}}"
    resources = resources,
)

# Deploy another model to the same inference-component-based endpoint
llama2_predictor = llama2_model.deploy( # resources already set inside llama2_model
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    endpoint_name = "{{<endpoint_name>}}"  # same endpoint name as for falcon model
)
```

------
#### [ boto3 inference components ]

エンドポイント設定が完了したら、[create\_endpoint](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) メソッドを使用してエンドポイントを作成します。エンドポイント名は、アカウントの AWS リージョン AWS 内で一意である必要があります。

次の例では、リクエストで指定されたエンドポイント設定を使用してエンドポイントを作成しています。Amazon SageMaker AI は、エンドポイントを使用してリソースをプロビジョンします。

```
sagemaker_client.create_endpoint(
    EndpointName = endpoint_name,
    EndpointConfigName = endpoint_config_name,
)
```

エンドポイントを作成したら、推論コンポーネントを作成することで、エンドポイントに 1 つまたは複数のモデルをデプロイできます。次の例では、`create_inference_component` メソッドを使用して 1 つ作成しています。

```
sagemaker_client.create_inference_component(
    InferenceComponentName = inference_component_name,
    EndpointName = endpoint_name,
    VariantName = variant_name,
    Specification = {
        "Container": {
            "Image": "{{image-uri}}",
            "ArtifactUrl": model_url,
        },
        "ComputeResourceRequirements": {
            "NumberOfCpuCoresRequired": {{1}}, 
            "MinMemoryRequiredInMb": {{1024}}
        }
    },
    RuntimeConfig = {"CopyCount": {{2}}}
)
```

------
#### [ boto3 models (without inference components) ]

**Example トラブルシューティング**  

SageMaker AI にエンドポイント設定を提供します。このサービスは、ML コンピューティングインスタンスを起動し、設定で指定された 1 つ以上のモデルをデプロイします。

モデルとエンドポイントの設定が完了したら、[create\_endpoint](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) メソッドを使用してエンドポイントを作成します。エンドポイント名は、アカウントの AWS リージョン AWS 内で一意である必要があります。

次の例では、リクエストで指定されたエンドポイント設定を使用してエンドポイントを作成しています。Amazon SageMaker AI は、エンドポイントを使用してリソースをプロビジョンし、モデルをデプロイします。

```
create_endpoint_response = sagemaker_client.create_endpoint(
    # The endpoint name must be unique within an AWS Region in your AWS account:
    EndpointName = "{{endpoint-name}}"
    # The name of the endpoint configuration associated with this endpoint:
    EndpointConfigName = "{{endpoint-config-name}}")
```

------

## を使用してモデルをデプロイする AWS CLI
<a name="deploy-models-cli"></a>

を使用して、モデルをエンドポイントにデプロイできます AWS CLI。

### 概要
<a name="deploy-models-cli-overview"></a>

を使用してモデルをデプロイする場合 AWS CLI、推論コンポーネントを使用して、または使用せずにデプロイできます。その両方のアプローチで実行するコマンドを、以下のセクションにまとめます。これらのコマンドは、以下の例で示されています。

------
#### [ With inference components ]

推論コンポーネントを使用してモデルをデプロイするには、以下を実行します。

1. (オプション) [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html) コマンドを使用してモデルを作成します。

1. エンドポイント設定を作成して、エンドポイントを設定します。作成するには、[https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) コマンドを実行します。

1. [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) コマンドを使用してエンドポイントを作成します。コマンド本文で、作成したエンドポイント設定を指定します。

1. `create-inference-component` コマンドを使用して推論コンポーネントを作成します。設定で、次のいずれかを実行してモデルを指定します。
   + SageMaker AI モデルオブジェクトを指定する
   + モデルイメージ URI と S3 URL を指定する

   また、エンドポイントリソースをモデルに割り当てます。推論コンポーネントを作成することで、モデルがエンドポイントにデプロイされます。モデルごとに 1 つずつ、複数の推論コンポーネントを作成することで、複数のモデルをエンドポイントにデプロイできます。

------
#### [ Without inference components ]

推論コンポーネントを使用せずにモデルをデプロイするには、以下を実行します。

1. [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html) コマンドを使用して SageMaker AI モデルを作成します。

1. エンドポイント設定オブジェクトを作成して、エンドポイントの設定を指定します。作成するには、[https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) コマンドを使用します。エンドポイント設定で、モデルオブジェクトを本番稼働用のバリアントに割り当てます。

1. [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) コマンドを使用してエンドポイントを作成します。コマンド本文で、作成したエンドポイント設定を指定します。

   エンドポイントを作成すると、SageMaker AI はエンドポイントリソースをプロビジョニングし、モデルをエンドポイントにデプロイします。

------

### 構成する
<a name="cli-configure-endpoint"></a>

次の例では、モデルをエンドポイントにデプロイするために必要なリソースを設定します。

------
#### [ With inference components ]

**Example create-endpoint-config コマンド**  
以下の例は、[create-endpoint-config](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) コマンドを使用してエンドポイント設定を作成します。  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name {{endpoint-config-name}} \
--execution-role-arn arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}\
--production-variants file://production-variants.json
```
この例で、次の JSON を使用して本番稼働用バリアントを `production-variants.json` ファイルに定義します。  

```
[
    {
        "VariantName": "{{variant-name}}",
        "ModelName": "{{model-name}}",
        "InstanceType": "{{ml.p4d.24xlarge}}",
        "InitialInstanceCount": {{1}}
    }
]
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------
#### [ Without inference components ]

**Example create-model コマンド**  
次の例では、[create-model](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html) コマンドを使用してモデルを作成します。  

```
aws sagemaker create-model \
--model-name {{model-name}} \
--execution-role-arn arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}} \
--primary-container "{ \"Image\": \"{{image-uri}}\", \"ModelDataUrl\": \"{{model-s3-url}}\"}"
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "ModelArn": "arn:aws:sagemaker:us-west-2:111122223333:model/model-name"
}
```

**Example create-endpoint-config コマンド**  
以下の例は、[create-endpoint-config](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) コマンドを使用してエンドポイント設定を作成します。  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name {{endpoint-config-name}} \
--production-variants file://production-variants.json
```
この例で、次の JSON を使用して本番稼働用バリアントを `production-variants.json` ファイルに定義します。  

```
[
    {
        "VariantName": "{{variant-name}}",
        "ModelName": "{{model-name}}",
        "InstanceType": "{{ml.p4d.24xlarge}}",
        "InitialInstanceCount": {{1}}
    }
]
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------

### デプロイ
<a name="cli-deploy"></a>

次の例は、モデルをエンドポイントにデプロイしています。

------
#### [ With inference components ]

**Example create-endpoint コマンド**  
次の例は、[create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) コマンドを使用してエンドポイントを作成します。  

```
aws sagemaker create-endpoint \
--endpoint-name {{endpoint-name}} \
--endpoint-config-name {{endpoint-config-name}}
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

**Example create-inference-component コマンド**  
次の例は、create-inference-component コマンドを使用して推論コンポーネントを作成します。  

```
aws sagemaker create-inference-component \
--inference-component-name {{inference-component-name}} \
--endpoint-name {{endpoint-name}} \
--variant-name {{variant-name}} \
--specification file://specification.json \
--runtime-config "{{{\"CopyCount\": 2}}}"
```
この例では、コンテナと演算処理リソースが、次の JSON を使用して `specification.json` ファイルに定義されています。  

```
{
    "Container": {
        "Image": "{{image-uri}}",
        "ArtifactUrl": "{{model-s3-url}}"
    },
    "ComputeResourceRequirements": {
        "NumberOfCpuCoresRequired": 1,
        "MinMemoryRequiredInMb": 1024
    }
}
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "InferenceComponentArn": "arn:aws:sagemaker:us-west-2:111122223333:inference-component/inference-component-name"
}
```

------
#### [ Without inference components ]

**Example create-endpoint コマンド**  
次の例は、[create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) コマンドを使用してエンドポイントを作成します。  

```
aws sagemaker create-endpoint \
--endpoint-name {{endpoint-name}} \
--endpoint-config-name {{endpoint-config-name}}
```
コマンドが成功すると、 は作成したリソースの ARN で AWS CLI 応答します。  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

------