コンテンツへスキップ

Amazon SageMaker エンドポイントへのYOLO11 展開ガイド

Ultralytics' YOLO11 のような高度な コンピュータビジョンモデルをAmazon SageMaker Endpoints にデプロイすることで、様々な機械学習アプリケーションの可能性が広がります。これらのモデルを効果的に使用する鍵は、そのセットアップ、設定、およびデプロイプロセスを理解することにあります。YOLO11 、AWSによる堅牢でスケーラブルな機械学習サービスであるAmazon SageMakerとシームレスに統合されると、さらに強力になります。

このガイドでは、Amazon SageMaker エンドポイントにモデルYOLO11 PyTorchモデルを Amazon SageMaker Endpoints にデプロイする手順を順を追って説明します。AWS 環境を準備し、モデルを適切に構成し、AWS CloudFormation や AWS Cloud Development Kit (CDK) のようなツールを使ってデプロイするための要点を学びます。

アマゾン・セージメーカー

Amazon SageMakerの概要

Amazon SageMakerは、Amazon Web Services(AWS)が提供する機械学習サービスで、機械学習モデルの構築、トレーニング、デプロイのプロセスを簡素化する。機械学習ワークフローの様々な側面を処理するための幅広いツールを提供する。これには、モデルをチューニングするための自動化機能、モデルを大規模にトレーニングするためのオプション、モデルを本番環境にデプロイするための簡単な方法などが含まれます。SageMaker は一般的な機械学習フレームワークをサポートしており、多様なプロジェクトに必要な柔軟性を提供します。また、データラベリング、ワークフロー管理、パフォーマンス分析にも対応しています。

Amazon SageMaker エンドポイントへのYOLO11 の展開

Amazon SageMaker にYOLO11 をデプロイすることで、そのマネージド環境をリアルタイムの推論に使用し、オートスケールのような機能を利用することができます。以下の AWS アーキテクチャをご覧ください。

AWSアーキテクチャ

ステップ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) をインストールします。AWS CDKのインストール手順に従ってください。

  • 十分なサービスクォータ:Amazon SageMakerの2つのリソースに十分なクォータがあることを確認してください。 ml.m5.4xlarge エンドポイント用と ml.m5.4xlarge をノートブック・インスタンスの使用量に割り当てます。それぞれ最低1つのクォータ値が必要です。現在のクォータがこの要件を下回っている場合、それぞれのクォータの増加をリクエストすることが重要です。クォータの増加は AWS Service Quotas ドキュメント.

ステップ 2:YOLO11 SageMaker リポジトリのクローン

次のステップは、SageMaker でYOLO11 をデプロイするためのリソースを含む特定の 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 が提供するYOLO11 モデルの範囲を必ずチェックしてください。これは、あなたのプロジェクトの要件に最も適切なモデルを選択するのに役立ちます。

AWS CloudFormation Stack を作成したら、次は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)
  • 1_DeployEndpoint.ipynbを使用してエンドポイントをデプロイする:Jupyter環境で、sm-notebookディレクトリにある1_DeployEndpoint.ipynbノートブックを開きます。ノートブックの指示に従ってセルを実行し、YOLO11 モデルをダウンロードし、更新された推論コードとともにパッケージ化し、Amazon S3 バケットにアップロードします。このノートブックは、YOLO11 モデル用の SageMaker エンドポイントの作成とデプロイをガイドします。

ステップ 6: 配備のテスト

YOLO11 モデルがデプロイされたら、そのパフォーマンスと機能性をテストすることが重要です。

  • テスト・ノートブックを開く:同じJupyter環境で、sm-notebookディレクトリにある2_TestEndpoint.ipynbノートブックを探して開く。

  • テストノートブックを実行します:ノートブック内の指示に従って、デプロイされた SageMaker エンドポイントをテストします。これには、エンドポイントに画像を送信し、推論を実行することが含まれます。その後、以下のように出力をプロットして、モデルのパフォーマンスと精度を可視化します。

テスト結果YOLO11

  • クリーンアップ・リソース:テストノートブックは、エンドポイントとホストされたモデルをクリーンアップするプロセスも案内します。これは、コストとリソースを効果的に管理するための重要なステップです。

ステップ7:モニタリングと管理

テスト後は、展開したモデルの継続的なモニタリングと管理が不可欠である。

  • Amazon CloudWatch で監視:Amazon CloudWatch を使用して、SageMaker エンドポイントのパフォーマンスと健全性を定期的にチェックします。

  • エンドポイントの管理エンドポイントの継続的な管理には、SageMaker コンソールを使用します。これには、必要に応じてモデルをスケーリング、更新、または再デプロイすることが含まれます。

