クラウドデプロイメント:AWS SageMaker
SageMaker Model、EndpointConfig、Endpoint、リアルタイム推論、バッチ変換について学習します。
「クラウドデプロイメント: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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- DockerによるMLモデルのコンテナ化
- クラウドデプロイメント:AWS SageMaker
- Triton Inference Serverによる高性能サービング
- モデルエンドポイントのスケーリングとオートスケーリング