Saltar al contenido

YOLOv8 🚀 en AzureML

¿Qué es Azure?

Azure es la plataforma de computación en la nube de Microsoft, diseñada para ayudar a las organizaciones a trasladar sus cargas de trabajo a la nube desde los centros de datos locales. Con todo el espectro de servicios en la nube, incluidos los de computación, bases de datos, análisis, aprendizaje automático y redes, los usuarios pueden elegir entre estos servicios para desarrollar y escalar nuevas aplicaciones, o ejecutar aplicaciones existentes, en la nube pública.

¿Qué es Azure Machine Learning (AzureML)?

Azure Machine Learning, comúnmente conocido como AzureML, es un servicio en la nube totalmente gestionado que permite a los científicos de datos y a los desarrolladores integrar eficazmente el análisis predictivo en sus aplicaciones, ayudando a las organizaciones a utilizar conjuntos de datos masivos y aportar todas las ventajas de la nube al aprendizaje automático. AzureML ofrece una variedad de servicios y capacidades destinados a hacer que el aprendizaje automático sea accesible, fácil de usar y escalable. Proporciona capacidades como el aprendizaje automático, el entrenamiento de modelos mediante arrastrar y soltar, así como un robusto SDK Python para que los desarrolladores puedan sacar el máximo partido a sus modelos de aprendizaje automático.

¿Cómo beneficia AzureML a los usuarios de YOLO ?

Para los usuarios de YOLO (You Only Look Once), AzureML proporciona una plataforma robusta, escalable y eficiente tanto para entrenar como para desplegar modelos de aprendizaje automático. Tanto si quieres ejecutar prototipos rápidos como escalar para manejar datos más extensos, el entorno flexible y fácil de usar de AzureML ofrece diversas herramientas y servicios que se adaptan a tus necesidades. Puedes aprovechar AzureML para:

  • Gestiona fácilmente grandes conjuntos de datos y recursos informáticos para el entrenamiento.
  • Utiliza las herramientas integradas para el preprocesamiento de datos, la selección de características y el entrenamiento de modelos.
  • Colabora de forma más eficiente con las capacidades para MLOps (Machine Learning Operations), que incluyen, entre otras, la supervisión, auditoría y versionado de modelos y datos.

En las secciones siguientes encontrarás una guía de inicio rápido en la que se detalla cómo ejecutar modelos de detección de objetos YOLOv8 utilizando AzureML, ya sea desde un terminal informático o un bloc de notas.

Requisitos previos

Antes de empezar, asegúrate de que tienes acceso a un espacio de trabajo AzureML. Si no tienes uno, puedes crear un nuevo espacio de trabajo AzureML siguiendo la documentación oficial de Azure. Este espacio de trabajo actúa como un lugar centralizado para gestionar todos los recursos AzureML.

Crear una instancia de cálculo

En tu espacio de trabajo AzureML, selecciona Compute > Compute instances > New, selecciona la instancia con los recursos que necesitas.

Crear una instancia Azure Compute

Inicio rápido desde el terminal

Arranca tu ordenador y abre un Terminal:

Terminal abierto

Crear virtualenv

Crea tu virtualenv conda e instala pip en él:

conda create --name yolov8env -y
conda activate yolov8env
conda install pip -y

Instala las dependencias necesarias:

cd ultralytics
pip install -r requirements.txt
pip install ultralytics
pip install onnx>=1.12.0

Realiza tareas en YOLOv8

Pronostica:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

Entrena un modelo de detección durante 10 épocas con una tasa_de_aprendizaje inicial de 0,01:

yolo train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01

Puedes encontrar más instrucciones para utilizar Ultralytics CLI aquí.

Inicio rápido desde un cuaderno

Crear un nuevo núcleo IPython

Abre el Terminal informático.

Terminal abierto

Desde tu terminal de computación, tienes que crear un nuevo ipykernel que será utilizado por tu bloc de notas para gestionar tus dependencias:

conda create --name yolov8env -y
conda activate yolov8env
conda install pip -y
conda install ipykernel -y
python -m ipykernel install --user --name yolov8env --display-name "yolov8env"

Cierra tu terminal y crea un nuevo bloc de notas. Desde tu Cuaderno, puedes seleccionar el nuevo núcleo.

A continuación, puedes abrir una celda de Libreta e instalar las dependencias necesarias:

%%bash
source activate yolov8env
cd ultralytics
pip install -r requirements.txt
pip install ultralytics
pip install onnx>=1.12.0

Ten en cuenta que tenemos que utilizar la función source activate yolov8env para todas las celdas %%bash, para asegurarnos de que la celda %%bash utiliza el entorno que queremos.

Ejecuta algunas predicciones utilizando la función Ultralytics CLI:

%%bash
source activate yolov8env
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

O con la interfazUltralytics Python , por ejemplo para entrenar el modelo:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official YOLOv8n model

# Use the model
model.train(data="coco8.yaml", epochs=3)  # train the model
metrics = model.val()  # evaluate model performance on the validation set
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
path = model.export(format="onnx")  # export the model to ONNX format

Puedes utilizar la interfaz Ultralytics CLI o Python para ejecutar tareas YOLOv8 , como se describe en la sección anterior sobre el terminal.

Siguiendo estos pasos, deberías poder poner en marcha rápidamente YOLOv8 en AzureML para realizar pruebas rápidas. Para usos más avanzados, puedes consultar la documentación completa de AzureML enlazada al principio de esta guía.

Explora más con AzureML

Esta guía sirve de introducción para ponerte en marcha con YOLOv8 en AzureML. Sin embargo, sólo araña la superficie de lo que AzureML puede ofrecer. Para profundizar y liberar todo el potencial de AzureML para tus proyectos de aprendizaje automático, considera explorar los siguientes recursos:



Creado 2023-11-12, Actualizado 2024-04-18
Autores: glenn-jocher (3), ouphi (1)

Comentarios