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

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

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

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

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

Пройди оставшиеся настройки запуска: настрой хранилище, добавь теги, настрой группы безопасности (убедись, что порт 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Подробные инструкции см. в руководствах Обучение на пользовательских данных и Экспорт модели.
Дополнительные возможности: увеличение объема подкачки#
Если ты работаешь с очень большими наборами данных или во время обучения сталкиваешься с нехваткой памяти, иногда помогает увеличить объем подкачки на инстансе. Область подкачки позволяет системе использовать дисковое пространство как виртуальную 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, например к разделу Часто задаваемые вопросы. Удачного обнаружения!
Часто задаваемые вопросы#
Выбери последнюю версию 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.