Ultralytics YOLO27:

Краткое руководство: Ultralytics YOLOv5 🚀 на AzureML#

Добро пожаловать в краткое руководство Ultralytics по YOLOv5 для Microsoft Azure Machine Learning (AzureML)! В этом руководстве ты узнаешь, как настроить YOLOv5 на вычислительном экземпляре AzureML: от создания виртуального окружения до обучения модели и запуска инференса.

Что такое Azure?#

Azure — комплексная платформа облачных вычислений от Microsoft. Она предлагает широкий спектр услуг, в том числе вычислительные ресурсы, базы данных, инструменты аналитики, возможности машинного обучения и сетевые решения. Azure позволяет организациям создавать, развёртывать и управлять приложениями и сервисами через центры обработки данных под управлением Microsoft, упрощая перенос рабочих нагрузок из локальной инфраструктуры в облако.

Что такое Azure Machine Learning (AzureML)?#

Azure Machine Learning (AzureML) — специализированная облачная служба для разработки, обучения и развёртывания моделей машинного обучения. Она предоставляет среду для совместной работы с инструментами, подходящими специалистам по анализу данных и разработчикам любого уровня. Ключевые возможности включают автоматизированное машинное обучение (AutoML), интерфейс для создания моделей методом перетаскивания и мощный SDK для Python, позволяющий точнее управлять жизненным циклом ML. AzureML упрощает встраивание предиктивного моделирования в приложения.

Предварительные требования#

Для работы по этому руководству тебе понадобится активная подписка Azure и доступ к рабочей области AzureML. Если рабочая область ещё не настроена, обратись к официальной документации Azure, чтобы создать её.

Создание вычислительного экземпляра#

Вычислительный экземпляр AzureML — это управляемая облачная рабочая станция для специалистов по анализу данных.

  1. Открой рабочую область AzureML.
  2. На панели слева выбери Compute.
  3. Перейди на вкладку Compute instances и нажми New.
  4. Настрой экземпляр, выбрав подходящие ресурсы CPU или GPU с учётом своих задач обучения или инференса.
Azure ML create compute instance interface

Открой терминал#

Когда вычислительный экземпляр запустится, ты сможешь открыть его терминал прямо в AzureML Studio.

  1. Перейди в раздел Notebooks на панели слева.
  2. Найди свой вычислительный экземпляр в раскрывающемся меню вверху.
  3. Нажми Terminal под обозревателем файлов, чтобы открыть интерфейс командной строки своего экземпляра.

Расположение кнопки открытия терминала в Azure ML

Настройка и запуск YOLOv5#

Теперь настроим окружение и запустим Ultralytics YOLOv5.

1. Создай виртуальное окружение#

Для управления зависимостями рекомендуется использовать виртуальное окружение. Мы воспользуемся Conda, которая предустановлена на вычислительных экземплярах AzureML. Подробные инструкции по настройке Conda смотри в кратком руководстве Ultralytics по Conda.

Создай окружение Conda (например, yolov5env) с указанной версией Python и активируй его:

conda create --name yolov5env -y python=3.10 # Create a new Conda environment
conda activate yolov5env                     # Activate the environment
conda install pip -y                         # Ensure pip is installed

2. Клонируй репозиторий YOLOv5#

Клонируй официальный репозиторий Ultralytics YOLOv5 с помощью Git из GitHub:

git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5                                       # Navigate into the directory

3. Установи зависимости#

Установи необходимые пакеты Python, указанные в файле requirements.txt. Также установи ONNX, чтобы экспортировать модели.

pip install -r requirements.txt # Install core dependencies
pip install "onnx>=1.12.0"      # Install ONNX for exporting

4. Выполняй задачи YOLOv5#

После настройки ты можешь обучать и проверять модель YOLOv5, запускать инференс и экспортировать модель.

  • Обучи модель на таком наборе данных, как COCO128. Подробнее смотри в руководстве Обучение на пользовательских данных.

    # Start training using yolov5s pretrained weights on the COCO128 dataset
    python train.py --data coco128.yaml --weights yolov5s.pt --img 640 --epochs 10 --batch 16
  • Оцени производительность обученной модели с помощью таких метрик, как точность, полнота и mAP. Чтобы увидеть все параметры, запусти python val.py --help.

    # Validate the yolov5s model on the COCO128 validation set
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640
  • Запусти инференс на новых изображениях или видео. Список поддерживаемых источников смотри в кратком руководстве по YOLOv5.

    # Run inference with yolov5s on sample images
    python detect.py --weights yolov5s.pt --source data/images --img 640
  • Экспортируй модель в разные форматы, например ONNX, TensorRT или CoreML, чтобы развернуть её. Обратись к руководству Экспорт модели и странице Интеграция с ONNX.

    # Export yolov5s to ONNX format
    python export.py --weights yolov5s.pt --include onnx --img 640

Работа в Notebook#

Если тебе удобнее интерактивная работа, запускай эти команды в Notebook AzureML. Для этого нужно создать пользовательское ядро IPython, связанное с окружением Conda.

Создание ядра IPython#

Выполни следующие команды в терминале вычислительного экземпляра:

# Ensure your Conda environment is active
# conda activate yolov5env

# Install ipykernel if not already present
conda install ipykernel -y

# Create a new kernel linked to your environment
python -m ipykernel install --user --name yolov5env --display-name "Python (yolov5env)"

После создания ядра обнови страницу в браузере. Открыв или создав файл Notebook .ipynb, выбери новое ядро («Python (yolov5env)») в раскрывающемся меню ядра в правом верхнем углу.

Выполнение команд в ячейках Notebook#

  • Ячейки Python: код в ячейках Python будет автоматически выполняться с выбранным ядром yolov5env.

  • Ячейки Bash: чтобы запускать команды оболочки, начни ячейку с магической команды %%bash. Не забывай активировать окружение Conda в каждой ячейке Bash: они не наследуют автоматически контекст окружения ядра Notebook.

    %%bash
    source activate yolov5env # Activate environment within the cell
    
    # Example: Run validation using the activated environment
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640

Поздравляем! Ты успешно настроил и запустил Ultralytics YOLOv5 в AzureML. Чтобы узнать больше, изучи другие интеграции Ultralytics или подробную документацию YOLOv5. Для сложных сценариев, например распределённого обучения или развёртывания модели в виде конечной точки, может пригодиться документация AzureML.

Часто задаваемые вопросы#

  • Экземпляра с CPU хватит для инференса и коротких тестовых запусков на COCO128, но для полноценного обучения понадобится экземпляр с GPU. При создании вычислительного экземпляра выбери виртуальную машину с GPU и проверь, что PyTorch его видит, с помощью python -c "import torch; print(torch.cuda.is_available())".

  • Ячейки Bash не наследуют окружение ядра Notebook. В начале каждой ячейки %%bash запускай source activate yolov5env или выполняй ячейки Python с созданным тобой ядром Python (yolov5env).

  • Файлы в общей папке рабочей области, смонтированной по пути ~/cloudfiles, сохраняются после остановки и доступны с других вычислительных экземпляров. Всё, что находится в другом месте на диске экземпляра, сохраняется, пока существует сам экземпляр, но будет потеряно при его удалении.

  • Да. Пакет pip install ultralytics позволяет обучать и проверять YOLO26, а также экспортировать модель с помощью CLI yolo в том же окружении Conda. Инструкции по работе с пакетом смотри в кратком руководстве по AzureML.

Комментарии