Link to this sectionYOLO26をAmazon SageMaker Endpointsにデプロイするためのガイド#
Deploying advanced computer vision models like Ultralytics' YOLO26 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLO26 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.
このガイドでは、YOLO26 PyTorchモデルをAmazon SageMaker Endpointsにデプロイする手順を段階的に説明します。AWS環境の準備、適切なモデルの構成、そしてデプロイメントのためのAWS CloudFormationやAWS Cloud Development Kit (CDK) といったツールの使用方法の基本を学ぶことができます。
Link to this sectionAmazon SageMaker#
Amazon SageMakerは、機械学習モデルの構築、トレーニング、デプロイのプロセスを簡素化するAmazon Web Services (AWS) の機械学習サービスです。機械学習ワークフローのさまざまな側面を処理するための幅広いツールを提供します。これには、モデルのチューニングを自動化する機能、大規模なモデルトレーニングのオプション、モデルを本番環境へデプロイする簡単な手法が含まれます。SageMakerは主要な機械学習フレームワークをサポートしており、多様なプロジェクトに必要な柔軟性を提供します。また、データラベリング、ワークフロー管理、パフォーマンス分析もカバーしています。
Link to this sectionAmazon SageMaker EndpointsへのYOLO26のデプロイ#
YOLO26をAmazon SageMakerにデプロイすると、管理された環境でリアルタイム推論を実行でき、オートスケーリングなどの機能を活用できます。以下のAWSアーキテクチャを確認してください。
Link to this sectionステップ1:AWS環境のセットアップ#
まず、以下の前提条件が整っていることを確認してください。
-
AWSアカウント:まだお持ちでない場合は、AWSアカウントを作成してください。
-
構成済みのIAMロール:Amazon SageMaker、AWS CloudFormation、Amazon S3に必要な権限を持つIAMロールが必要です。このロールには、これらのサービスへのアクセスを許可するポリシーが割り当てられている必要があります。
-
AWS CLI:まだインストールされていない場合は、AWS Command Line Interface (CLI) をダウンロードおよびインストールし、アカウント情報で構成してください。インストールについてはAWS CLIの手順に従ってください。
-
AWS CDK:まだインストールされていない場合は、デプロイメントのスクリプト作成に使用するAWS Cloud Development Kit (CDK) をインストールしてください。インストールについてはAWS CDKの手順に従ってください。
-
十分なサービスクォータ:Amazon SageMakerにおける2つの別々のリソースに対して十分なクォータがあることを確認してください。1つはエンドポイント使用用の
ml.m5.4xlarge、もう1つはノートブックインスタンス使用用のml.m5.4xlargeです。それぞれ最低1つのクォータ値が必要です。現在のクォータがこの要件を下回っている場合は、それぞれ増量をリクエストすることが重要です。AWS Service Quotasドキュメントの詳細な手順に従って、クォータの増量をリクエストできます。
Link to this sectionステップ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
Link to this sectionステップ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
Link to this sectionステップ4:AWS CloudFormationスタックの作成#
-
CDKアプリケーションの合成:CDKコードからAWS CloudFormationテンプレートを生成します:
cdk synth -
CDKアプリケーションのブートストラップ:CDKデプロイメント用にAWS環境を準備します:
cdk bootstrap -
スタックのデプロイ:これにより、必要なAWSリソースが作成され、モデルがデプロイされます:
cdk deploy
Link to this sectionステップ5:YOLOモデルのデプロイ#
デプロイ手順に進む前に、Ultralyticsが提供するYOLO26モデルの範囲を必ず確認してください。これにより、プロジェクトの要件に最も適したモデルを選択するのに役立ちます。
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エンドポイントを作成およびデプロイするプロセスをガイドします。
Link to this sectionステップ6:デプロイメントのテスト#
YOLO26モデルがデプロイされたので、そのパフォーマンスと機能をテストすることが重要です。
-
テスト用ノートブックを開く:同じJupyter環境内で、sm-notebookディレクトリにある2_TestEndpoint.ipynbノートブックを見つけて開きます。
-
テスト用ノートブックの実行:ノートブック内の指示に従って、デプロイされたSageMakerエンドポイントをテストします。これには、画像をエンドポイントに送信し、推論を実行することが含まれます。その後、以下に示すように、出力のプロットを行い、モデルのパフォーマンスと精度を可視化します。
- リソースのクリーンアップ:テスト用ノートブックでは、エンドポイントとホストされているモデルをクリーンアップするプロセスも案内されます。これは、特にデプロイされたモデルをすぐに使用する予定がない場合に、コストとリソースを効果的に管理するための重要なステップです。
Link to this sectionステップ7:モニタリングと管理#
テスト後、デプロイされたモデルの継続的なモニタリングと管理が不可欠です。
-
Amazon CloudWatchでの監視:Amazon CloudWatchを使用して、SageMakerエンドポイントのパフォーマンスと正常性を定期的に確認します。
-
エンドポイントの管理:エンドポイントの継続的な管理には、SageMakerコンソールを使用します。これには、必要に応じたモデルのスケーリング、更新、または再デプロイが含まれます。
これらのステップを完了することで、Amazon SageMaker EndpointsへのYOLO26モデルのデプロイとテストが成功します。このプロセスは、機械学習デプロイメントのためのAWSサービスの使用に関する実践的な経験を積むだけでなく、将来他の高度なモデルをデプロイするための基盤となります。
Link to this section要約#
このガイドでは、AWS CloudFormationとAWS Cloud Development Kit (CDK) を使用して、YOLO26をAmazon SageMaker Endpointsにデプロイする手順を段階的に説明しました。このプロセスには、必要なGitHubリポジトリのクローン、CDK環境のセットアップ、AWSサービスを使用したモデルのデプロイ、およびSageMaker上でのパフォーマンスのテストが含まれます。
技術的な詳細については、AWS Machine Learning Blogのこちらの記事を参照してください。また、さまざまな機能や機能性に関する詳細については、公式のAmazon SageMakerドキュメントを確認することもできます。
他のYOLO26統合についてさらに詳しく知りたいですか?Ultralytics統合ガイドページにアクセスして、機械学習プロジェクトを強化できる追加のツールや機能を見つけてください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralyticsのYOLO26モデルをAmazon SageMaker Endpointsにデプロイするにはどうすればよいですか?#
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
詳細については、ドキュメントセクションを確認してください。
Link to this sectionYOLO26をAmazon SageMakerにデプロイするための前提条件は何ですか?#
YOLO26をAmazon SageMakerにデプロイするには、以下の前提条件が整っていることを確認してください:
- AWSアカウント:アクティブなAWSアカウント(こちらから登録)。
- IAMロール:SageMaker、CloudFormation、Amazon S3への権限を持つ構成済みのIAMロール。
- AWS CLI:インストールおよび構成済みのAWS Command Line Interface(AWS CLIインストールガイド)。
- AWS CDK:インストール済みのAWS Cloud Development Kit(CDKセットアップガイド)。
- サービスクォータ:エンドポイントおよびノートブックの両方の使用に対する
ml.m5.4xlargeインスタンスへの十分なクォータ(クォータの増量をリクエスト)。
詳細なセットアップについては、こちらのセクションを参照してください。
Link to this sectionなぜAmazon SageMakerでUltralyticsのYOLO26を使用する必要があるのですか?#
Amazon SageMakerでUltralyticsのYOLO26を使用すると、いくつかの利点があります:
- スケーラビリティと管理:SageMakerは、リアルタイム推論のニーズに役立つオートスケーリングなどの機能を備えた管理環境を提供します。
- AWSサービスとの統合:データストレージ用のS3、Infrastructure as Code用のCloudFormation、監視用のCloudWatchなど、他のAWSサービスとシームレスに統合できます。
- デプロイの容易さ:AWS CDKスクリプトを使用した簡素化されたセットアップと、合理化されたデプロイメントプロセス。
- パフォーマンス:Amazon SageMakerの高性能なインフラストラクチャを活用して、大規模な推論タスクを効率的に実行できます。
SageMakerを使用する利点の詳細については、導入セクションを確認してください。
Link to this sectionAmazon SageMakerでYOLO26の推論ロジックをカスタマイズできますか?#
はい、Amazon SageMakerでYOLO26の推論ロジックをカスタマイズできます:
-
Modify
inference.py: Locate and customize theoutput_fnfunction in theinference.pyfile to tailor output formats.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)を使用してモデルを再デプロイしてください。
修正されたモデルをデプロイするための詳細なステップを参照してください。
Link to this sectionAmazon SageMakerでデプロイされたYOLO26モデルをテストするにはどうすればよいですか?#
Amazon SageMakerでデプロイされたYOLO26モデルをテストするには:
- テスト用ノートブックを開く:SageMaker Jupyter環境で
2_TestEndpoint.ipynbノートブックを見つけます。 - ノートブックの実行:ノートブックの指示に従って画像をエンドポイントに送信し、推論を実行して結果を表示します。
- 結果の可視化:組み込みのプロット機能を使用して、検出されたオブジェクトの周囲のバウンディングボックスなどのパフォーマンス指標を可視化します。
包括的なテスト手順については、テストセクションにアクセスしてください。