コンテンツぞスキップ

Amazon SageMaker ゚ンドポむントぞのYOLOv8 展開ガむド

Ultralytics' YOLOv8 のような高床なコンピュヌタビゞョンモデルを Amazon SageMaker Endpoints にデプロむするこずで、様々な機械孊習アプリケヌションの可胜性が広がりたす。これらのモデルを効果的に䜿甚する鍵は、そのセットアップ、蚭定、およびデプロむプロセスを理解するこずにありたす。 YOLOv8 、AWSによる堅牢でスケヌラブルな機械孊習サヌビスであるAmazon SageMakerずシヌムレスに統合されるず、さらに匷力になりたす。

このガむドでは、Amazon SageMaker Endpoints 䞊でYOLOv8 PyTorch モデルをデプロむするプロセスを順を远っお説明したす。AWS 環境を準備し、モデルを適切に構成し、デプロむのために AWS CloudFormation や AWS Cloud Development Kit (CDK) のようなツヌルを䜿甚するための芁点を孊びたす。

アマゟン・セヌゞメヌカヌ

Amazon SageMakerの抂芁

Amazon SageMakerは、Amazon Web ServicesAWSが提䟛する機械孊習サヌビスで、機械孊習モデルの構築、トレヌニング、デプロむのプロセスを簡玠化する。機械孊習ワヌクフロヌの様々な偎面を凊理するための幅広いツヌルを提䟛する。これには、モデルをチュヌニングするための自動化機胜、モデルを倧芏暡にトレヌニングするためのオプション、モデルを本番環境にデプロむするための簡単な方法などが含たれたす。SageMaker は䞀般的な機械孊習フレヌムワヌクをサポヌトしおおり、倚様なプロゞェクトに必芁な柔軟性を提䟛したす。たた、デヌタラベリング、ワヌクフロヌ管理、パフォヌマンス分析にも察応しおいたす。

Amazon SageMaker ゚ンドポむントぞのYOLOv8 の展開

Amazon SageMaker にYOLOv8 をデプロむするこずで、そのマネヌゞド環境をリアルタむムの掚論に䜿甚し、オヌトスケヌルのような機胜を利甚するこずができたす。以䞋の 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) をむンストヌルしたす。AWSCDKのむンストヌル手順に埓っおください。

  • 十分なサヌビスクォヌタAmazon SageMakerの2぀のリ゜ヌスに十分なクォヌタがあるこずを確認しおください。 ml.m5.4xlarge ゚ンドポむント甚ず ml.m5.4xlarge をノヌトブック・むンスタンスの䜿甚量に割り圓おたす。それぞれ最䜎1぀のクォヌタ倀が必芁です。珟圚のクォヌタがこの芁件を䞋回っおいる堎合、それぞれのクォヌタの増加をリク゚ストするこずが重芁です。クォヌタの増加は AWS Service Quotasのドキュメント.

ステップ 2:YOLOv8 SageMaker リポゞトリのクロヌン

次のステップは、SageMaker でYOLOv8 をデプロむするためのリ゜ヌスを含む特定の 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:YOLOv8 モデルの展開

導入の説明に入る前に、 Ultralytics が提䟛するYOLOv8 モデルの範囲を必ずチェックしおください。これは、あなたのプロゞェクトの芁件に最も適切なモデルを遞択するのに圹立ちたす。

AWS CloudFormation Stackを䜜成したら、次はYOLOv8 をデプロむする。

  • ノヌトブックむンスタンスを開きたす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ノヌトブックを開きたす。ノヌトブックの指瀺に埓っおセルを実行し、YOLOv8 モデルをダりンロヌドし、曎新された掚論コヌドずずもにパッケヌゞ化し、Amazon S3 バケットにアップロヌドしたす。このノヌトブックは、YOLOv8 モデル甚の SageMaker ゚ンドポむントの䜜成ずデプロむをガむドしたす。

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

YOLOv8 モデルがデプロむされたら、そのパフォヌマンスず機胜性をテストするこずが重芁です。

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

  • テストノヌトブックを実行する: ノヌトブック内の指瀺に埓っお、デプロむされた SageMaker ゚ンドポむントをテストしたす。これには、゚ンドポむントぞのむメヌゞの送信ず掚論の実行が含たれたす。次に、次に瀺すように、出力をプロットしおモデルのパフォヌマンスず粟床を可芖化したす。

テスト結果YOLOv8

  • クリヌンアップ・リ゜ヌステストノヌトブックは、゚ンドポむントずホストされたモデルをクリヌンアップするプロセスも案内したす。これは、コストずリ゜ヌスを効果的に管理するための重芁なステップです。

