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

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

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

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

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

Продолжай выполнение шагов 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
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640Обратись к документации Ultralytics за подробными руководствами по обучению, валидации, предсказанию (выводу) и экспорту.
Дополнительно: Увеличение размера файла подкачки (swap memory)
Если ты работаешь с очень большими наборами данных или сталкиваешься с ограничениями памяти во время обучения, увеличение размера файла подкачки на инстансе может помочь. Пространство подкачки позволяет системе использовать дисковое пространство как виртуальную 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, такие как FAQ. Удачи в детекции!