エンドポイントにモデルをデプロイする - Amazon SageMaker

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

エンドポイントにモデルをデプロイする

Amazon SageMaker Canvas では、モデルをエンドポイントにデプロイして予測を行うことができます。 は、選択したコンピューティングインスタンスを使用してモデルをエンドポイントでホストするための ML インフラストラクチャ SageMaker を提供します。その後、エンドポイントを呼び出し (予測リクエストを送信)、モデルからリアルタイム予測を取得できます。この機能を使用すると、本番環境でモデルを使用して受信リクエストに応答し、モデルを既存のアプリケーションやワークフローと統合できます。

開始するには、デプロイするモデルが必要です。構築したカスタムモデルバージョン、Amazon SageMaker JumpStart 基盤モデル、および微調整された JumpStart 基盤モデルをデプロイできます。Canvas でモデルを構築する方法の詳細については、「」を参照してくださいカスタムモデルを構築する。Canvas の基盤モデルの詳細については JumpStart、「」を参照してください生成系 AI を基盤モデルと併用する

次のアクセス許可管理セクションを確認し、モデルのデプロイセクションで新しいデプロイの作成を開始します。

権限の管理

デフォルトでは、モデルを SageMaker ホスティングエンドポイントにデプロイするアクセス許可があります。 は、Canvas アプリケーションをホストする SageMaker ドメインIAMの実行ロールに AWS アタッチされているAmazonSageMakerCanvasFullAccessポリシーを通じて、すべての新規および既存の Canvas ユーザープロファイルに対してこれらのアクセス許可 SageMaker を付与します。

Canvas 管理者が新しいドメインまたはユーザープロファイルを設定している場合、ドメインを設定し、「」の前提条件に従っているときにAmazon SageMaker Canvas を設定するための前提条件、 SageMakerデフォルトで有効になっている Canvas モデルの直接デプロイを有効にするオプションを使用して、モデルのデプロイ許可を有効にします。

Canvas 管理者は、ユーザープロファイルレベルでモデルデプロイのアクセス許可を管理することもできます。例えば、管理者がドメインの設定時にすべてのユーザープロファイルにモデルデプロイ許可を付与したくない場合は、ドメインの作成後に特定のユーザーに許可を付与できます。

次の手順は、特定のユーザープロファイルのモデルデプロイ許可を変更する方法を示しています。

  1. で SageMaker コンソールを開きますhttps://console.aws.amazon.com/sagemaker/

  2. 左のナビゲーションペインで、[管理設定‭] を選択します。

  3. 管理者設定 で、ドメイン を選択します。

  4. ドメインのリストから、ユーザープロファイルのドメインを選択します。

  5. ドメインの詳細ページで、アクセス許可を編集するユーザープロファイルを選択します。

  6. [ユーザーの詳細] ページで、[編集] を選択します。

  7. 左側のナビゲーションペインで、[Canvas の設定] を選択します。

  8. ML Ops アクセス許可設定セクションで、Canvas モデルの直接デプロイを有効にするトグルをオンにして、デプロイアクセス許可を有効にします。

  9. 送信 を選択して、ドメイン設定の変更を保存します。

これで、ユーザープロファイルにモデルデプロイのアクセス許可が付与されます。

ドメインまたはユーザープロファイルにアクセス許可を付与したら、ユーザーが Canvas アプリケーションからログアウトし、再度ログインしてアクセス許可の変更を適用していることを確認します。

モデルをデプロイする

モデルのデプロイを開始するには、Canvas で新しいデプロイを作成し、モデルのホストに使用するコンピューティングインスタンスのタイプや数など、ML インフラストラクチャとともにデプロイするモデルバージョンを指定します。

Canvas は、モデルタイプに基づいてデフォルトのタイプとインスタンス数を提案します。または、Amazon SageMaker 料金ページ でさまざまな SageMaker インスタンスタイプの詳細を確認できます。エンドポイントがアクティブな間は、 SageMaker インスタンスの料金に基づいて課金されます。

JumpStart 基盤モデルをデプロイする場合、デプロイ時間の長さを指定するオプションもあります。モデルはエンドポイントに無期限にデプロイできます (つまり、デプロイを削除するまでエンドポイントがアクティブになります)。または、エンドポイントを短期間だけ必要とし、コストを削減したい場合は、指定された期間、モデルをエンドポイントにデプロイし、その後でエンドポイントを SageMaker シャットダウンできます。

注記

