Amazon SageMaker Endpoints への YOLO26 のデプロイガイド#
コンピュータービジョンモデルである Ultralytics の YOLO26を Amazon SageMaker Endpoints にデプロイすると、さまざまな機械学習アプリケーションに幅広い可能性が広がります。これらのモデルを効果的に使用するには、セットアップ、設定、デプロイのプロセスを理解することが重要です。YOLO26 は、AWS の堅牢でスケーラブルな機械学習サービスである Amazon SageMaker とシームレスに統合することで、さらに強力になります。
このガイドでは、YOLO26 の PyTorchモデルを Amazon SageMaker Endpoints にデプロイする手順を順を追って説明します。AWS 環境の準備、モデルの適切な設定、AWS CloudFormation や AWS クラウド開発キット (CDK) などのツールを使用したデプロイの基本を学びます。
Amazon SageMaker#
Amazon SageMaker は、機械学習モデルの構築、トレーニング、デプロイのプロセスを簡素化するアマゾン ウェブ サービス (AWS) の機械学習サービスです。機械学習ワークフローのさまざまな側面を処理するための幅広いツールを提供します。これには、モデルのチューニングを自動化する機能、大規模なモデルのトレーニングオプション、モデルを本番環境にデプロイするための簡単な方法が含まれます。SageMaker は一般的な機械学習フレームワークをサポートしており、多様なプロジェクトに必要な柔軟性を提供します。データラベリング、ワークフロー管理、パフォーマンス分析にも対応しています。
Amazon SageMaker Endpoints への YOLO26 のデプロイ#
YOLO26 を Amazon SageMaker にデプロイすると、マネージド環境でリアルタイム推論を実行し、オートスケーリングなどの機能を活用できます。以下の AWS アーキテクチャをご覧ください。
ステップ 1: AWS 環境をセットアップする#
まず、以下の前提条件が整っていることを確認してください。
-
AWS アカウント: まだお持ちでない場合は、AWS アカウントを作成してください。
-
設定済みの IAM ロール: Amazon SageMaker、AWS CloudFormation、Amazon S3 に必要な権限を持つ IAM ロールが必要です。このロールには、これらのサービスへのアクセスを許可するポリシーを設定してください。
-
AWS CLI: まだインストールしていない場合は、AWS コマンドラインインターフェイス (CLI) をダウンロードしてインストールし、アカウント情報を設定してください。インストールについては AWS CLI の手順に従ってください。
-
AWS CDK: まだインストールしていない場合は、デプロイのスクリプト作成に使用する AWS クラウド開発キット (CDK) をインストールしてください。インストールについては AWS CDK の手順に従ってください。
-
十分なサービスクォータ: Amazon SageMaker の 2 つの個別のリソースについて、十分なクォータがあることを確認してください。一方はエンドポイントの使用に関する
ml.m5.4xlarge用、もう一方はノートブックインスタンスの使用に関するml.m5.4xlarge用です。これらにはそれぞれ最低 1 つのクォータ値が必要です。現在のクォータがこの要件を下回っている場合は、それぞれについて増加を申請することが重要です。クォータの増加は、AWS Service Quotas のドキュメントに記載された詳しい手順に従って申請できます。
ステップ 2: YOLO26 SageMaker リポジトリをクローンする#
次のステップでは、SageMaker に YOLO26 をデプロイするためのリソースを含む、特定の AWS リポジトリをクローンします。GitHub でホストされているこのリポジトリには、必要な CDK スクリプトと設定ファイルが含まれています。
-
GitHub リポジトリをクローンする: ターミナルで次のコマンドを実行し、host-yolov8-on-sagemaker-endpoint リポジトリをクローンします。
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
クローンしたディレクトリに移動する: 作業ディレクトリをクローンしたリポジトリに変更します。
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
ステップ 3: CDK 環境をセットアップする#
必要なコードが用意できたら、AWS CDK を使用したデプロイのために環境をセットアップします。
-
Python 仮想環境を作成する: Python 環境と依存関係を分離します。次を実行します。
python3 -m venv .venv -
仮想環境を有効化する:
source .venv/bin/activate -
依存関係をインストールする: プロジェクトに必要な Python の依存関係をインストールします。
pip3 install -r requirements.txt -
AWS CDK ライブラリをアップグレードする: AWS CDK ライブラリの最新バージョンを使用していることを確認します。
pip install --upgrade aws-cdk-lib
ステップ 4: AWS CloudFormation スタックを作成する#
-
CDK アプリケーションを合成する: CDK コードから AWS CloudFormation テンプレートを生成します。
cdk synth -
CDK アプリケーションをブートストラップする: CDK デプロイ用に AWS 環境を準備します。
cdk bootstrap -
スタックをデプロイする: 必要な AWS リソースを作成し、モデルをデプロイします。
cdk deploy
ステップ 5: YOLO モデルをデプロイする#
デプロイ手順に進む前に、Ultralytics が提供する YOLO26 モデルのラインナップをぜひご確認ください。プロジェクトの要件に最も適したモデルを選択するのに役立ちます。
AWS CloudFormation スタックを作成したら、次のステップは YOLO26 をデプロイすることです。
-
ノートブックインスタンスを開く: AWS Console に移動し、Amazon SageMaker サービスを開きます。ダッシュボードから「Notebook Instances」を選択し、CDK デプロイスクリプトによって作成されたノートブックインスタンスを見つけます。ノートブックインスタンスを開いて Jupyter 環境にアクセスします。
-
inference.py にアクセスして変更する: SageMaker ノートブックインスタンスを Jupyter で開いたら、inference.py ファイルを見つけます。以下に示すように inference.py の output_fn 関数を編集し、構文エラーがないことを確認してスクリプトへの変更を保存します。
import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() if result.masks is not None: infer["masks"] = result.masks.numpy().data.tolist() if result.keypoints is not None: infer["keypoints"] = result.keypoints.numpy().data.tolist() if result.obb is not None: infer["obb"] = result.obb.numpy().data.tolist() if result.probs is not None: infer["probs"] = result.probs.numpy().data.tolist() return json.dumps(infer) -
1_DeployEndpoint.ipynb を使用してエンドポイントをデプロイする: Jupyter 環境で、sm-notebook ディレクトリにある 1_DeployEndpoint.ipynb ノートブックを開きます。ノートブックの手順に従ってセルを実行し、YOLO26 モデルをダウンロードして更新済みの推論コードとともにパッケージ化し、Amazon S3 バケットにアップロードします。ノートブックの案内に従って、YOLO26 モデル用の SageMaker エンドポイントを作成してデプロイします。
ステップ 6: デプロイをテストする#
YOLO26 モデルのデプロイが完了したら、そのパフォーマンスと機能をテストすることが重要です。
-
テスト用ノートブックを開く: 同じ Jupyter 環境で、sm-notebook ディレクトリにある 2_TestEndpoint.ipynb ノートブックを見つけて開きます。
-
テスト用ノートブックを実行する: ノートブック内の手順に従って、デプロイした SageMaker エンドポイントをテストします。これには、エンドポイントに画像を送信して推論を実行する処理が含まれます。次に、以下に示すように出力をプロットして、モデルのパフォーマンスと精度を可視化します。
- リソースをクリーンアップする: テスト用ノートブックでは、エンドポイントとホストされたモデルをクリーンアップする手順も案内されます。特に、デプロイしたモデルをすぐに使用する予定がない場合、コストとリソースを効果的に管理するための重要なステップです。
ステップ 7: 監視と管理#
テスト後は、デプロイしたモデルを継続的に監視および管理することが重要です。
-
Amazon CloudWatch で監視する: Amazon CloudWatch を使用して、SageMaker エンドポイントのパフォーマンスと稼働状態を定期的に確認します。
-
エンドポイントを管理する: SageMaker Console を使用してエンドポイントを継続的に管理します。必要に応じて、モデルのスケーリング、更新、再デプロイを行います。
これらの手順を完了すると、Amazon SageMaker Endpoints 上で YOLO26 モデルのデプロイとテストが正常に完了します。このプロセスによって、機械学習のデプロイに AWS サービスを使用する実践的な経験を得られるだけでなく、将来、他の高度なモデルをデプロイするための基盤も整います。
まとめ#
このガイドでは、AWS CloudFormation と AWS クラウド開発キット (CDK) を使用して Amazon SageMaker Endpoints に YOLO26 をデプロイする手順を順を追って説明しました。必要な GitHub リポジトリのクローン、CDK 環境のセットアップ、AWS サービスを使用したモデルのデプロイ、SageMaker でのパフォーマンスのテストが含まれます。
技術的な詳細については、AWS Machine Learning Blog のこの記事を参照してください。さまざまな機能の詳細については、公式の Amazon SageMaker ドキュメントもご確認ください。
さまざまな YOLO26 統合について詳しく知りたいですか?Ultralytics 統合ガイドページにアクセスして、機械学習プロジェクトを強化できる追加のツールと機能をご確認ください。
FAQ#
Ultralytics YOLO26 モデルを Amazon SageMaker Endpoints にデプロイするには、次の手順に従ってください。
- AWS 環境をセットアップする: AWS アカウント、必要な権限を持つ IAM ロール、設定済みの AWS CLI があることを確認します。まだの場合は AWS CDK をインストールします(AWS CDK の手順を参照してください)。
- YOLO26 SageMaker リポジトリをクローンする:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk - CDK 環境をセットアップする: Python 仮想環境を作成して有効化し、依存関係をインストールして、AWS CDK ライブラリをアップグレードします。
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - AWS CDK を使用してデプロイする: CloudFormation スタックを合成してデプロイし、環境をブートストラップします。
cdk synth cdk bootstrap cdk deploy
詳しくは、ドキュメントのセクションをご確認ください。
Amazon SageMaker に YOLO26 をデプロイするには、以下の前提条件が整っていることを確認してください。
- AWS アカウント: 有効な AWS アカウント(こちらで作成)。
- IAM ロール: SageMaker、CloudFormation、Amazon S3 の権限が設定された IAM ロール。
- AWS CLI: インストールおよび設定済みの AWS コマンドラインインターフェイス(AWS CLI インストールガイド)。
- AWS CDK: インストール済みの AWS クラウド開発キット(CDK セットアップガイド)。
- サービスクォータ: エンドポイントとノートブックの両方の用途に十分な
ml.m5.4xlargeインスタンスのクォータ(クォータの増加を申請)。
詳しいセットアップについては、こちらのセクションを参照してください。
Amazon SageMaker で Ultralytics YOLO26 を使用すると、いくつかのメリットがあります。
- スケーラビリティと管理: SageMaker はオートスケーリングなどの機能を備えたマネージド環境を提供し、リアルタイム推論のニーズに対応します。
- AWS サービスとの統合: データストレージ用の S3、Infrastructure as Code 用の CloudFormation、監視用の CloudWatch など、他の AWS サービスとシームレスに統合できます。
- デプロイの容易さ: AWS CDK スクリプトによってセットアップが簡素化され、デプロイプロセスが効率化されます。
- パフォーマンス: Amazon SageMaker の高性能インフラストラクチャを活用し、大規模な推論タスクを効率的に実行できます。
SageMaker を使用するメリットの詳細については、概要のセクションをご覧ください。
はい、Amazon SageMaker 上の YOLO26 の推論ロジックをカスタマイズできます。
-
inference.pyを変更する:inference.pyファイル内のoutput_fn関数を見つけ、出力形式に合わせてカスタマイズします。import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer) -
更新したモデルをデプロイする: 変更を反映するため、用意されている Jupyter ノートブック(
1_DeployEndpoint.ipynb)を使用してモデルを再デプロイしてください。
変更したモデルのデプロイについては、詳しい手順を参照してください。
-
Amazon SageMaker でデプロイした YOLO26 モデルをテストするには、次の手順を実行します。
- テスト用ノートブックを開く: SageMaker Jupyter 環境で
2_TestEndpoint.ipynbノートブックを見つけます。 - ノートブックを実行する: ノートブックの手順に従ってエンドポイントに画像を送信し、推論を実行して結果を表示します。
- 結果を可視化する: 組み込みのプロット機能を使用して、検出されたオブジェクト周辺のバウンディングボックスなどのパフォーマンス指標を可視化します。
包括的なテスト手順については、テストのセクションをご覧ください。
- テスト用ノートブックを開く: SageMaker Jupyter 環境で