A Guide to Deploying YOLO11 on Amazon SageMaker Endpoints
Deploying advanced computer vision models like Ultralytics' YOLO11 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. YOLO11 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.
This guide will take you through the process of deploying YOLO11 PyTorch models on Amazon SageMaker Endpoints step by step. You'll learn the essentials of preparing your AWS environment, configuring the model appropriately, and using tools like AWS CloudFormation and the AWS Cloud Development Kit (CDK) for deployment.
アマゾン・セージメーカー
Amazon SageMakerは、Amazon Web Services(AWS)が提供する機械学習サービスで、機械学習モデルの構築、トレーニング、デプロイのプロセスを簡素化する。機械学習ワークフローの様々な側面を処理するための幅広いツールを提供する。これには、モデルをチューニングするための自動化機能、モデルを大規模にトレーニングするためのオプション、モデルを本番環境にデプロイするための簡単な方法などが含まれます。SageMaker は一般的な機械学習フレームワークをサポートしており、多様なプロジェクトに必要な柔軟性を提供します。また、データラベリング、ワークフロー管理、パフォーマンス分析にも対応しています。
Deploying YOLO11 on Amazon SageMaker Endpoints
Deploying YOLO11 on Amazon SageMaker lets you use its managed environment for real-time inference and take advantage of features like autoscaling. Take a look at the AWS architecture below.
ステップ1:AWS環境のセットアップ
まず、以下の前提条件が整っていることを確認する:
-
AWSアカウント:まだお持ちでない場合は、AWSアカウントにサインアップしてください。
-
設定された IAM ロール: Amazon SageMaker、AWS CloudFormation、および Amazon S3 に必要なアクセス許可を持つ IAM ロールが必要です。このロールには、これらのサービスへのアクセスを許可するポリシーが必要です。
-
AWSCLI :まだインストールされていない場合は、AWS Command Line Interface (CLI) をダウンロードしてインストールし、アカウント情報を使用して設定します。AWSCLI の手順に従ってインストールしてください。
-
AWS CDK: まだインストールされていない場合は、デプロイのスクリプトに使用する AWS Cloud Development Kit (CDK) をインストールします。AWSCDKのインストール手順に従ってください。
-
十分なサービスクォータ:Amazon SageMakerの2つのリソースに十分なクォータがあることを確認してください。
ml.m5.4xlarge
エンドポイント用とml.m5.4xlarge
をノートブック・インスタンスの使用量に割り当てます。それぞれ最低1つのクォータ値が必要です。現在のクォータがこの要件を下回っている場合、それぞれのクォータの増加をリクエストすることが重要です。クォータの増加は AWS Service Quotasのドキュメント.
Step 2: Clone the YOLO11 SageMaker Repository
The next step is to clone the specific AWS repository that contains the resources for deploying YOLO11 on SageMaker. This repository, hosted on GitHub, includes the necessary CDK scripts and configuration files.
- GitHub リポジトリをクローンします:ターミナルで以下のコマンドを実行し、host-yolov8-on-sagemaker-endpoint リポジトリをクローンします:
- クローンされたディレクトリに移動します:ディレクトリをクローンされたリポジトリに変更します:
ステップ3:CDK環境のセットアップ
必要なコードが揃ったので、AWS CDKでデプロイするための環境をセットアップする。
- Python 仮想環境を作成する:これにより、Python の環境と依存関係が分離される。実行する:
- 仮想環境を起動します:
- 依存関係をインストールします:プロジェクトに必要なPython の依存関係をインストールします:
- AWS CDK ライブラリをアップグレードします:AWS CDKライブラリの最新バージョンを確認してください:
ステップ4: AWS CloudFormationスタックの作成
- CDKアプリケーションを合成します:CDKコードからAWS CloudFormationテンプレートを生成します:
- CDKアプリケーションをブートストラップするCDKをデプロイするためにAWS環境を準備します:
- スタックをデプロイする:必要なAWSリソースを作成し、モデルをデプロイします:
Step 5: Deploy the YOLO Model
Before diving into the deployment instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.
After creating the AWS CloudFormation Stack, the next step is to deploy YOLO11.
-
ノートブックインスタンスを開きます: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)
- Deploy the Endpoint Using 1_DeployEndpoint.ipynb: In the Jupyter environment, open the 1_DeployEndpoint.ipynb notebook located in the sm-notebook directory. Follow the instructions in the notebook and run the cells to download the YOLO11 model, package it with the updated inference code, and upload it to an Amazon S3 bucket. The notebook will guide you through creating and deploying a SageMaker endpoint for the YOLO11 model.
ステップ 6: 配備のテスト
Now that your YOLO11 model is deployed, it's important to test its performance and functionality.
-
テスト・ノートブックを開く:同じJupyter環境で、sm-notebookディレクトリにある2_TestEndpoint.ipynbノートブックを探して開く。
-
Run the Test Notebook: Follow the instructions within the notebook to test the deployed SageMaker endpoint. This includes sending an image to the endpoint and running inferences. Then, you'll plot the output to visualize the model's performance and accuracy, as shown below.
- クリーンアップ・リソース:テストノートブックは、エンドポイントとホストされたモデルをクリーンアップするプロセスも案内します。これは、コストとリソースを効果的に管理するための重要なステップです。
ステップ7:モニタリングと管理
テスト後は、展開したモデルの継続的なモニタリングと管理が不可欠である。
-
Amazon CloudWatch で監視:Amazon CloudWatch を使用して、SageMaker エンドポイントのパフォーマンスと健全性を定期的にチェックします。
-
エンドポイントの管理エンドポイントの継続的な管理には、SageMaker コンソールを使用します。これには、必要に応じてモデルをスケーリング、更新、または再デプロイすることが含まれます。
By completing these steps, you will have successfully deployed and tested a YOLO11 model on Amazon SageMaker Endpoints. This process not only equips you with practical experience in using AWS services for machine learning deployment but also lays the foundation for deploying other advanced models in the future.
概要
This guide took you step by step through deploying YOLO11 on Amazon SageMaker Endpoints using AWS CloudFormation and the AWS Cloud Development Kit (CDK). The process includes cloning the necessary GitHub repository, setting up the CDK environment, deploying the model using AWS services, and testing its performance on SageMaker.
技術的な詳細については、AWS Machine Learning Blog のこちらの記事を参照してください。また、Amazon SageMakerの公式ドキュメントで、様々な特徴や機能についての詳細を確認することができます。
Are you interested in learning more about different YOLO11 integrations? Visit the Ultralytics integrations guide page to discover additional tools and capabilities that can enhance your machine-learning projects.
よくあるご質問
How do I deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints?
To deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints, follow these steps:
- AWS環境をセットアップします:AWS アカウント、必要な権限を持つ IAM ロール、および AWSCLI が設定されていることを確認します。AWS CDK がインストールされていない場合は、インストールします(AWS CDK の説明を参照)。
- Clone the YOLO11 SageMaker Repository:
- CDK環境のセットアップ:Python 仮想環境の作成、アクティベーション、依存関係のインストール、AWS CDK ライブラリのアップグレード。
- AWS CDKを使ったデプロイ:CloudFormationスタックを合成してデプロイし、環境をブートストラップする。
詳しくは、ドキュメントのセクションをご覧ください。
What are the prerequisites for deploying YOLO11 on Amazon SageMaker?
To deploy YOLO11 on Amazon SageMaker, ensure you have the following prerequisites:
- AWSアカウント:アクティブなAWSアカウント(サインアップはこちら)。
- IAM ロール:SageMaker、CloudFormation、Amazon S3用の権限を持つIAMロールを設定。
- AWSCLI :AWS Command Line Interface(AWSCLI インストールガイド)をインストールして設定しました。
- AWS CDK: AWS Cloud Development Kit(CDKセットアップガイド)をインストール。
- サービス・クォータ:十分な出場枠
ml.m5.4xlarge
インスタンスをエンドポイントとノートブックの両方で使用する (増枠を要請する).
詳細なセットアップについては、このセクションを参照してください。
Why should I use Ultralytics YOLO11 on Amazon SageMaker?
Using Ultralytics YOLO11 on Amazon SageMaker offers several advantages:
- スケーラビリティと管理:SageMaker は、オートスケーリングなどの機能を備えた管理環境を提供し、リアルタイム推論のニーズに対応します。
- AWSサービスとの統合:データストレージのS3、Infrastructure as CodeのCloudFormation、モニタリングのCloudWatchなど、他のAWSサービスとシームレスに統合できます。
- デプロイの容易さ:AWS CDKスクリプトを使用してセットアップを簡素化し、デプロイプロセスを合理化。
- パフォーマンスAmazon SageMakerの高性能インフラを活用し、大規模推論タスクを効率的に実行。
SageMakerを使用する利点については、導入セクションで詳しく説明しています。
Can I customize the inference logic for YOLO11 on Amazon SageMaker?
Yes, you can customize the inference logic for YOLO11 on Amazon SageMaker:
-
修正
inference.py
:を探し、カスタマイズする。output_fn
関数のinference.py
ファイルで出力フォーマットを調整する。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
)に変更された。
変更したモデルを展開するための詳細な手順を参照してください。
How can I test the deployed YOLO11 model on Amazon SageMaker?
To test the deployed YOLO11 model on Amazon SageMaker:
- テストノートを開く:を見つける。
2_TestEndpoint.ipynb
SageMaker Jupyter 環境のノートブック。 - ノートブックを実行します:ノートブックの指示に従って、エンドポイントに画像を送信し、推論を実行し、結果を表示する。
- 結果の可視化:組み込みのプロット機能を使用して、検出されたオブジェクトの周囲のバウンディングボックスなどのパフォーマンスメトリクスを視覚化します。
総合的なテスト方法については、テストセクションをご覧ください。