新しいサーバーレスな推論エンドポイント Amazon SageMaker Serverless Inference (preview)の紹介!

記事タイトルとURLをコピーする

これまでAmazon SageMakerで推論を実行する場合、エンドポイント(リアルタイム or 非同期)としてデプロイするかバッチ変換ジョブで実行するかの3種類がありました。re:invent 2021では新たなオプションであるAmazon SageMaker Serverless Inference (preview)が登場しました。このAmazon SageMaker Serverless Inferenceはどういったものなのでしょうか?

Amazon SageMaker Serverless Inferenceとは?

aws.amazon.com

docs.aws.amazon.com

Amazon SageMaker Serverless Inferenceとはその名の通りサーバーレスな推論が実行できるオプションです。2021/12時点ではpreviewです。GAされると後述の仕様は変更となるかもしれません。ユーザーはメモリサイズや同時実行数を指定するだけでモデルをデプロイすることができます。

何がうれしいのか?

Amazon Sagemakerはマネージドサービスでありますが、前処理やトレーニングなどの各ジョブを実行するにはインスタンスタイプを指定します。推論エンドポイントについてもインスタンスタイプを指定する必要があります。リアルタイム推論でエンドポイントを使用する場合、インスタンスが実行しっぱなしになります。つまりその間料金がかかり続けることになります。非同期推論ではインスタンス数を0とすることは可能ですが、大きなペイロードの処理が必要で処理時間が長い場合で、コールドスタートが許容できる場合がユースケースとなります。バッチ変換はその名の通りバッチ処理で推論を実行します。

Amazon SageMaker Serverless Inferenceは、そこまでヘビーな利用ではないユースケースに向いています。リアルタイム推論のように低レイテンシ―が求められるが、トラフィックが断続的で予測できなかったり、そもそもそこまで多くないような場合です。そのような場合、リアルタイム推論のインスタンスの利用料金ががもったいないのでServerless Inferenceを利用します。イメージとしてはlambdaに近く、リクエストがあるごとに処理を実行し、リクエストの量だけ自動でスケーリングします。そしてその分だけ利用料金も発生します。

aws.amazon.com

これまでこのようなユースケースでは、SageMakerでトレーニングし、Lambda + EFS(トレーニングしたアーティファクトを配置)で推論部分を実装するような構成が取られましたが、Amazon SageMaker単体でその構成とすることができるようになったわけです。

注意点???

docs.aws.amazon.com

コールドスタート時間は、モデルサイズ、モデルのダウンロードにかかる時間、およびコンテナーの起動時間によって異なります。

サーバーレスの特徴上、このServerless Inferenceについてもコールドスタートが発生するようです。この辺りもLambdaの感覚に近いですね。Serverless Inferenceで構成を検討する際は、コールドスタートを頭の片隅に置いておくのがよさそうです。

まとめ

Serverless Inferenceを含めて Amazon SageMakerの推論のオプションまとめると以下のような感じです。もServerless Inferenceの登場でヘビーな利用でない場合でも利用しやすくなりました。

オプション ユースケース
リアルタイム推論 トラフィックが多く、低レイテンシ―が求められ、そこまでペイロードが大きくない場合。
非同期推論 ペイロードが大きく、処理時間も長い場合でコールドスタートが許容できる場合。
バッチ変換ジョブ バッチで推論を実行。
[New!] Serverless Inference (preview) トラフィックが断続的で予測できないが低レイテンシ―が求められる場合。

Yusuke Mine(書いた記事を見る)

I get drunk but it's not enough 'Cause the morning comes and you're not my baby.