AWS Deep Learning インスタンスでの Ultralytics YOLOv5 🚀:完全ガイド#
高性能なディープラーニング環境の設定は、特に初心者にとって難しく感じられるかもしれません。しかし、ご安心ください!🛠️ このガイドでは、AWS Deep Learning インスタンスでUltralytics YOLOv5をセットアップして実行する手順を詳しく説明します。アマゾン ウェブ サービス (AWS) の力を活用すれば、機械学習 (ML)を初めて扱う方でも、すぐに低コストで使い始められます。AWS プラットフォームはスケーラビリティに優れているため、実験にも本番環境へのデプロイにも最適です。
YOLOv5 のその他のクイックスタート方法には、Google Colab ノートブック 、Kaggle 環境
、GCP Deep Learning VM、そしてDocker Hub
で利用できるビルド済み Docker イメージがあります。
ステップ 1:AWS コンソールにサインインする#
まず、アカウントを作成するか、AWS マネジメントコンソールにサインインします。ログインしたら、仮想サーバー(インスタンス)を管理できる EC2 サービスのダッシュボードに移動します。

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

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

インスタンスタイプを選択する#
ディープラーニングモデルのトレーニングなど、負荷の高いタスクには、GPU アクセラレーション対応のインスタンスタイプを選択することを強くおすすめします。GPU を使用すると、CPU と比べてモデルのトレーニング時間を大幅に短縮できます。インスタンスのサイズを選ぶ際は、モデルとデータセットに十分なメモリ容量 (RAM) があることを確認してください。
注: モデルとデータセットのサイズは重要な要素です。ML タスクに必要なメモリが選択したインスタンスの容量を超える場合、パフォーマンスの問題やエラーを避けるために、より大きなインスタンスタイプを選ぶ必要があります。
EC2 インスタンスタイプのページで、特に Accelerated Computing カテゴリーの 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)が必要です。

ステップ 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 ドキュメントや、FAQなどの役立つ 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 にコピーしてください。