指定した期間モデルをデプロイする場合は、エンドポイントの期間中は Canvas アプリケーションにログインしたままにします。アプリケーションからログアウトまたは削除すると、Canvas は指定された時間にエンドポイントをシャットダウンできません。

モデルが SageMaker ホスティングリアルタイム推論エンドポイント にデプロイされたら、エンドポイントを呼び出すことで予測を開始できます。

Canvas アプリケーションからモデルをデプロイする方法は複数あります。モデルデプロイオプションには、次のいずれかの方法でアクセスできます。

  • Canvas アプリケーションのマイモデルページで、デプロイするモデルを選択します。次に、モデルのバージョンページから、モデルバージョンの横にあるその他のオプションアイコン ( Vertical ellipsis icon representing a menu or more options. ) を選択し、 をデプロイを選択します

  • モデルバージョンの詳細ページで分析タブで、デプロイオプションを選択します。

  • モデルバージョンの詳細ページで予測タブで、ページの上部にあるその他のオプションアイコン ( Vertical ellipsis icon representing a menu or more options. ) を選択し、 をデプロイを選択します

  • Canvas アプリケーションの ML Ops ページで、デプロイタブを選択し、デプロイの作成を選択します

  • JumpStart 基盤モデルと微調整された基盤モデルについては、Canvas アプリケーションの R eady-to-use モデルページを参照してください。[コンテンツの生成、抽出、要約] を選択します。次に、デプロイする JumpStart 基盤モデルまたは微調整された基盤モデルを見つけます。モデルを選択し、モデルのチャットページでデプロイボタンを選択します。

これらのメソッドはすべて、デプロイモデルサイドパネルを開き、モデルのデプロイ設定を指定します。このパネルからモデルをデプロイするには、次の手順を実行します。

  1. (オプション) ML Ops ページからデプロイを作成する場合は、モデルとバージョン を選択するオプションがあります。ドロップダウンメニューを使用して、デプロイするモデルとモデルバージョンを選択します。

  2. デプロイ名フィールドに名前を入力します。

  3. ( JumpStart 基盤モデルと微調整された基盤モデルのみ) デプロイの長さを選択します。無期限 を選択して、エンドポイントをシャットダウンするまでアクティブのままにするか、長さを指定 を選択して、エンドポイントをアクティブのままにする期間を入力します。

  4. インスタンスタイプ の場合、 はモデルに適したデフォルトのインスタンスタイプと数 SageMaker を検出します。ただし、モデルのホストに使用するインスタンスタイプは変更できます。

    注記

    AWS アカウントで選択したインスタンスタイプのインスタンスクォータを使い果たした場合は、クォータの引き上げをリクエストできます。デフォルトのクォータと引き上げをリクエストする方法の詳細については、「 AWS 全般のリファレンスガイド」の「Amazon SageMaker エンドポイントとクォータ」を参照してください。

  5. インスタンス数 では、エンドポイントに使用されるアクティブなインスタンスの数を設定できます。 はモデルに適したデフォルトの数 SageMaker を検出しますが、この数は変更できます。

  6. モデルをデプロイする準備ができたら、デプロイ を選択します。

これで、モデルはエンドポイントにデプロイされるはずです。デプロイの詳細を表示したり、さまざまなアクションを実行したりする方法については、以下のセクションを参照してください。

デプロイを表示する

Canvas でのモデルデプロイのステータスまたは詳細を確認することをお勧めします。例えば、デプロイが失敗した場合は、トラブルシューティングの詳細を確認することをお勧めします。

Canvas モデルのデプロイは、Canvas アプリケーションまたは Amazon SageMaker コンソールから表示できます。

Canvas からデプロイの詳細を表示するには、次のいずれかの手順を選択します。

ML Ops ページからデプロイの詳細を表示するには、次の手順を実行します。

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

  2. 左側のナビゲーションペインで、ML Ops を選択します。

  3. [Deployment] (デプロイ) タブを選択します。

  4. リストからデプロイを名前で選択します。

モデルバージョンのページからデプロイの詳細を表示するには、次の手順を実行します。

  1. SageMaker Canvas アプリケーションで、モデルバージョンの詳細ページに移動します。

  2. デプロイタブを選択します。

  3. そのモデルバージョンに関連付けられているすべてのデプロイ設定を一覧表示するデプロイセクションで、デプロイを見つけます。

  4. 詳細オプションアイコン ( Vertical ellipsis icon representing a menu or more options. ) を選択し、詳細を表示を選択して詳細ページを開きます。

