Ultralytics YOLO27:
Get Started

Amazon SageMakerエンドポイントへのYOLO26デプロイガイド#

コンピュータービジョンの高度なモデル、たとえばUltralyticsのYOLO26をAmazon SageMakerエンドポイントにデプロイすると、さまざまな機械学習アプリケーションに幅広い可能性が開かれます。これらのモデルを効果的に活用するには、セットアップ、設定、デプロイの各プロセスを理解することが重要です。AWSが提供する堅牢でスケーラブルな機械学習サービスであるAmazon SageMakerとシームレスに統合すると、YOLO26をさらに強力に活用できます。

このガイドでは、YOLO26のPyTorchモデルをAmazon SageMakerエンドポイントにデプロイする手順を順を追って説明します。AWS環境の準備、モデルの適切な設定、AWS CloudFormationやAWS Cloud Development Kit(CDK)などのツールを使ったデプロイについて学びます。

Amazon SageMaker#

Amazon SageMaker ML platform architecture

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

Amazon SageMakerエンドポイントへのYOLO26のデプロイ#

YOLO26をAmazon SageMakerにデプロイすると、マネージド環境でリアルタイム推論を実行でき、自動スケーリングなどの機能も活用できます。以下のAWSアーキテクチャをご覧ください。

AWS SageMaker YOLO training architecture

ステップ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のドキュメントに記載された詳しい手順に従ってリクエストできます。

ステップ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コンソールでAmazon SageMakerサービスに移動します。ダッシュボードから「Notebook Instances」を選択し、CDKデプロイスクリプトで作成されたノートブックインスタンスを探します。ノートブックインスタンスを開いてJupyter環境にアクセスします。

  • inference.pyにアクセスして編集する: JupyterでSageMakerノートブックインスタンスを開いた後、inference.pyファイルを探します。以下に示すようにinference.pyのoutput_fn関数を編集し、構文エラーがないことを確認してスクリプトを保存します。

    import json
    
    def output_fn(prediction_output, content_type):
        """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エンドポイントをテストします。これには、エンドポイントへの画像送信と推論の実行が含まれます。次に、以下に示すように出力をプロットして、モデルのパフォーマンスと精度を可視化します。

Testing Results YOLO26

  • リソースをクリーンアップする: テスト用ノートブックでは、エンドポイントとホストされたモデルをクリーンアップする手順も確認できます。デプロイしたモデルをすぐに使用する予定がない場合は特に、コストとリソースを効率的に管理するうえで重要な手順です。

ステップ7: 監視と管理#

テスト後は、デプロイしたモデルを継続的に監視し、管理することが重要です。

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

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

これらの手順を完了すると、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 の統合ガイドページをご覧ください。機械学習プロジェクトを強化できるツールや機能をさらに確認できます。

よくある質問#

  • Ultralytics YOLO26 モデルを Amazon SageMaker Endpoints にデプロイするには、次の手順に従ってください。

    1. AWS 環境のセットアップ: AWS アカウント、必要な権限を持つ IAM ロール、設定済みの AWS CLI があることを確認してください。まだインストールしていない場合は AWS CDK をインストールしてください(AWS CDK の手順を参照)。
    2. YOLO26 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 に YOLO26 をデプロイするには、次の前提条件を満たしていることを確認してください。

    1. AWS アカウント: 有効な AWS アカウント(こちらから登録)。
    2. IAM ロール: SageMaker、CloudFormation、Amazon S3 の権限を持つ IAM ロールが設定されていること。
    3. AWS CLI: AWS コマンドラインインターフェイスがインストールされ、設定されていること(AWS CLI のインストールガイド)。
    4. AWS CDK: AWS クラウド開発キットがインストールされていること(CDK のセットアップガイド)。
    5. サービスクォータ: エンドポイントとノートブックの両方で ml.m5.4xlarge インスタンスを使用するために十分なクォータがあること(クォータの引き上げをリクエスト)。

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

  • Amazon SageMaker で Ultralytics YOLO26 を使用すると、いくつかのメリットがあります。

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

    SageMaker を使用するメリットについては、概要セクションをご覧ください。

  • はい、Amazon SageMaker で YOLO26 の推論ロジックをカスタマイズできます。

    1. inference.py を変更: inference.py ファイル内の output_fn 関数を見つけ、出力形式に合わせてカスタマイズします。

      import json
      
      def output_fn(prediction_output, content_type):
          """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()
              # 必要に応じて、さらに処理ロジックを追加します
          return json.dumps(infer)
    2. 更新したモデルをデプロイ: 変更を反映するため、用意されている Jupyter ノートブック(1_DeployEndpoint.ipynb)を使用してモデルを再デプロイしてください。

    変更したモデルのデプロイについては、詳しい手順を参照してください。

  • Amazon SageMaker にデプロイした YOLO26 モデルをテストするには、次の手順に従ってください。

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

    包括的なテスト手順については、テストのセクションをご覧ください。

コメント