Amazon SageMaker Serverless Inference を使用したモデルのデプロイ - Amazon SageMaker

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

Amazon SageMaker Serverless Inference を使用したモデルのデプロイ

Amazon SageMaker Serverless Inference は、基盤となるインフラストラクチャを設定または管理することなく、ML モデルをデプロイおよびスケーリングできる専用の推論オプションです。オンデマンドのサーバーレス推論は、トラフィックの増加の間にアイドル期間があり、コールドスタートを許容できるワークロードに最適です。サーバーレスエンドポイントは、コンピューティングリソースを自動的に起動し、トラフィックに応じてスケールインおよびスケールアウトできるため、インスタンスタイプを選択したり、スケーリングポリシーを管理したりする必要がなくなります。これにより、サーバーを選択し管理する画一的な負荷の大きい作業から解放されます。サーバーレス推論は AWS Lambda と統合され、高可用性、組み込みの耐障害性、オートスケーリングを提供します。 pay-per-use モデルでは、トラフィックパターンの頻度が低い、または予測不可能な場合、サーバーレス推論は費用対効果の高いオプションです。リクエストがない間、サーバーレス推論はエンドポイントを 0 にスケールダウンし、コストを最小限に抑えます。オンデマンドサーバーレス推論の料金の詳細については、「Amazon の SageMaker 料金」を参照してください。

オプションで、サーバーレス推論でプロビジョニングされた同時実行を利用することもできます。プロビジョニングされた同時実行を使用したサーバーレス推論は、トラフィックの急増が予測できる場合に費用対効果の高いオプションです。プロビジョニングされた同時実行では、エンドポイントをウォームに保つことで、予測可能なパフォーマンスと高いスケーラビリティを備えたサーバーレスエンドポイントにモデルをデプロイできます。 は、割り当てるプロビジョニングされた同時実行の数に対してコンピューティングリソースが初期化され、ミリ秒以内に応答する準備ができていること SageMaker を確実にします。プロビジョニングされた同時実行を使用したサーバーレス推論では、推論リクエストの処理に使用されたコンピューティング性能 (ミリ秒単位で課金)、および処理されたデータ量に対して料金を支払います。また、設定されているメモリ、プロビジョニングされた期間、および有効になっている同時実行数に基づいて、プロビジョニングされた同時実行の使用量に対しても料金が発生します。プロビジョニングされた同時実行によるサーバーレス推論の料金の詳細については、「Amazon の SageMaker 料金」を参照してください。

サーバーレス推論を MLOps パイプラインと統合して ML ワークフローを効率化できます。また、サーバーレスエンドポイントを使用してモデルレジストリに登録されたモデルをホストできます。

