Ultralytics YOLO27: ウェイティングリストに登録してください。
はじめる

AWS Deep Learning インスタンスでの Ultralytics YOLOv5 🚀:完全ガイド#

高性能なディープラーニング環境の構築は、特に初めての方には難しく感じるかもしれません。このガイドでは、AWS Deep Learning インスタンスで Ultralytics YOLOv5 をセットアップして実行する手順を詳しく説明します。アマゾン ウェブ サービス(AWS)を利用すれば、機械学習(ML)を初めて使用する方でも、すぐに低コストで始められます。AWS プラットフォームはスケーラビリティに優れているため、実験にも本番環境へのデプロイにも適しています。

YOLOv5 のその他のクイックスタート方法には、Google Colab ノートブック Open In Colab、Kaggle 環境 Open In Kaggle、GCP Deep Learning VM、そしてDocker Hub Docker Pullsで利用できるビルド済み Docker イメージがあります。

ステップ 1:AWS コンソールにサインインする#

まず、アカウントを作成するか、AWS マネジメントコンソールにサインインします。ログインしたら、仮想サーバー(インスタンス)を管理できる EC2 サービスのダッシュボードに移動します。

AWS マネジメントコンソールのサインインページ

ステップ 2:インスタンスを起動する#

EC2 ダッシュボードで Launch Instance ボタンをクリックします。これにより、ニーズに合わせた新しい仮想サーバーの作成が始まります。

インスタンスの起動ボタン

適切な Amazon マシンイメージ (AMI) を選択する#

適切な AMI を選択することが重要です。AMI によって、インスタンスのオペレーティングシステムとプリインストール済みソフトウェアが決まります。検索バーに「Deep Learning」と入力し、最新の Ubuntu ベースの Deep Learning AMI を選択します(別の OS が特に必要な場合を除きます)。Amazon の Deep Learning AMI には、YOLOv5 が使用する PyTorch など、一般的なディープラーニングフレームワークや必要なGPU ドライバーが事前設定されているため、セットアップを大幅に簡略化できます。

AWS EC2 Deep Learning AMI の選択

インスタンスタイプを選択する#

ディープラーニングモデルのトレーニングなど、負荷の高いタスクには GPU アクセラレーション対応のインスタンスタイプを強く推奨します。GPUを使用すると、CPU と比べてモデルのトレーニングに必要な時間を大幅に短縮できます。インスタンスサイズを選ぶ際は、メモリー容量(RAM)がモデルとデータセットに十分であることを確認してください。

注: モデルとデータセットのサイズは重要な要素です。ML タスクに必要なメモリが選択したインスタンスの容量を超える場合、パフォーマンスの問題やエラーを避けるために、より大きなインスタンスタイプを選ぶ必要があります。

EC2 インスタンスタイプのページで、特に Accelerated Computing カテゴリーの GPU インスタンスタイプをご確認ください。

AWS EC2 GPU インスタンスタイプの選択

GPU 使用状況の監視と最適化の詳細については、AWS ガイドのGPU の監視と最適化をご覧ください。オンデマンド料金でコストを比較し、スポットインスタンス料金による節約もご検討ください。

インスタンスを設定する#

コストを抑えるには、Amazon EC2 スポットインスタンスの利用をご検討ください。スポットインスタンスでは、未使用の EC2 キャパシティをオンデマンド料金より大幅に安く利用できる場合があります。中断後もトレーニングを継続する必要がある場合は、永続リクエストを選択し、中断時の動作を終了ではなく 停止 に設定します。これにより EBS ボリュームとトレーニング出力が保持され、キャパシティが戻るとインスタンスが再起動します。

スポットリクエストの設定

残りの起動設定に進み、ストレージを設定してタグを追加し、セキュリティグループを設定します(SSH ポート 22 が自分の IP アドレスからアクセス可能であることを確認してください)。設定を確認してから Launch をクリックします。また、安全な SSH アクセスのために、キーペアを新規作成するか、既存のものを選択する必要があります。

ステップ 3:インスタンスに接続する#

インスタンスの状態が「running」になったら、EC2 ダッシュボードでインスタンスを選択します。Connect ボタンをクリックして、接続オプションを表示します。表示された SSH コマンドの例をローカル端末(macOS/Linux の Terminal や、Windows の PuTTY/WSL など)で使用して、安全な接続を確立します。起動時に作成または選択した秘密鍵ファイル(.pem)が必要です。

AWS EC2 インスタンスの SSH 接続オプション

ステップ 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

詳しい手順については、カスタムデータのトレーニングおよびモデルのエクスポートのチュートリアルをご覧ください。

オプション:スワップメモリを増やす#

非常に大きなデータセットを扱う場合や、トレーニング中にメモリ不足が発生する場合は、インスタンスのスワップメモリを増やすと解決することがあります。スワップ領域を使用すると、システムはディスク領域を仮想 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 ドキュメントと Ultralytics のよくある質問をご確認ください。

よくある質問#

  • 最新の Ubuntu ベースの AWS Deep Learning AMI を選択してください。NVIDIA ドライバー、CUDA、PyTorch がプリインストールされているため、残りのセットアップはリポジトリのクローンと requirements.txt のインストールだけです。

  • Accelerated Computing ファミリーの GPU インスタンスであれば使用できます。たとえば、g4dn、g5、p3 の各インスタンスが該当します。バッチサイズと画像サイズに対して十分な GPU メモリを選択し、--batch-size -1 を使用して、YOLOv5 が収まる最大のバッチサイズを選べるようにしてください。

  • 少量のデータを転送する場合は、.pem キーを使用して scp を実行します。または、Amazon S3 にデータを一時保存し、aws s3 sync でコピーします。トレーニング出力は runs/train/ に、重みは runs/train/exp/weights/ に保存されます。

  • 永続スポットリクエストを使用し、中断時の動作を 停止 に設定すると、EBS ボリュームが保持されます。その後、インスタンスの再起動時に python train.py --resume を使って最後のチェックポイントから実行を再開します。進捗を失えない場合は、last.pt と best.pt を定期的に S3 にコピーしてください。

コメント

質問したり、結果を共有したり、ほかの人をサポートしたりできます。