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

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

適切なAmazon Machine Image (AMI) の選択
適切なAMIを選択することは極めて重要です。これにより、インスタンスのオペレーティングシステムとプリインストールされるソフトウェアが決定されます。検索バーに「Deep Learning」と入力し、最新のUbuntuベースのDeep Learning AMIを選択してください(他のOSに対する特別な要件がある場合を除きます)。AmazonのDeep Learning AMIには、人気のあるディープラーニングフレームワーク(YOLOv5で使用されるPyTorchなど)と必要なGPUドライバーがあらかじめ構成されており、セットアッププロセスが大幅に簡素化されます。

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

GPU使用状況の監視と最適化の詳細については、AWSのGPU Monitoring and Optimizationガイドを参照してください。オンデマンド料金でコストを比較し、スポットインスタンス料金による潜在的な節約の可能性も検討してください。
インスタンスの設定
より費用対効果の高いアプローチとして、Amazon EC2スポットインスタンスの使用を検討してください。スポットインスタンスでは、未使用のEC2容量に入札でき、多くの場合、オンデマンド価格よりも大幅に安く利用できます。永続性(スポットインスタンスが中断された場合でもデータを保存する)が必要なタスクには、永続的なリクエストを選択してください。これにより、ストレージボリュームが保持されます。

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

ステップ 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ドキュメントを参照してください。
オプションの追加項目: スワップメモリの増加
非常に大きなデータセットを扱う場合や、トレーニング中にメモリ制限に直面した場合は、インスタンスのスワップメモリを増やすことが役立つ場合があります。スワップ領域を使用すると、システムはディスク領域を仮想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コミュニティのリソースを参照してください。ハッピーな検出ライフを!