サーバーレス推論は、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アフリカ (ケープタウン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (東京)、アジアパシフィック (ソウル)、アジアパシフィック (大阪)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (パリ)、欧州 (ストックホルム)、欧州 (ミラノ)、中東 (バーレーン)、南米 (サンパウロ) の 21 AWS リージョンで一般利用可能です。Amazon SageMaker リージョンの可用性の詳細については、AWS 「リージョンサービスリスト」を参照してください。

仕組み

次の図表は、オンデマンドのサーバーレス推論のワークフローと、サーバーレスエンドポイントを使用する利点を示しています。

サーバーレス推論ワークフローを示す図。

オンデマンドサーバーレスエンドポイントを作成すると、 はコンピューティングリソースを SageMaker プロビジョニングおよび管理します。その後、エンドポイントに推論リクエストを行い、レスポンスでモデル予測を受信できます。 は、リクエストトラフィックを処理するために必要に応じてコンピューティングリソースをスケールアップまたは SageMaker スケールダウンし、使用した分に対してのみ料金が発生します。

プロビジョニングされた同時実行については、サーバーレス推論はアプリケーションの自動スケーリングとも統合されるため、ターゲットメトリクスまたはスケジュールに基づいてプロビジョニングされた同時実行を管理できます。詳細については、「サーバーレスエンドポイントのプロビジョニングされた同時実行の自動スケール」を参照してください。

次のセクションでは、サーバーレス推論とその仕組みに関する追加の詳細について説明します。

コンテナのサポート

エンドポイントコンテナでは、 SageMakerが提供するコンテナを選択するか、独自のコンテナを持ち込むことができます。 は、組み込みアルゴリズム用のコンテナと、Apache MXNet 、 TensorFlow PyTorch、Chainer などの一般的な機械学習フレームワーク用の事前構築済みの Docker イメージ SageMaker を提供します。利用可能な SageMaker イメージのリストについては、「利用可能な深層学習コンテナイメージ」を参照してください。独自のコンテナを持ち込む場合は、 を使用するようにコンテナを変更する必要があります SageMaker。独自のコンテナの持ち込みの詳細については、「Amazon 用の独自の推論コンテナを適応させる SageMaker」を参照してください。

使用できるコンテナイメージの最大サイズは 10 GB です。サーバーレスエンドポイントの場合、コンテナ内にワーカーを 1 つだけ作成し、モデルのコピーを 1 つだけロードすることをお勧めします。これはリアルタイムエンドポイントとは異なります。コンテナによっては、vCPU ごとにワーカーを作成して推論リクエストを処理し、各ワーカーにモデルをロード SageMaker する場合があります。

リアルタイムエンドポイント用のコンテナが既にある場合は、サーバーレスエンドポイントに同じコンテナを使用できますが、一部の機能は除外されます。サーバーレス推論でサポートされていないコンテナ機能の詳細については、「機能の除外」を参照してください。同じコンテナを使用する場合は、イメージを使用するすべてのエンドポイントを削除するまで、コンテナイメージのコピーを SageMaker エスクロー (保持) します。 は、コピーされたイメージを保管中に SageMaker所有の AWS KMS キーで SageMaker 暗号化します。

メモリサイズ

サーバーレスエンドポイントの最小 RAM サイズは 1024 MB (1 GB) で、選択できる最大 RAM サイズは 6144 MB (6 GB) です。選択できるメモリサイズは、1024 MB、2048 MB、3072 MB、4096 MB、5120 MB、6144 MBです。サーバーレス推論は、選択したメモリに比例してコンピューティングリソースを自動的に割り当てます。より大きなメモリサイズを選択すると、コンテナはより多くの vCPUs にアクセスできます。モデルサイズに応じて、エンドポイントのメモリサイズを選択します。一般に、メモリサイズは少なくともモデルサイズと同じ大きさである必要があります。レイテンシー SLA に基づいてモデルに適したメモリを選択するために、ベンチマークが必要になる場合があります。ベンチマークのステップバイステップガイドについては、「Amazon SageMaker Serverless Inference Benchmarking Toolkit の紹介」を参照してください。メモリサイズ増分の料金は異なります。詳細については、「Amazon SageMaker の料金」ページを参照してください。

選択したメモリサイズに関係なく、サーバーレスエンドポイントには 5 GB の利用可能なエフェメラルディスクストレージがあります。ストレージを操作するときのコンテナ許可の問題については、「トラブルシューティング」を参照してください。

同時呼び出し

オンデマンドサーバーレス推論は、エンドポイントの容量に関する事前定義されたスケーリングポリシーとクォータを管理します。サーバーレスエンドポイントには、同時に処理できる同時呼び出しの数に対するクォータがあります。最初のリクエストの処理が完了する前にエンドポイントが呼び出されると、2 番目のリクエストを同時に処理します。

アカウント内のすべてのサーバーレスエンドポイント間で共有できる同時実行数の合計は、次のようにリージョンによって異なります。

  • アカウントにおけるリージョンごとにすべてのサーバーレスエンドポイント間で共有できる同時実行数の合計が 1000 になるリージョン: 米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アイルランド)

  • アカウントにおけるリージョンごとの合計同時実行数が 500 になるリージョン: 米国西部 (北カリフォルニア)、アフリカ (ケープタウン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (大阪)、アジアパシフィック (ソウル)、カナダ (中部)、欧州 (ロンドン)、欧州 (ミラノ)、欧州 (パリ)、欧州 (ストックホルム)、中東 (バーレーン)、南米 (サンパウロ)

1 つのエンドポイントの最大同時実行数は最大 200 に設定でき、リージョンでホストできるサーバーレスエンドポイントの合計数は 50 です。個々のエンドポイントの最大同時実行数は、そのエンドポイントがアカウントで許可されているすべての呼び出しを取得することを防ぎ、最大値を超えるエンドポイント呼び出しをスロットリングします。

注記

サーバーレスエンドポイントに割り当てるプロビジョニングされた同時実行数は、常にそのエンドポイントに割り当てた最大同時実行数以下でなければなりません。

エンドポイントの最大同時実行数を設定する方法については、「エンドポイント設定を作成する」を参照してください。クォータと制限の詳細については、「」の「Amazon SageMaker エンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス。サービスの制限の引き上げをリクエストするには、「AWS サポート」までお問い合わせください。サービス制限の引き上げリクエストについては、「サポートされているリージョンおよびクォータ」を参照してください。

コールドスタートの最小化

オンデマンドサーバーレス推論エンドポイントがしばらくトラフィックを受信せず、エンドポイントが突然新しいリクエストを受信した場合、エンドポイントがコンピューティングリソースをスピンアップしてリクエストを処理するまでに時間がかかることがあります。これは、コールドスタートと呼ばれます。サーバーレスエンドポイントはオンデマンドでコンピューティングリソースをプロビジョニングするため、エンドポイントでコールドスタートが発生する可能性があります。コールドスタートは、同時リクエストが現在の同時リクエストの使用量を超えた場合にも発生する可能性があります。コールドスタート時間は、モデルのサイズ、モデルのダウンロードにかかる時間、コンテナの起動時間によって異なります。

コールドスタート時間を監視するには、Amazon CloudWatch メトリクスを使用してサーバーレスエンドポイントOverheadLatencyをモニタリングできます。このメトリクスは、エンドポイントの新しいコンピューティングリソースの起動にかかる時間を追跡します。サーバーレスエンドポイントでのメトリクスの使用 CloudWatchの詳細については、「」を参照してくださいサーバーレスエンドポイントをモニタリングする

プロビジョニングされた同時実行を使用することで、コールドスタートを最小限に抑えることができます。 SageMaker は、エンドポイントをウォーム状態に保ち、割り当てたプロビジョニングされた同時実行の数をミリ秒単位で応答できるようにします。

機能の除外

現在 SageMaker リアルタイム推論で利用可能な機能の中には、GPUs、 AWS マーケットプレイスモデルパッケージ、プライベート Docker レジストリ、マルチモデルエンドポイント、VPC 設定、ネットワーク分離、データキャプチャ、複数の本番稼働用バリアント、Model Monitor、推論パイプラインなど、サーバーレス推論ではサポートされていないものがあります。

インスタンスベースのリアルタイムエンドポイントをサーバーレスエンドポイントに変換することはできません。リアルタイムエンドポイントをサーバーレスに更新しようとすると、ValidationErrorメッセージが表示されます。サーバーレスエンドポイントをリアルタイムに変換することはできますが、更新を行うと、サーバーレスにロールバックできません。

使用開始

SageMaker コンソール、 AWS SDKs、Amazon SageMaker Python SDK、および を使用して、サーバーレスエンドポイントを作成、更新、説明、削除できます AWS CLI。 AWS SDKs、および を使用してエンドポイントを呼び出すことができます AWS CLI。 SageMaker プロビジョニングされた同時実行を使用したサーバーレスエンドポイントの場合、アプリケーションの自動スケーリングを使用して、ターゲットメトリクスまたはスケジュールに基づいてプロビジョニングされた同時実行数を自動スケーリングできます。サーバーレスエンドポイントの設定および使用方法の詳細については、「サーバーレスエンドポイントを作成、呼び出し、更新、削除する」のガイドをお読みください。プロビジョニングされた同時実行を使用したサーバーレスエンドポイントの自動スケーリングの詳細については、「サーバーレスエンドポイントのプロビジョニングされた同時実行の自動スケール」を参照してください。

注記

プロビジョニングされた同時実行を使用したサーバーレス推論のアプリーエションの自動スケーリングは、現在 AWS CloudFormationではサポートされていません。

ノートブックとブログの例

end-to-end サーバーレスエンドポイントワークフローを示す Jupyter Notebook の例については、「サーバーレス推論サンプルノートブック」を参照してください。