Ultralytics YOLOv5 🚀 на AWS Deep Learning Instance: полное руководство#
Настройка высокопроизводительной среды для глубокого обучения может показаться сложной, особенно новичкам. Но не волнуйся! 🛠️ В этом руководстве пошагово показано, как запустить Ultralytics YOLOv5 на AWS Deep Learning instance. Используя возможности веб-сервисов Amazon (AWS), даже те, кто только начинает заниматься машинным обучением (ML), смогут быстро и экономично приступить к работе. Масштабируемость платформы AWS делает её идеальной как для экспериментов, так и для промышленного развёртывания.
Другие варианты быстрого запуска YOLOv5 включают наш ноутбук Google Colab , среды Kaggle
, виртуальную машину GCP для глубокого обучения и наш готовый образ Docker, доступный на Docker Hub
.
Шаг 1: вход в консоль AWS#
Начни с создания аккаунта или войди в консоль управления AWS. После входа перейди на панель сервиса EC2, где можно управлять виртуальными серверами (инстансами).

Шаг 2: запуск инстанса#
На панели EC2 нажми кнопку Launch Instance. Это запустит процесс создания нового виртуального сервера, настроенного под твои требования.

Выбор подходящего образа машины Amazon (AMI)#
Правильный выбор AMI имеет решающее значение. Он определяет операционную систему и предустановленное программное обеспечение для твоего инстанса. В строке поиска введи 'Deep Learning' и выбери последний AMI Deep Learning на базе Ubuntu (если у тебя нет особых требований к другой ОС). AMI Deep Learning от Amazon предварительно настроены с популярными фреймворками глубокого обучения, такими как PyTorch, используемый YOLOv5, и необходимыми драйверами GPU, что значительно упрощает настройку.

Выбор типа инстанса#
Для ресурсоёмких задач, таких как обучение моделей глубокого обучения, настоятельно рекомендуется выбрать тип инстанса с ускорением на GPU. GPU могут значительно сократить время обучения модели по сравнению с CPU. При выборе размера инстанса убедись, что объём его памяти (RAM) достаточен для твоей модели и набора данных.
Примечание: Размер модели и набора данных — критически важные факторы. Если для твоей задачи ML требуется больше памяти, чем предоставляет выбранный инстанс, нужно выбрать инстанс большего размера, чтобы избежать проблем с производительностью или ошибок.
Изучи доступные типы инстансов с GPU на странице типов инстансов EC2, особенно в категории Accelerated Computing.

Подробную информацию о мониторинге и оптимизации использования GPU смотри в руководстве AWS по мониторингу и оптимизации GPU. Сравни стоимость с помощью тарификации On-Demand и изучи возможную экономию с помощью тарификации Spot Instance.
Настройка инстанса#
Подумай об использовании Amazon EC2 Spot Instances для более экономичного подхода. Spot Instances позволяют делать ставки на неиспользуемую емкость EC2, часто со значительной скидкой по сравнению с ценами On-Demand. Для обучения, которое должно выдерживать прерывания, выбери persistent request и установи поведение при прерывании в значение stop вместо terminate, чтобы тома EBS и результаты обучения сохранялись, а инстанс перезапускался при возвращении емкости.

Пройди шаги 4–7 мастера запуска инстанса, чтобы настроить хранилище, добавить теги, настроить группы безопасности (убедись, что порт SSH 22 открыт для твоего IP-адреса) и проверить параметры перед нажатием Launch. Также нужно создать новую или выбрать существующую пару ключей для безопасного доступа по SSH.
Шаг 3: подключение к инстансу#
Когда состояние инстанса изменится на «running», выбери его на панели EC2. Нажми кнопку Connect, чтобы просмотреть варианты подключения. Используй предоставленный пример команды SSH в локальном терминале (например, Terminal в macOS/Linux или PuTTY/WSL в Windows), чтобы установить безопасное соединение. Тебе понадобится файл закрытого ключа (.pem), созданный или выбранный при запуске.

Шаг 4: запуск Ultralytics YOLOv5#
Теперь, когда ты подключён по SSH, можно настроить и запустить YOLOv5. Сначала клонируй официальный репозиторий YOLOv5 с GitHub и перейди в его каталог. Затем установи необходимые зависимости с помощью 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.
Дополнительно: увеличение swap-памяти#
Если ты работаешь с очень большими наборами данных или сталкиваешься с нехваткой памяти во время обучения, иногда может помочь увеличение swap-памяти на инстансе. Swap-пространство позволяет системе использовать дисковое пространство как виртуальную 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 и полезным ресурсам сообщества Ultralytics, например к разделу FAQ. Удачного обнаружения объектов!
Часто задаваемые вопросы#
Выбери новейший AWS Deep Learning AMI на базе Ubuntu. В него уже предустановлены драйверы NVIDIA, CUDA и PyTorch, поэтому единственная оставшаяся настройка — это клонирование репозитория и установка
requirements.txt.Подойдет любой GPU-инстанс из семейства Accelerated Computing, например
g4dn,g5илиp3. Выбери достаточно памяти GPU для твоего размера батча и размера изображения и используй--batch-size -1, чтобы позволить YOLOv5 выбрать наибольший батч, который помещается в память.Используй
scpсо своим ключом.pemдля небольших передач или размещай данные в Amazon S3 и копируй их с помощьюaws s3 sync. Результаты обучения попадают вruns/train/, а веса находятся вruns/train/exp/weights/.Используй постоянный запрос Spot с поведением при прерывании, установленным в stop, чтобы том EBS сохранился, а затем возобнови запуск с последнего чекпоинта с помощью
python train.py --resume, как только инстанс перезапустится. Периодически копируйlast.ptиbest.ptв S3, если ты не можешь позволить себе потерять прогресс.