Amazon SageMaker でモデルをデプロイする - Amazon SageMaker

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

Amazon SageMaker でモデルをデプロイする

モデルをトレーニングしたら、Amazon SageMaker を使用してモデルをデプロイし、次のいずれかの方法で予測を取得することができます。

  • 一度に 1 つの予測を取得できるように、永続エンドポイントを設定するには、SageMaker ホスティングサービスを使用します。

  • データセット全体の予測を取得するには、SageMaker バッチ変換を使用します。

SageMaker ホスティングサービスでモデルをデプロイする

SageMaker ホスティングサービスにモデルをデプロイする方法の例については、」を参照してください。SageMaker ホスティングサービスにモデルをデプロイする

または、必要に応じて、次の動画チュートリアルをご覧ください。

SageMaker は、次の図に示すように、モデルデプロイメント用のモデルホスティングサービスを提供します。SageMaker は HTTPS エンドポイントを提供し、機械学習モデルが推論を提供できます。

SageMaker のホスティングサービスを使用したモデルのデプロイメントは、3 つのステップで構成されるプロセスです。

  1. SageMaker でモデルを作成する-モデルを作成することによって、SageMaker にモデルコンポーネントのある場所を伝えます。これには、モデルアーティファクトが保存される S3 パスと、推論コードを含むイメージの Docker レジストリパスが含まれます。後続のデプロイメントステップでは、モデルを名前で指定します。詳細については、「 CreateModel API」を参照してください。

    注記

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

  2. HTTPS エンドポイントのエンドポイント設定を作成する-本番稼働用バリアントの 1 つ以上のモデルの名前と、本番稼働用バリアントをホストするために SageMaker が起動する ML コンピューティングインスタンスを指定します。

    注記

    SageMaker は、(a) 複数のモデル、(b) モデルの複数のバリエーション、または (c) 同じエンドポイントでのモデルとバリアントの組み合わせの実行をサポートしています。モデルバリアントは、同じモデル推論コンテナを参照することができる(つまり、同じアルゴリズムを実行する)が、異なるモデル成果物(例えば、他のハイパーパラメータ構成に基づく異なるモデル重み値)を使用する。対照的に、2つの異なるモデルは同じアルゴリズムを使用しますが、異なるビジネス上の問題や基礎となる目標に重点を置き、異なるデータセットで動作する可能性があります。

    本番環境でモデルをホスティングする場合、デプロイされた ML コンピューティングインスタンスを伸縮自在にスケールするようにエンドポイントを設定できます。各本番稼働用バリアントについて、デプロイする ML コンピューティングインスタンスの数を指定します。2 つ以上のインスタンスを指定すると、SageMaker はそれらを複数のアベイラビリティーゾーンで起動します。これにより、継続的な可用性を保証します。SageMaker はインスタンスのデプロイを管理します。詳細については、「 CreateEndpointConfig API」を参照してください。

  3. HTTPS エンドポイントの作成-エンドポイント設定を SageMaker に提供します。このサービスは、ML コンピューティングインスタンスを起動し、設定で指定された 1 つ以上のモデルをデプロイします。詳細については、「 CreateEndpoint API」を参照してください。モデルから推論を取得するには、クライアントアプリケーションは SageMaker Runtime HTTPS エンドポイントにリクエストを送信します。API の詳細については、「 InvokeEndpointAPI」を参照してください。

    注記

    エンドポイントは個別の AWS アカウントをスコープとし、パブリックではありません。URL にはアカウント ID が含まれませんが、SageMaker は発信者が提供する認証トークンからアカウント ID を確認します。

    Amazon API Gateway の使用方法の例とAWS Lambdaを使用して、アカウントのスコープ内にないクライアントアプリケーションから呼び出すことができる Web サービスをセットアップおよびデプロイする方法の詳細については、Amazon API Gateway を使用して SageMaker モデルエンドポイントを呼び出し、AWS Lambda()AWSMachine Learning ブログ

注記

エンドポイントを作成すると、SageMaker は、エンドポイントをホストする各 ML コンピューティングインスタンスに Amazon EBS ストレージボリュームをアタッチします。ストレージボリュームのサイズは、インスタンスタイプによって異なります。SageMaker ホスティングサービスでサポートされているインスタンスタイプのリストについては、」を参照してください。AWSサービス制限。SageMaker によって各インスタンスにアタッチされるストレージボリュームのサイズのリストについては、」を参照してください。ホストインスタンスストレージボリューム

モデルの正確さを向上させるために、ユーザーの入力データとグランドトゥルース (利用可能な場合) をトレーニングデータの一部として保存することができます。その後、より大きく、改善されたトレーニングデータセットを使用して、モデルを定期的に再トレーニングすることができます。

SageMaker ホスティングサービスを使用してモデルをホスティングする場合は、次の点を考慮してください。

  • 通常、クライアントアプリケーションは SageMaker HTTPS エンドポイントにリクエストを送信し、デプロイされたモデルから推論を取得します。テスト中に Jupyter ノートブックからこのエンドポイントにリクエストを送信することもできます。

     

  • SageMaker を使用してトレーニングを受けたモデルを、独自のデプロイメントターゲットにデプロイできます。そのためには、モデルトレーニングによって生成されたモデルアーティファクトのアルゴリズム固有の形式を知る必要があります。出力形式の詳細については、「トレーニングの共通データ形式」の使用しているアルゴリズムに対応するセクションを参照してください。

     

  • モデルの複数のバリアントを同じ SageMaker HTTPS エンドポイントにデプロイすることができます。これは、本番環境でモデルのバリエーションをテストするのに役立ちます。たとえば、モデルを本番環境にデプロイしたとします。たとえば、5% という少量のトラフィックを新しいモデルに転送することで、モデルのバリエーションをテストします。これを行うには、モデルの両方のバリエーションを記述するエンドポイント設定を作成します。ProductionVariantCreateEndPointConfig へのリクエストに指定します。詳細については、「ProductionVariant」を参照してください。

     

  • あなたは、構成することができますProductionVariantApplication Auto Scaling を使用します。自動スケーリングの設定については、「Amazon SageMaker モデルの自動スケーリング」を参照してください。

     

  • すでに実稼働環境にデプロイされているモデルを停止中の状態にすることなく、エンドポイントを変更することができます。たとえば、新しいモデルバリアントを追加したり、既存のモデルバリアントの ML コンピューティングインスタンス設定を更新したり、モデルバリアント間のトラフィックの分散を変更することができます。エンドポイントを変更するには、新しいエンドポイント設定を指定します SageMaker はダウンタイムなしで変更を実装します。詳細については、「UpdateEndpoint」および「 UpdateEndpointWeightsAndCapacities」を参照してください。

     

  • モデルアーティファクトを変更または削除したり、モデルをデプロイした後に推論コードを変更すると、予期しない結果が生じます。モデルアーティファクトの変更や削除、または推論コードの変更が必要な場合は、新しいエンドポイント設定を提供してエンドポイントを変更します。新しいエンドポイント設定を指定すると、古いエンドポイント設定に対応するモデルアーティファクトを変更または削除できます。

     

  • データセット全体の推論を取得するには、ホスティングサービスの代わりにバッチ変換を使用することを検討してください。詳細については、バッチ変換を使用してデータセット全体の推論を取得する を参照してください。