デプロイの詳細ページが開き、最新の予測時刻、エンドポイントのステータスと設定、エンドポイントに現在デプロイされているモデルバージョンなどの情報を表示できます。

SageMaker コンソールSageMaker ダッシュボードから、現在アクティブな Canvas ワークスペースインスタンスとアクティブなエンドポイントを表示することもできます。Canvas エンドポイントは、作成した他の SageMaker ホスティングエンドポイントと一緒にリストされ、Canvas タグでエンドポイントを検索してフィルタリングできます。

次のスクリーンショットは、 SageMaker ダッシュボードを示しています。Canvas セクションでは、1 つのワークスペースインスタンスが稼働中であり、4 つのエンドポイントがアクティブであることがわかります。

アクティブな Canvas ワークスペースインスタンスとエンドポイントを示す SageMaker ダッシュボードのスクリーンショット。

デプロイ設定を更新する

デプロイ設定を更新することもできます。例えば、更新されたモデルバージョンをエンドポイントにデプロイしたり、容量のニーズに基づいてエンドポイントの背後にあるインスタンスタイプやインスタンス数を更新したりできます。

Canvas アプリケーションからデプロイを更新するには、いくつかの方法があります。次のいずれかの方法を使用できます。

  • Canvas アプリケーションの ML Ops ページで、デプロイタブを選択し、更新するデプロイを選択できます。次に、設定の更新 を選択します。

  • モデルバージョンの詳細ページで、デプロイタブで、そのバージョンのデプロイを表示できます。デプロイの横にある「その他のオプション」アイコン ( Vertical ellipsis icon representing a menu or more options. ) を選択し、「設定の更新」を選択します。

上記のどちらの方法でも、設定の更新サイドパネルが開き、デプロイ設定を変更できます。設定を更新するには、次の手順を実行します。

  1. バージョンの選択ドロップダウンメニューで、エンドポイントにデプロイする別のモデルバージョンを選択できます。

    注記

    デプロイ設定を更新する場合、デプロイする別のモデルバージョンのみを選択できます。別のモデルをデプロイするには、新しいデプロイを作成します。

  2. インスタンスタイプ では、モデルをホストするために別のインスタンスタイプを選択できます。

  3. インスタンス数 では、エンドポイントに使用されるアクティブなインスタンスの数を変更できます。

  4. [Save] を選択します。

これで、デプロイ設定が更新されます。

デプロイをテストする

Canvas アプリケーションを通じてエンドポイントを呼び出すか、単一の予測リクエストを行うことで、デプロイをテストできます。この機能を使用すると、エンドポイントを本番環境でプログラムで呼び出す前に、エンドポイントがリクエストに応答することを確認できます。

カスタムモデルのデプロイをテストする

ML Ops ページからカスタムモデルのデプロイにアクセスし、1 回の呼び出しを行うことで、予測が正しい確率とともに予測を返すので、カスタムモデルのデプロイをテストできます。

注記

実行の長さは、Canvas のエンドポイントを呼び出してレスポンスを取得するのにかかる時間の見積もりです。レイテンシーメトリクスの詳細については、SageMaker 「エンドポイント呼び出しメトリクス」を参照してください。

Canvas アプリケーションを使用してエンドポイントをテストするには、次の手順を実行します。

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

  2. 左側のナビゲーションパネルで、ML Ops を選択します。

  3. [Deployment] (デプロイ) タブを選択します。

  4. デプロイのリストから、呼び出すエンドポイントを持つデプロイを選択します。

  5. デプロイの詳細ページで、デプロイのテストタブを選択します。

  6. デプロイテストページで、フィールドを変更して新しいデータポイントを指定できます。時系列予測モデルでは、予測を行う項目 ID を指定します。

  7. 値を変更したら、更新 を選択して予測結果を取得します。

予測は、呼び出しが成功したかどうか、およびリクエストの処理にかかった時間を示す呼び出し結果フィールドとともにロードされます。

次のスクリーンショットは、デプロイのテストタブの Canvas アプリケーションで実行された予測を示しています。

デプロイされたモデルのテスト予測を示す Canvas アプリケーション。

数値予測と時系列予測を除くすべてのモデルタイプについて、予測は次のフィールドを返します。

  • predicted_label – 予測された出力

  • probability – 予測ラベルが正しい確率

  • labels – 使用可能なすべてのラベルのリスト

  • 確率 – 各ラベルに対応する確率 (このリストの順序はラベルの順序と一致します)