これらのステップを完了することで、Amazon SageMaker Endpoints 上でYOLO11 モデルのデプロイとテストを成功させることができます。このプロセスは、機械学習のデプロイのために AWS サービスを使用する実践的な経験を身につけるだけでなく、将来的に他の高度なモデルをデプロイするための基礎も築きます。

概要

このガイドでは、AWS CloudFormation と AWS Cloud Development Kit (CDK) を使って Amazon SageMaker Endpoints にYOLO11 をデプロイする手順を順を追って説明しました。このプロセスには、必要な GitHub リポジトリのクローン、CDK 環境のセットアップ、AWS サービスを使用したモデルのデプロイ、SageMaker でのパフォーマンスのテストが含まれます。

技術的な詳細については、AWS Machine Learning Blog のこちらの記事を参照してください。また、Amazon SageMakerの公式ドキュメントで、様々な特徴や機能についての詳細を確認することができます。

YOLO11 のさまざまな統合についてもっとお知りになりたいですか?Ultralytics 統合ガイドのページで、機械学習プロジェクトを強化できるその他のツールや機能をご覧ください。

よくあるご質問

Amazon SageMaker エンドポイントにUltralytics YOLO11 モデルをデプロイするには?

Amazon SageMaker Endpoints でUltralytics YOLO11 モデルを展開するには、以下の手順に従います:

  1. AWS環境をセットアップします:AWS アカウント、必要な権限を持つ IAM ロール、および AWSCLI が設定されていることを確認します。AWS CDK がインストールされていない場合は、インストールします(AWS CDK の説明を参照)。
  2. YOLO11 SageMaker リポジトリのクローン:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. CDK環境のセットアップ:Python 仮想環境の作成、アクティベーション、依存関係のインストール、AWS CDK ライブラリのアップグレード。
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. AWS CDKを使ったデプロイ:CloudFormationスタックを合成してデプロイし、環境をブートストラップする。
    cdk synth
    cdk bootstrap
    cdk deploy
    

詳しくは、ドキュメントのセクションをご覧ください。

Amazon SageMaker でYOLO11 をデプロイするための前提条件は何ですか?

Amazon SageMaker にYOLO11 をデプロイするには、以下の前提条件があることを確認してください:

  1. AWSアカウント:アクティブなAWSアカウント(サインアップはこちら)。
  2. IAM ロール:SageMaker、CloudFormation、Amazon S3用の権限を持つIAMロールを設定。
  3. AWSCLI :AWS Command Line Interface(AWSCLI インストールガイド)をインストールして設定しました。
  4. AWS CDK: AWS Cloud Development Kit(CDKセットアップガイド)をインストール。
  5. サービス・クォータ:十分な出場枠 ml.m5.4xlarge インスタンスをエンドポイントとノートブックの両方で使用する (増枠を要請する).

詳細なセットアップについては、このセクションを参照してください。

なぜAmazon SageMakerのUltralytics YOLO11 。

Amazon SageMakerでUltralytics YOLO11 を使用すると、いくつかの利点があります:

  1. スケーラビリティと管理:SageMaker は、オートスケーリングなどの機能を備えた管理環境を提供し、リアルタイム推論のニーズに対応します。
  2. AWSサービスとの統合:データストレージのS3、Infrastructure as CodeのCloudFormation、モニタリングのCloudWatchなど、他のAWSサービスとシームレスに統合できます。
  3. デプロイの容易さ:AWS CDKスクリプトを使用してセットアップを簡素化し、デプロイプロセスを合理化。
  4. パフォーマンスAmazon SageMakerの高性能インフラを活用し、大規模な推論タスクを効率的に実行。

SageMaker を使用する利点については、導入セクションを参照してください。

Amazon SageMakerのYOLO11 、推論ロジックをカスタマイズできますか?

はい、Amazon SageMakerのYOLO11 、推論ロジックをカスタマイズすることができます:

  1. 修正 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)
    
  2. 更新されたモデルの展開:提供されているJupyterノートブックを使ってモデルを再デプロイしてください(1_DeployEndpoint.ipynb)に変更された。

変更したモデルを展開するための詳細な手順を参照してください。

Amazon SageMaker でデプロイされたYOLO11 モデルをテストするにはどうすればよいですか?

Amazon SageMaker にデプロイされたYOLO11 モデルをテストする:

  1. テストノートを開く:を見つける。 2_TestEndpoint.ipynb SageMaker Jupyter 環境のノートブック。
  2. ノートブックを実行します:ノートブックの指示に従って、エンドポイントに画像を送信し、推論を実行し、結果を表示します。
  3. 結果の可視化:内蔵のプロット機能を使用して、検出されたオブジェクトの周囲のバウンディングボックスなどのパフォーマンスメトリクスを視覚化します。

総合的なテスト方法については、テストセクションをご覧ください。

📅作成:1年前 ✏️更新しました 6ヶ月前

コメント