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

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

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

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

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

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

Link to this sectionШаг 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 для получения подробных руководств по обучению, валидации, прогнозированию (инференсу) и экспорту.
Link to this sectionДополнительно: увеличение объема swap-памяти#
Если ты работаешь с очень большими наборами данных или сталкиваешься с ограничениями памяти во время обучения, увеличение swap-памяти на твоем инстансе иногда может помочь. Swap-пространство позволяет системе использовать дисковое пространство в качестве виртуальной оперативной памяти.
# 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. Удачи в обнаружении!