Learn AI with Python · レッスン

クラウドデプロイメント:AWS SageMaker

SageMaker Model、EndpointConfig、Endpoint、リアルタイム推論、バッチ変換について学習します。

レッスン 2/413 ステップ

「クラウドデプロイメント:AWS SageMaker」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

SageMakerを使う理由

Amazon SageMakerは、MLモデルのトレーニングとデプロイを行うマネージドサービスです。自分でサーバーやロードバランサーを用意する代わりに、モデルを定義するだけで、SageMakerがスケーラブルなHTTPSエンドポイントを内部で構築します。

3つの要素

SageMakerのデプロイには、次の3つが必要です。

  • コンテナのimage_uri(ECRにあるサービングイメージ、または組み込みのフレームワークイメージ)
  • トレーニング済みの重みを格納したmodel_data(S3上のtar.gz)
  • これらのリソースへのアクセスをSageMakerに許可するIAMロール

モデルを定義する

sagemaker.Modelオブジェクトは、コンテナイメージとS3上のモデルアーティファクトを結び付けます。

import sagemaker
from sagemaker.model import Model

model = Model(
    image_uri="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-model:latest",
    model_data="s3://my-bucket/models/model.tar.gz",
    role="arn:aws:iam::123456789012:role/SageMakerRole",
)

model.tar.gz の中身

SageMakerは起動時にmodel_dataをダウンロードしてコンテナ内の/opt/ml/modelに展開します。サービングコードはそこから重みを読み込みます。アーカイブには通常、保存済みのモデルファイルと前処理用のアセットが含まれます。

# model.tar.gz contents
# model.pt
# tokenizer.json
# config.json

リアルタイムエンドポイントをデプロイする

model.deployは、永続的なHTTPSエンドポイントの背後に1つ以上のインスタンスを起動します。instance_typeと初期インスタンス数を指定します。

predictor = model.deploy(
    initial_instance_count=1,
    instance_type="ml.m5.xlarge",
    endpoint_name="my-model-endpoint",
)

インスタンスタイプを選ぶ

インスタンスタイプはコストとレイテンシを左右します。

  • ml.m5.*:汎用CPU。小規模なモデル向けで低コストです
  • ml.c5.*:コンピューティング最適化
  • ml.g4dn.* / ml.g5.*:ディープラーニング推論向けのGPU

モデルに合ったインスタンスを選びましょう。小さなscikit-learnモデルにGPUを使うのは無駄です。

predict() を呼び出す

デプロイが完了すると、predictor.predict()はエンドポイントにペイロードを送信し、推論結果を返します。SageMakerがリクエストをシリアライズし、稼働中のインスタンスにルーティングします。

result = predictor.predict({
    "instances": [[5.1, 3.5, 1.4, 0.2]]
})
print(result)

エンドポイントを削除する

リアルタイムエンドポイントは稼働中、毎秒課金されます。不要になったエンドポイントは必ず削除してください。トラフィックがゼロでも料金が発生し続けます。

predictor.delete_endpoint()

オフラインジョブ向けのバッチ変換

大規模なデータセットを一度だけスコアリングする場合(低レイテンシのサービングではない場合)は、バッチ変換を使用します。SageMakerがインスタンスを起動してS3上のデータセット全体を処理し、結果をS3に書き戻した後、インスタンスを停止します。永続的なエンドポイントがないため、アイドル状態のコストもかかりません。

バッチ変換を実行する

モデルからtransformerを作成し、S3上の入力データを指定します。

transformer = model.transformer(
    instance_count=1,
    instance_type="ml.m5.xlarge",
    output_path="s3://my-bucket/predictions/",
)
transformer.transform(
    data="s3://my-bucket/input/batch.csv",
    content_type="text/csv",
)
transformer.wait()

リアルタイムとバッチの比較

ワークロードに応じて選択します。

  • リアルタイムエンドポイント:継続的な低レイテンシのリクエスト(例:レコメンデーションAPI)
  • バッチ変換:大規模なデータセットを定期的にスコアリング(例:毎晩実行する解約予測)

即時応答が必要ない場合は、バッチのほうがはるかに低コストです。

理解度チェック

リアルタイムエンドポイントではなく、SageMakerのバッチ変換を使うべきなのはどのような場合でしょうか。

まとめ

AWS SageMakerにモデルをデプロイする方法を学びました。

  • sagemaker.Modelで、image_uriとS3上のmodel_dataを結び付けます
  • model.deployで、選択したinstance_typeのリアルタイムエンドポイントを作成します
  • predictor.predict()で推論リクエストを送信します
  • バッチ変換で大規模なオフライン処理を低コストで実行します
  • 料金が発生しないよう、アイドル状態のエンドポイントは必ず削除します
無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
53
レッスン
225

よくある質問

「クラウドデプロイメント:AWS SageMaker」レッスンは無料ですか?

はい。「クラウドデプロイメント:AWS SageMaker」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「クラウドデプロイメント:AWS SageMaker」で何を学びますか?

SageMaker Model、EndpointConfig、Endpoint、リアルタイム推論、バッチ変換について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「クラウドデプロイメント:AWS SageMaker」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. DockerによるMLモデルのコンテナ化
  2. クラウドデプロイメント:AWS SageMaker
  3. Triton Inference Serverによる高性能サービング
  4. モデルエンドポイントのスケーリングとオートスケーリング
← Learn AI with Pythonに戻る