Domina el despliegue de YOLOv5 en una máquina virtual (VM) de aprendizaje profundo en Google Cloud Platform (GCP)

Emprender el camino de la inteligencia artificial (IA) y el aprendizaje automático (ML) puede ser emocionante, especialmente cuando aprovechas la potencia y flexibilidad de una plataforma de computación en la nube. Google Cloud Platform (GCP) ofrece herramientas robustas diseñadas tanto para entusiastas como para profesionales del aprendizaje automático. Una de estas herramientas es la Deep Learning VM, preconfigurada para tareas de ciencia de datos y aprendizaje automático. En este tutorial, recorreremos el proceso de configuración de Ultralytics YOLOv5 en una GCP Deep Learning VM. Tanto si estás dando tus primeros pasos en el aprendizaje automático como si eres un profesional experimentado, esta guía te ofrece un camino claro para implementar modelos de detección de objetos impulsados por YOLOv5.

🆓 Además, si eres un usuario nuevo de GCP, estás de suerte con una oferta de crédito gratuito de 300 $ para poner en marcha tus proyectos.

Además de GCP, explora otras opciones de inicio rápido accesibles para YOLOv5, como nuestro Google Colab Notebook Open In Colab para una experiencia basada en navegador, o la escalabilidad de Amazon AWS. Además, los aficionados a los contenedores pueden utilizar nuestra imagen oficial de Docker disponible en Docker Hub Docker Pulls para un entorno encapsulado, siguiendo nuestra guía de inicio rápido de Docker.

Paso 1: Crea y configura tu Deep Learning VM

Comencemos creando una máquina virtual optimizada para el aprendizaje profundo:

  1. Navega al marketplace de GCP y selecciona la Deep Learning VM.
  2. Elige una instancia n1-standard-8; ofrece un equilibrio de 8 vCPU y 30 GB de memoria, adecuado para muchas tareas de aprendizaje automático.
  3. Selecciona una GPU. La elección depende de tu carga de trabajo; incluso una GPU T4 básica acelerará significativamente el entrenamiento de modelos.
  4. Marca la casilla '¿Instalar el controlador de GPU de NVIDIA automáticamente en el primer inicio?' para una configuración fluida.
  5. Asigna un disco persistente SSD de 300 GB para evitar cuellos de botella en la E/S.
  6. Haz clic en 'Implementar' y permite que GCP proporcione tu Deep Learning VM personalizada.

Esta VM viene precargada con herramientas y marcos esenciales, incluida la distribución de Python Anaconda, que agrupa convenientemente muchas dependencias necesarias para YOLOv5.

Ilustración del Marketplace de GCP sobre cómo configurar una Deep Learning VM

Paso 2: Prepara la VM para YOLOv5

Después de configurar el entorno, vamos a instalar YOLOv5 y dejarlo listo:

# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5

# Install dependencies
pip install -r requirements.txt

Este proceso de configuración garantiza que tengas una versión de entorno de Python 3.8.0 o superior y PyTorch 1.8 o posterior. Nuestros scripts descargan automáticamente modelos y datasets de la última versión de YOLOv5, simplificando el proceso de iniciar el entrenamiento de modelos.

Paso 3: Entrena e implementa tus modelos YOLOv5

Con la configuración completa, estás listo para entrenar, validar, predecir y exportar con YOLOv5 en tu VM de GCP:

# Train a YOLOv5 model on your dataset (e.g., yolov5s)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640

# Validate the trained model to check Precision, Recall, and mAP
python val.py --weights yolov5s.pt --data coco128.yaml

# Run inference using the trained model on images or videos
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos

# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite

Con solo unos pocos comandos, YOLOv5 te permite entrenar modelos personalizados de detección de objetos adaptados a tus necesidades específicas o utilizar pesos preentrenados para obtener resultados rápidos en diversas tareas. Explora diferentes opciones de implementación de modelos después de exportar.

Entrenamiento de modelo YOLOv5 en una VM de GCP

Asignar espacio de intercambio (opcional)

Si trabajas con datasets particularmente grandes que podrían exceder la RAM de tu VM, considera añadir espacio de intercambio para evitar errores de memoria:

# Allocate a 64GB swap file
sudo fallocate -l 64G /swapfile

# Set the correct permissions for the swap file
sudo chmod 600 /swapfile

# Set up the Linux swap area
sudo mkswap /swapfile

# Enable the swap file
sudo swapon /swapfile

# Verify the swap space allocation (should show increased swap memory)
free -h

Entrenar con datasets personalizados

Para entrenar YOLOv5 en tu dataset personalizado dentro de GCP, sigue estos pasos generales:

  1. Prepara tu dataset de acuerdo con el formato de YOLOv5 (imágenes y archivos de etiquetas correspondientes). Consulta nuestra visión general de datasets para obtener orientación.

  2. Sube tu dataset a tu VM de GCP usando gcloud compute scp o la función SSH de la consola web.

  3. Crea un archivo YAML de configuración del dataset (custom_dataset.yaml) que especifique las rutas a tus datos de entrenamiento y validación, el número de clases y los nombres de las clases.

  4. Comienza el proceso de entrenamiento utilizando tu YAML de dataset personalizado y, potencialmente, comenzando desde pesos preentrenados:

    # Example: Train YOLOv5s on a custom dataset for 100 epochs
    python train.py --img 640 --batch 16 --epochs 100 --data custom_dataset.yaml --weights yolov5s.pt

Para obtener instrucciones completas sobre cómo preparar datos y entrenar con datasets personalizados, consulta la documentación de entrenamiento de Ultralytics YOLOv5.

Aprovechar Google Cloud Storage

Para una gestión de datos eficiente, especialmente con datasets grandes o numerosos experimentos, integra tu flujo de trabajo de YOLOv5 con Google Cloud Storage:

# Ensure Google Cloud SDK is installed and initialized
# If not installed: curl https://sdk.cloud.google.com/ | bash
# Then initialize: gcloud init

# Example: Copy your dataset from a GCS bucket to your VM
gsutil cp -r gs://your-data-bucket/my_dataset ./datasets/

# Example: Copy trained model weights from your VM to a GCS bucket
gsutil cp -r ./runs/train/exp/weights gs://your-models-bucket/yolov5_custom_weights/

Este enfoque te permite almacenar datasets grandes y modelos entrenados de forma segura y rentable en la nube, minimizando los requisitos de almacenamiento en tu instancia de VM.

Reflexiones finales

¡Enhorabuena! Ahora estás equipado para aprovechar las capacidades de Ultralytics YOLOv5 combinadas con el poder computacional de Google Cloud Platform. Esta configuración proporciona escalabilidad, eficiencia y versatilidad para tus proyectos de detección de objetos. Ya sea para exploración personal, investigación académica o la construcción de soluciones industriales, has dado un paso significativo en el mundo de la IA y el ML en la nube.

Considera usar la plataforma de Ultralytics para obtener una experiencia simplificada sin código para entrenar y administrar tus modelos.

Recuerda documentar tu progreso, compartir ideas con la vibrante comunidad de Ultralytics y utilizar recursos como las discusiones de GitHub para la colaboración y el soporte. ¡Ahora, sal ahí fuera e innova con YOLOv5 y GCP!

¿Quieres seguir mejorando tus habilidades de aprendizaje automático? Sumérgete en nuestra documentación y explora el blog de Ultralytics para obtener más tutoriales e información. ¡Deja que tu aventura en la IA continúe!

Comentarios