Amazon SageMakerで学習済みモデルを使って推論を行う場合、大きく4つの方式(リアルタイム推論・サーバーレス推論・非同期推論・バッチ推論)から選択することになります。それぞれ得意なタスクや仕様が異なるため、違いを整理しました。AWS Certified AI Practitioner試験対策としても頻出のテーマです。
まず考えるべきこと:エンドポイントが必要か、不要か
特定のタイミング(日々のバッチジョブなど)で実行する場合
エンドポイント不要
バッチ推論
常時リクエストを受け付けている必要がある、または不定期に実行する場合
エンドポイント必要
リアルタイム推論 / サーバーレス推論 / 非同期推論
エンドポイントが不要のモデル
バッチ推論
エンドポイント不要大量の入力データを1つにまとめ、特定のタイミング(夜間、週次、月次など)で一括処理する方式です。即座に応答(レスポンス)を返す必要がない、非リアルタイムなタスクに最適化されています。
| 処理時間 / データサイズ | 実質無制限 |
| コスト | 高いコスト効率(処理時のみ課金) |
試験頻出のキーワード
- –スループットの最大化:1件あたりの返答速度(レイテンシー)ではなく、「単位時間あたりにどれだけ多くのデータを処理できるか」を重視します
- –Amazon SageMaker Batch Transform(バッチ変換):試験では「Amazon SageMaker Batch Transform(バッチ変換)」という機能名で登場することが多く、Amazon S3上の大規模データを一括処理するシナリオで正解の選択肢になります。また、生成AIサービスのAmazon Bedrockでも、大量のプロンプトをまとめて安価に処理するバッチ推論がサポートされており、オンデマンド料金と比べて50%安く利用できます。
エンドポイントが必要なモデル
リアルタイム推論
エンドポイント必要サーバーが常時稼働するモデルです。常時トラフィックがある場合や低レイテンシーが求められる場合に適しますが、アイドル時もコストが発生します。
| 処理時間 | 60秒以内 |
| データサイズ | 6MB以下 |
| コスト | 常時稼働の固定費のため、高コスト |
補足:AWS公式ドキュメント(Model Hosting FAQs)では、ペイロード上限が25MB・ストリーミングレスポンスの処理時間は8分まで拡張されている旨の記載があります。
試験頻出のキーワード
- –低レイテンシー(低遅延):ミリ秒〜秒単位での即時応答が求められる場合
- –永続的なエンドポイント:常にリクエストを待ち受ける常時稼働のAPIサーバー(HTTPSエンドポイント)を構築する
- –同期処理(同期型):リクエストを送信後、予測結果が返ってくるまで接続を維持する方式
- –多様なインスタンスタイプ:GPUインスタンスを含む多様なインスタンスタイプを自分で選択できる
サーバーレス推論
エンドポイント必要リアルタイム推論の特性も持つが、サーバーを持たないことが特徴です(インフラ管理が不要)。自動スケーリング機能があり、アイドル時コストがかからない一方、リクエストがない状態からの初回呼び出し時にわずかな遅延(コールドスタート)が発生する場合があります。流れとしては、AIにタスクを投げる→AWS(Amazon SageMaker)が必要に応じて自動でコンピューティングリソースを確保する→AIモデルを実行する、というシンプルな仕組みです。
| 処理時間 | 60秒以内 |
| データサイズ | 4MB以下 |
試験頻出のキーワード
- –コールドスタート:リクエストがない状態からの初回呼び出し時に発生する遅延
- –自動スケーリング(Auto-scaling / Scale to Zero):ユーザーが手動で設定しなくても、トラフィックの増減に合わせて0から自動でスケールアップ・ダウンする特性です
非同期推論
エンドポイント必要名前の通り非同期で実行される推論です(リアルタイムでその場で結果が返ってこない)。S3などに結果が出力され、ユーザーが結果を取りに行く方式です。一回の推論に時間がかかる、大量の画像処理・長い動画の解析・大量データをまとめた予測のような場合に向いています。
| 処理時間 | 最大1時間までの重い処理をサポート |
| データサイズ | 最大1GBまでの大きなペイロードに対応 |
試験頻出のキーワード
- –Amazon SageMaker Asynchronous Inference(アマゾン セージメーカー 非同期推論)
- –スケールダウン・ツー・ゼロ(Scale down to zero):非同期推論の最大のコストメリットを示すキーワードです
- –オートスケーリング:リクエストの処理待ち(キュー)が空の状態が続くと、SageMakerは稼働しているインスタンス数を自動的に「0」にできます
- –コスト最適化:リアルタイム推論は(Inference Componentsを使った例外的な構成を除き)最低1台のインスタンスを常時起動しておく必要があります。一方、非同期推論は使っていない時間のコストを完全に削減できるため、「コストを最小限に抑えつつ、突発的な大容量リクエストに備える」というシナリオで正解になります
- –内部キューイング:内部の管理キューにタスクが溜まり、順番に処理されます
まとめ
| バッチ推論 | リアルタイム推論 | サーバーレス推論 | 非同期推論 | |
|---|---|---|---|---|
| エンドポイント | 不要 | 必要 | 必要 | 必要 |
| 処理時間 | 実質無制限 | 60秒以内 | 60秒以内 | 最大1時間 |
| データサイズ | 実質無制限 | 6MB以下 | 4MB以下 | 最大1GB |
| アイドル時コスト | なし | あり | なし | なし(0までスケール可) |
ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。
- 選考ではありません
- 履歴書不要
- 技術の話が中心
- 所要時間30分程度
- オンラインOK