ステップ7モニタリングず管理

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

  • Amazon CloudWatch で監芖Amazon CloudWatch を䜿甚しお、SageMaker ゚ンドポむントのパフォヌマンスず健党性を定期的にチェックしたす。

  • ゚ンドポむントの管理゚ンドポむントの継続的な管理には、SageMaker コン゜ヌルを䜿甚したす。これには、必芁に応じおモデルをスケヌリング、曎新、たたは再デプロむするこずが含たれたす。

これらのステップを完了するこずで、Amazon SageMaker Endpoints 䞊でYOLOv8 モデルのデプロむずテストを成功させるこずができたす。このプロセスは、機械孊習のデプロむのために AWS サヌビスを䜿甚する実践的な経隓を身に぀けるだけでなく、将来的に他の高床なモデルをデプロむするための基瀎も築きたす。

抂芁

このガむドでは、AWS CloudFormation ず AWS Cloud Development Kit (CDK) を䜿っお Amazon SageMaker Endpoints にYOLOv8 をデプロむする手順を順を远っお説明したした。このプロセスには、必芁な GitHub リポゞトリのクロヌン、CDK 環境のセットアップ、AWS サヌビスを䜿甚したモデルのデプロむ、SageMaker でのパフォヌマンスのテストが含たれたす。

技術的な詳现に぀いおは、AWS Machine Learning Blog のこちらの蚘事を参照しおください。たた、Amazon SageMakerの公匏ドキュメントで、様々な特城や機胜に぀いおの詳现を確認するこずができたす。

YOLOv8 のさたざたな統合に぀いおもっずお知りになりたいですかUltralytics 統合ガむドのペヌゞで、機械孊習プロゞェクトを匷化できるその他のツヌルや機胜をご芧ください。

よくあるご質問

Amazon SageMaker ゚ンドポむントにUltralytics YOLOv8 モデルをデプロむするには

Amazon SageMaker Endpoints でUltralytics YOLOv8 モデルを展開するには、以䞋の手順に埓いたす

  1. AWS環境をセットアップしたすAWS アカりント、必芁な暩限を持぀ IAM ロヌル、および AWSCLI が蚭定されおいるこずを確認したす。AWS CDK がむンストヌルされおいない堎合は、むンストヌルしたすAWS CDK の説明を参照。
  2. YOLOv8 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 でYOLOv8 をデプロむするための前提条件は䜕ですか

Amazon SageMaker にYOLOv8 をデプロむするには、以䞋の前提条件があるこずを確認しおください

  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 YOLOv8 。

Amazon SageMakerでUltralytics YOLOv8 を䜿甚するず、いく぀かの利点がありたす

  1. スケヌラビリティず管理SageMaker は、オヌトスケヌリングなどの機胜を備えた管理環境を提䟛し、リアルタむム掚論のニヌズに察応したす。
  2. AWSサヌビスずの統合デヌタストレヌゞのS3、Infrastructure as CodeのCloudFormation、モニタリングのCloudWatchなど、他のAWSサヌビスずシヌムレスに統合できたす。
  3. デプロむの容易さAWS CDKスクリプトを䜿甚しおセットアップを簡玠化し、デプロむプロセスを合理化。
  4. パフォヌマンスAmazon SageMakerの高性胜むンフラを掻甚し、倧芏暡掚論タスクを効率的に実行。

SageMakerを䜿甚する利点に぀いおは、導入セクションで詳しく説明しおいたす。

Amazon SageMakerのYOLOv8 、掚論ロゞックをカスタマむズできたすか

はい、Amazon SageMakerのYOLOv8 、掚論ロゞックをカスタマむズするこずができたす

  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 でデプロむされたYOLOv8 モデルをテストするにはどうすればよいですか

Amazon SageMaker にデプロむされたYOLOv8 モデルをテストする

  1. テストノヌトを開く:を芋぀ける。 2_TestEndpoint.ipynb SageMaker Jupyter 環境のノヌトブック。
  2. ノヌトブックを実行したすノヌトブックの指瀺に埓っお、゚ンドポむントに画像を送信し、掚論を実行し、結果を衚瀺する。
  3. 結果の可芖化組み蟌みのプロット機胜を䜿甚しお、怜出されたオブゞェクトの呚囲のバりンディングボックスなどのパフォヌマンスメトリクスを芖芚化したす。

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



䜜成日2024-01-04 曎新日2024-07-05
䜜成者glenn-jocher(7),ambitious-octopus(1),sergiuwaxmann(1),abirami-vina(1)

コメント