AWS Deep Learning Instance 上の Ultralytics YOLOv5 🚀:完全ガイド#
高性能なディープラーニング環境の構築は、特に初心者にとって難しく感じられる場合があります。しかし、ご安心ください! 🛠️ このガイドでは、AWS Deep Learning Instance 上でUltralytics YOLOv5を稼働させるまでの手順を詳しく説明します。アマゾン ウェブ サービス (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 には、一般的なディープラーニングフレームワーク(PyTorch など。YOLOv5 で使用されています)や必要な GPU ドライバーがあらかじめ設定されているため、セットアッププロセスを大幅に簡略化できます。

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

GPU 使用率の監視と最適化に関する詳しい情報については、AWS の GPU Monitoring and Optimization ガイドを参照してください。On-Demand Pricing を使用してコストを比較し、Spot Instance Pricing で節約できる可能性を確認してください。
インスタンスの設定#
よりコスト効率の高いアプローチとして、Amazon EC2 スポットインスタンスの利用をご検討ください。スポットインスタンスを使用すると、未使用の EC2 キャパシティーに対して入札を行うことができ、オンデマンド価格と比較して大幅な割引価格で利用できることがよくあります。中断に対応する必要があるトレーニングの場合は、永続リクエスト (persistent request) を選択し、中断動作を終了 (terminate) ではなく 停止 (stop) に設定してください。これにより、EBS ボリュームとトレーニング出力が保持され、キャパシティーが復旧したときにインスタンスが再起動します。

インスタンス起動ウィザードのステップ 4~7 に進み、ストレージの設定、タグの追加、セキュリティグループの設定(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詳細なガイドについては、カスタムデータのトレーニング (Train Custom Data) および モデルのエクスポート (Model Export) のチュートリアルをご覧ください。
オプション:スワップメモリの増量#
非常に大きなデータセットを扱っている場合や、トレーニング中にメモリの制限に遭遇した場合は、インスタンスのスワップメモリを増やすことで改善できる場合があります。スワップ領域を使用すると、システムはディスク領域を仮想 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 Instance のセットアップと Ultralytics YOLOv5 のインストールが正常に完了し、物体検出タスクを実行できる状態になりました。事前トレーニング済みモデルを試す場合でも、独自のデータでトレーニングする場合でも、この強力なセットアップはコンピュータービジョンプロジェクトのスケーラブルな基盤となります。問題が発生した場合は、豊富な AWS ドキュメントや、FAQなどの Ultralytics コミュニティリソースを参照してください。検出をお楽しみください!
FAQ#
最新の Ubuntu ベースの AWS Deep Learning AMI を選択してください。NVIDIA ドライバー、CUDA、および PyTorch がプリインストールされているため、残りのセットアップはリポジトリのクローンを作成し、
requirements.txtをインストールすることだけです。アクセラレーテッドコンピュート (Accelerated Computing) ファミリーの任意の GPU インスタンス(例:
g4dn、g5、p3インスタンス)が機能します。バッチサイズと画像サイズに十分な GPU メモリを選択し、--batch-size -1を使用して、YOLOv5 に収まる最大のバッチを選択させてください。小規模な転送には
scpを.pemキーとともに使用するか、Amazon S3 にデータをステージングしてaws s3 syncでコピーしてください。トレーニング出力はruns/train/に保存され、重みはruns/train/exp/weights/に配置されます。中断動作を 停止 (stop) に設定した永続スポットリクエストを使用して EBS ボリュームが保持されるようにし、インスタンスが再起動したら
python train.py --resumeを使用して最後のチェックポイントから実行を再開します。進捗状況の損失を許容できない場合は、last.ptとbest.ptを定期的に S3 にコピーしてください。