Link to this sectionAWS Deep Learning Instance上のUltralytics YOLOv5 🚀:完全ガイド#
高パフォーマンスなディープラーニング環境の構築は、特に初心者にとっては難しく感じられるかもしれません。しかし、ご安心ください!🛠️ このガイドでは、AWS Deep Learningインスタンス上でUltralytics YOLOv5をセットアップし、実行するための手順をステップバイステップで解説します。Amazon Web Services (AWS) のパワーを活用することで、機械学習 (ML)の初心者であっても、迅速かつコスト効率よく開始できます。AWSプラットフォームのスケーラビリティは、実験と本番環境へのデプロイの両方に最適です。
YOLOv5のその他のクイックスタートオプションには、Google Colab Notebook 、Kaggle環境
、GCP Deep Learning VM、およびDocker Hubで利用可能な事前構築済みのDockerイメージ
があります。
Link to this sectionステップ1:AWSコンソールへのサインイン#
まず、アカウントを作成するか、AWS Management Consoleにサインインしてください。ログイン後、EC2サービスダッシュボードへ移動し、そこで仮想サーバー(インスタンス)を管理します。

Link to this sectionステップ2:インスタンスの起動#
EC2ダッシュボードから、**Launch Instance(インスタンスの起動)**ボタンをクリックします。これにより、ニーズに合わせた新しい仮想サーバーを作成するプロセスが始まります。

Link to this section適切なAmazon Machine Image (AMI) の選択#
正しいAMIを選択することは非常に重要です。これは、インスタンスのオペレーティングシステムとプリインストールされたソフトウェアを決定します。検索バーに「Deep Learning」と入力し、最新のUbuntuベースのDeep Learning AMIを選択してください(特定のOS要件がある場合を除きます)。AmazonのDeep Learning AMIには、一般的なディープラーニングフレームワーク(YOLOv5で使用されるPyTorchなど)と必要なGPUドライバーがあらかじめ設定されており、セットアッププロセスが大幅に効率化されます。

Link to this sectionインスタンスタイプの選択#
ディープラーニングモデルのトレーニングのような負荷の高いタスクには、GPUアクセラレーションを備えたインスタンスタイプを選択することを強く推奨します。GPUは、CPUと比較してモデルのトレーニング時間を大幅に短縮できます。インスタンスサイズを選択する際は、メモリ容量(RAM)がモデルとデータセットに対して十分であることを確認してください。
注意: モデルとデータセットのサイズは重要な要素です。MLタスクで選択したインスタンスが提供する以上のメモリが必要な場合は、パフォーマンスの問題やエラーを避けるために、より大きなインスタンスタイプを選択する必要があります。
EC2 Instance Typesページで利用可能なGPUインスタンスタイプ、特に**Accelerated Computing(高速コンピューティング)**カテゴリの下を確認してください。

GPU使用状況の監視と最適化に関する詳細については、GPU Monitoring and Optimizationに関するAWSガイドを参照してください。On-Demand Pricingでコストを比較し、Spot Instance Pricingによる潜在的な節約について検討してください。
Link to this sectionインスタンスの設定#
よりコスト効率の高いアプローチとして、Amazon EC2 Spot Instancesの利用を検討してください。Spot Instanceを利用すると、未使用のEC2キャパシティに入札することができ、多くの場合、オンデマンド価格よりも大幅に割引されます。永続性が必要なタスク(Spot Instanceが中断されてもデータを保存する必要がある場合)には、**持続リクエスト(persistent request)**を選択してください。これにより、ストレージボリュームが確実に保持されます。

インスタンス起動ウィザードのステップ4~7に進み、ストレージの設定、タグの追加、セキュリティグループのセットアップ(SSHポート22がIPから開放されていることを確認)を行い、Launchをクリックする前に設定を確認してください。また、安全なSSHアクセスのためにキーペアを作成するか、既存のキーペアを選択する必要があります。
Link to this sectionステップ3:インスタンスへの接続#
インスタンスの状態が「running」になったら、EC2ダッシュボードから選択します。Connectボタンをクリックして接続オプションを表示します。ローカルのターミナル(macOS/LinuxのTerminalやWindowsのPuTTY/WSLなど)で提供されたSSHコマンド例を使用して、セキュアな接続を確立します。起動時に作成または選択したプライベートキーファイル(.pem)が必要です。

Link to this sectionステップ4:Ultralytics YOLOv5の実行#
SSH経由で接続できたら、YOLOv5をセットアップして実行できます。まず、GitHubから公式のYOLOv5リポジトリをクローンし、そのディレクトリに移動します。次に、pipを使用して必要な依存関係をインストールします。Python 3.8以上の環境の使用を推奨します。必要なモデルやデータセットは、トレーニングや検出などのコマンドを実行すると、最新のYOLOv5リリースから自動的にダウンロードされます。
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txt環境が準備できたら、さまざまなタスクでYOLOv5の使用を開始できます:
# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640
# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640トレーニング、検証、予測(推論)、およびエクスポートの詳細なガイドについては、Ultralyticsのドキュメントを参照してください。
Link to this sectionオプションの追加:スワップメモリの増加#
非常に大規模なデータセットを扱う場合や、トレーニング中にメモリ制限に遭遇した場合は、インスタンスのスワップメモリを増やすことが役立つことがあります。スワップ領域を使用すると、ディスク容量を仮想RAMとして利用できるようになります。
# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile
# Set correct permissions
sudo chmod 600 /swapfile
# Set up the file as a Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap memory is active
free -hおめでとうございます!🎉 AWS Deep Learningインスタンスのセットアップが完了し、Ultralytics YOLOv5がインストールされ、物体検出タスクを実行する準備が整いました。学習済みモデルで実験する場合でも、独自のデータでトレーニングする場合でも、この強力なセットアップは、あなたのコンピュータビジョンプロジェクトのためのスケーラブルな基盤となります。問題が発生した場合は、広範なAWSドキュメントやFAQなどの役立つUltralyticsコミュニティのリソースを参照してください。検出を楽しんでください!