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:

PREGUNTAS FRECUENTES

¿Cómo ejecuto YOLOv8 en AzureML para el entrenamiento del modelo?

Ejecutar YOLOv8 en AzureML para el entrenamiento del modelo implica varios pasos:

  1. Crea una instancia de cálculo: Desde tu espacio de trabajo AzureML, navega hasta Compute > Compute instances > New, y selecciona la instancia requerida.

  2. Configurar entorno: Inicia tu instancia de cálculo, abre un terminal y crea un entorno conda:

    conda create --name yolov8env -y
    conda activate yolov8env
    conda install pip -y
    pip install ultralytics onnx>=1.12.0
    
  3. Ejecuta las tareas de YOLOv8 : Utiliza el Ultralytics CLI para entrenar tu modelo:

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

Para más detalles, puedes consultar las instrucciones de uso de Ultralytics CLI .

¿Cuáles son las ventajas de utilizar AzureML para la formación YOLOv8 ?

AzureML proporciona un ecosistema robusto y eficiente para entrenar modelos YOLOv8 :

  • Escalabilidad: Escala fácilmente tus recursos informáticos a medida que crece la complejidad de tus datos y modelos.
  • Integración de MLOps: Utiliza funciones como el control de versiones, la supervisión y la auditoría para agilizar las operaciones de ML.
  • Colaboración: Comparte y gestiona recursos dentro de los equipos, mejorando los flujos de trabajo colaborativos.

Estas ventajas hacen de AzureML una plataforma ideal para proyectos que van desde prototipos rápidos a despliegues a gran escala. Para más consejos, consulta AzureML Jobs.

¿Cómo puedo solucionar los problemas más comunes al ejecutar YOLOv8 en AzureML?

La resolución de problemas comunes con YOLOv8 en AzureML puede implicar los siguientes pasos:

  • Cuestiones de dependencia: Asegúrate de que están instalados todos los paquetes necesarios. Consulta la página requirements.txt para las dependencias.
  • Configuración del entorno: Comprueba que tu entorno conda está correctamente activado antes de ejecutar comandos.
  • Asignación de recursos: Asegúrate de que tus instancias de cálculo tienen recursos suficientes para manejar la carga de trabajo de entrenamiento.

Para más información, consulta nuestra documentación YOLO Problemas comunes.

¿Puedo utilizar tanto la interfaz Ultralytics CLI como Python en AzureML?

Sí, AzureML te permite utilizar sin problemas tanto la interfaz Ultralytics CLI como la Python :

  • CLI: Ideal para tareas rápidas y para ejecutar guiones estándar directamente desde el terminal.

    yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
    
  • Python Interfaz: Útil para tareas más complejas que requieran codificación personalizada e integración en cuadernos.

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.train(data="coco8.yaml", epochs=3)
    

Consulta las guías de inicio rápido para obtener instrucciones más detalladas aquí y aquí.

¿Cuál es la ventaja de utilizar Ultralytics YOLOv8 frente a otros modelos de detección de objetos?

Ultralytics YOLOv8 ofrece varias ventajas únicas sobre los modelos de detección de objetos de la competencia:

  • Velocidad: Tiempos de inferencia y entrenamiento más rápidos en comparación con modelos como R-CNN más rápido y SSD.
  • Precisión: Alta precisión en tareas de detección con características como el diseño sin anclajes y las estrategias de aumento mejoradas.
  • Facilidad de uso: API intuitiva y CLI para una configuración rápida, lo que la hace accesible tanto a principiantes como a expertos.

Para saber más sobre las funciones de YOLOv8, visita la página Ultralytics YOLO para obtener información detallada.



Creado 2023-11-12, Actualizado 2024-07-05
Autores: glenn-jocher (5), ouphi (1)

Comentarios