YOLO26をAmazon SageMaker Endpointsにデプロイするためのガイド#
コンピュータビジョンモデル(UltralyticsのYOLO26など)をAmazon SageMaker Endpointsにデプロイすることで、さまざまな機械学習アプリケーションに向けて幅広い可能性が広がります。これらのモデルを効果的に活用するカギは、そのセットアップ、構成、およびデプロイのプロセスを理解することにあります。YOLO26は、AWSの堅牢で拡張性の高い機械学習サービスであるAmazon SageMakerとシームレスに統合することで、さらに強力になります。
このガイドでは、YOLO26 PyTorchモデルをAmazon SageMaker Endpointsにデプロイするプロセスを段階的に説明します。AWS環境の準備、適切なモデルの設定、およびAWS CloudFormationやAWS Cloud Development Kit(CDK)などのツールを使用したデプロイの基本を学びます。
Amazon SageMaker#
Amazon SageMakerは、Amazon Web Services(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 Command Line Interface(CLI)をダウンロードしてインストールし、アカウント情報で設定します。インストールについては、the AWS CLI instructionsに従ってください。
-
AWS CDK:まだインストールしていない場合は、デプロイのスクリプト作成に使用されるAWS Cloud Development Kit(CDK)をインストールします。インストールについては、the AWS CDK instructionsに従ってください。
-
十分なサービスクォータ:Amazon SageMaker内の2つの異なるリソース(エンドポイント使用用の
ml.m5.4xlargeとノートブックインスタンス使用用のml.m5.4xlarge)に対して十分なクォータがあることを確認します。これらのそれぞれには、最低1つのクォータ値が必要です。現在のクォータがこの要件を下回っている場合は、それぞれについて増加をリクエストすることが重要です。AWS Service Quotas documentationの詳細な手順に従って、クォータの増加をリクエストできます。
ステップ2:YOLO26 SageMakerリポジトリのクローン#
次のステップは、YOLO26をSageMakerにデプロイするためのリソースが含まれている特定の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モデルのデプロイ#
デプロイの手順に入る前に、YOLO26 models offered by Ultralyticsのラインナップを必ず確認してください。これにより、プロジェクトの要件に最も適したモデルを選択するのに役立ちます。
AWS CloudFormationスタックを作成した後、次のステップはYOLO26をデプロイすることです。
-
ノートブックインスタンスを開く:AWSコンソールにアクセスし、Amazon SageMakerサービスに移動します。ダッシュボードから「Notebook Instances」を選択し、CDKデプロイメントスクリプトによって作成されたノートブックインスタンスを見つけます。ノートブックインスタンスを開き、Jupyter環境にアクセスします。
-
inference.pyへのアクセスと修正:JupyterでSageMakerノートブックインスタンスを開いた後、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エンドポイントをテストします。これには、エンドポイントへの画像の送信と推論の実行が含まれます。次に、以下に示すように、出力をプロットしてモデルのパフォーマンスとaccuracyを視覚化します。
- リソースのクリーンアップ:テスト用ノートブックでは、エンドポイントとホストされているモデルをクリーンアップするプロセスも案内されます。これは、特にデプロイされたモデルをすぐに使用する予定がない場合に、コストとリソースを効果的に管理するための重要なステップです。
ステップ7:モニタリングと管理#
テスト後、デプロイされたモデルの継続的なモニタリングと管理が不可欠です。
-
Amazon CloudWatchを使用して、SageMakerエンドポイントのパフォーマンスと状態を定期的に確認します。
-
エンドポイントの管理:エンドポイントの継続的な管理には、SageMakerコンソールを使用します。これには、必要に応じたモデルのスケーリング、更新、または再デプロイが含まれます。
これらのステップを完了することで、Amazon SageMaker EndpointsへのYOLO26モデルのデプロイとテストが成功します。このプロセスは、機械学習デプロイメントのためのAWSサービスの使用に関する実践的な経験を積むだけでなく、将来他の高度なモデルをデプロイするための基盤となります。
要約#
このガイドでは、AWS CloudFormationとAWS Cloud Development Kit (CDK) を使用して、YOLO26をAmazon SageMaker Endpointsにデプロイする手順を段階的に説明しました。このプロセスには、必要なGitHubリポジトリのクローン、CDK環境のセットアップ、AWSサービスを使用したモデルのデプロイ、およびSageMaker上でのパフォーマンスのテストが含まれます。
詳細な技術情報については、AWS Machine Learning Blogのthis articleを参照してください。また、さまざまな機能や特長についての詳細な洞察を得るために、公式のAmazon SageMaker Documentationも確認してください。
さまざまなYOLO26の統合についてさらに詳しく知りたいですか?Ultralytics integrations guide pageにアクセスして、機械学習プロジェクトを強化できる追加のツールと機能を発見してください。
よくある質問 (FAQ)#
UltralyticsのYOLO26モデルをAmazon SageMaker Endpointsにデプロイするにはどうすればよいですか?#
UltralyticsのYOLO26モデルをAmazon SageMaker Endpointsにデプロイするには、以下の手順に従ってください。
- AWS環境のセットアップ:AWSアカウント、必要な権限を持つIAMロール、および設定されたAWS CLIがあることを確認します。まだ行っていない場合は、AWS CDKをインストールします(AWS CDK instructionsを参照してください)。
- 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
詳細については、documentation sectionを確認してください。
YOLO26をAmazon SageMakerにデプロイするための前提条件は何ですか?#
YOLO26をAmazon SageMakerにデプロイするには、以下の前提条件が整っていることを確認してください:
- AWSアカウント:アクティブなAWSアカウント(sign up here)。
- IAMロール:SageMaker、CloudFormation、Amazon S3への権限を持つ構成済みのIAMロール。
- AWS CLI:インストールおよび設定されたAWS Command Line Interface(AWS CLI installation guide)。
- AWS CDK:インストールされたAWS Cloud Development Kit(CDK setup guide)。
- サービスクォータ:エンドポイントとノートブックの両方の使用において、
ml.m5.4xlargeインスタンスに対する十分なクォータ(request a quota increase)。
詳細なセットアップについては、this sectionを参照してください。
なぜAmazon SageMakerでUltralyticsのYOLO26を使用する必要があるのですか?#
Amazon SageMakerでUltralyticsのYOLO26を使用すると、いくつかの利点があります:
- スケーラビリティと管理:SageMakerは、リアルタイム推論のニーズに役立つオートスケーリングなどの機能を備えた管理環境を提供します。
- AWSサービスとの統合:データストレージ用のS3、Infrastructure as Code用のCloudFormation、監視用のCloudWatchなど、他のAWSサービスとシームレスに統合できます。
- デプロイの容易さ:AWS CDKスクリプトを使用した簡素化されたセットアップと、合理化されたデプロイメントプロセス。
- パフォーマンス:Amazon SageMakerの高性能なインフラストラクチャを活用して、大規模な推論タスクを効率的に実行できます。
SageMakerを使用する利点について詳しくは、introduction sectionをご覧ください。
Amazon SageMakerでYOLO26の推論ロジックをカスタマイズできますか?#
はい、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)を使用してモデルを再デプロイしてください。
変更されたモデルをデプロイするためのdetailed stepsを参照してください。
Amazon SageMakerでデプロイされたYOLO26モデルをテストするにはどうすればよいですか?#
Amazon SageMakerでデプロイされたYOLO26モデルをテストするには:
- テストノートブックを開く:SageMakerのJupyter環境で
2_TestEndpoint.ipynbノートブックを見つけます。 - ノートブックの実行:ノートブックの指示に従って画像をエンドポイントに送信し、推論を実行して結果を表示します。
- 結果の可視化:組み込みのプロット機能を使用して、検出されたオブジェクトの周囲のバウンディングボックスなどのパフォーマンス指標を可視化します。
包括的なテスト手順については、testing sectionをご覧ください。