数値予測モデルの場合、予測にはスコアフィールドのみが含まれます。スコアフィールドは、家の予測価格など、モデルの予測出力です。

時系列予測モデルの場合、予測は分位数別の予測を示すグラフです。スキーマビューを選択すると、各分位数の予測数値を表示できます。

デプロイテストページから単一の予測を引き続き行うか、次のセクションを参照して、アプリケーションからプログラムでエンドポイントエンドポイントを呼び出すを呼び出す方法を学習できます。

JumpStart 基盤モデルのデプロイをテストする

Canvas アプリケーションを使用してデプロイされた JumpStart 基盤モデルまたは微調整された基盤モデルとチャットし、コードを呼び出す前にその機能をテストできます。

デプロイされた JumpStart 基盤モデルまたは微調整された基盤モデルとチャットするには、次の手順を実行します。

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

  2. 左側のナビゲーションパネルで、ML Ops を選択します。

  3. [Deployment] (デプロイ) タブを選択します。

  4. デプロイのリストから、呼び出すデプロイを見つけ、その他のオプションアイコン () を選択します Vertical ellipsis icon representing a menu or more options.

  5. コンテキストメニューから、デプロイのテスト を選択します。

  6. 新しい「コンテンツチャットの生成、抽出、要約」が JumpStart 基盤モデルとともに開き、プロンプトの入力を開始できます。このチャットからのプロンプトは、 SageMaker ホスティングエンドポイントへのリクエストとして送信されることに注意してください。

エンドポイントを呼び出す

デプロイをテストした後、他のSageMaker リアルタイムエンドポイント を呼び出すのと同じ方法でエンドポイントをプログラムで呼び出すことで、アプリケーションで本番環境でエンドポイントを使用できます。エンドポイントを呼び出すと、前のセクション で説明したのと同じフィールドを含むレスポンスオブジェクトがプログラムで返されますデプロイをテストする

エンドポイントをプログラムで呼び出す方法の詳細については、「」を参照してくださいリアルタイム推論用のモデルを呼び出す

次の Python の例は、モデルタイプに基づいてエンドポイントを呼び出す方法を示しています。

次の例は、エンドポイントにデプロイした JumpStart 基盤モデルまたは微調整された基盤モデルを呼び出す方法を示しています。

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame( [['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']] ).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

次の例は、数値予測モデルまたはカテゴリ予測モデルを呼び出す方法を示しています。

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

次の例は、時系列予測モデルを呼び出す方法を示しています。時系列予測モデルの呼び出しをテストする方法の完全な例については、「Amazon SageMaker Autopilot による時系列予測」を参照してください。

import boto3 import pandas as pd csv_path = './real-time-payload.csv' data = pd.read_csv(csv_path) client = boto3.client("runtime.sagemaker") body = data.to_csv(index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

次の例は、画像予測モデルを呼び出す方法を示しています。

import boto3 client = boto3.client("runtime.sagemaker") with open("example_image.jpg", "rb") as file: body = file.read() response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="application/x-image", Body=body, Accept="application/json" )

次の例は、テキスト予測モデルを呼び出す方法を示しています。

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

モデルのデプロイを削除する

Canvas アプリケーションからモデルデプロイを削除できます。このアクションは、 SageMaker コンソールからエンドポイントを削除し、エンドポイント関連のリソースをシャットダウンします。

注記

オプションで、SageMaker コンソールまたは DeleteEndpoint を使用して SageMakerエンドポイントを削除できますAPI。詳細については、「エンドポイントとリソースを削除する」を参照してください。ただし、 SageMaker コンソールから、または Canvas アプリケーションAPIsの代わりにエンドポイントを削除しても、Canvas のデプロイのリストは自動的に更新されません。また、Canvas アプリケーションからデプロイを削除する必要があります。

Canvas でデプロイを削除するには、次の手順を実行します。

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

  2. 左側のナビゲーションパネルで、ML Ops を選択します。

  3. [Deployment] (デプロイ) タブを選択します。

  4. デプロイのリストから、削除するデプロイを選択します。

  5. デプロイの詳細ページの上部で、その他のオプションアイコン () を選択します Vertical ellipsis icon representing a menu or more options.

  6. デプロイの削除 を選択します。

  7. 「デプロイの削除」ダイアログボックスで、「 の削除」を選択します。

これで、デプロイエンドポイントと SageMaker ホスティングエンドポイントが Canvas と SageMaker コンソールの両方から削除されるはずです。デプロイが正常に削除されると、ステータスが Deleted の Canvas デプロイのリストに表示されます。