Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLOv5 🚀 en una instancia de AWS Deep Learning: tu guía completa#

Configurar un entorno de deep learning de alto rendimiento puede parecer abrumador, especialmente para los principiantes. ¡Pero no temas! 🛠️ Esta guía te ofrece un recorrido paso a paso para poner en marcha Ultralytics YOLOv5 en una instancia de AWS Deep Learning. Al aprovechar el poder de Amazon Web Services (AWS), incluso aquellos que se inician en el machine learning (ML) pueden empezar de forma rápida y rentable. La escalabilidad de la plataforma AWS la hace ideal tanto para la experimentación como para el deployment en producción.

Otras opciones de inicio rápido para YOLOv5 incluyen nuestro Google Colab Notebook Open In Colab, entornos de Kaggle Open In Kaggle, GCP Deep Learning VM y nuestra imagen de Docker preconfigurada disponible en Docker Hub Docker Pulls.

Link to this sectionPaso 1: Inicia sesión en la consola de AWS#

Comienza creando una cuenta o iniciando sesión en la AWS Management Console. Una vez que hayas accedido, navega al panel de servicio EC2, donde podrás gestionar tus servidores virtuales (instancias).

Página de inicio de sesión de la consola de administración de AWS

Link to this sectionPaso 2: Lanza tu instancia#

Desde el panel de EC2, haz clic en el botón Launch Instance. Esto iniciará el proceso de creación de un nuevo servidor virtual adaptado a tus necesidades.

Botón Lanzar Instancia

Link to this sectionSeleccionar la Amazon Machine Image (AMI) correcta#

Elegir la AMI correcta es crucial. Esto determina el sistema operativo y el software preinstalado para tu instancia. En la barra de búsqueda, escribe 'Deep Learning' y selecciona la última Deep Learning AMI basada en Ubuntu (a menos que tengas requisitos específicos para otro sistema operativo). Las AMIs de Deep Learning de Amazon vienen preconfiguradas con frameworks de deep learning populares (como PyTorch, utilizado por YOLOv5) y los GPU drivers necesarios, lo que simplifica considerablemente el proceso de configuración.

Selección de AMI de Deep Learning en AWS EC2

Link to this sectionElegir un tipo de instancia#

Para tareas exigentes como el entrenamiento de modelos de deep learning, se recomienda encarecidamente seleccionar un tipo de instancia con aceleración por GPU. Las GPUs pueden reducir drásticamente el tiempo necesario para el entrenamiento de modelos en comparación con las CPUs. Al elegir el tamaño de la instancia, asegúrate de que su capacidad de memoria (RAM) sea suficiente para tu modelo y dataset.

Nota: El tamaño de tu modelo y dataset son factores críticos. Si tu tarea de ML requiere más memoria de la que proporciona la instancia seleccionada, deberás elegir un tipo de instancia mayor para evitar problemas de rendimiento o errores.

Explora los tipos de instancia con GPU disponibles en la página de tipos de instancia de EC2, especialmente bajo la categoría Accelerated Computing.

Selección de tipo de instancia GPU en AWS EC2

Para obtener información detallada sobre cómo monitorizar y optimizar el uso de la GPU, consulta la guía de AWS sobre GPU Monitoring and Optimization. Compara los costes usando On-Demand Pricing y explora posibles ahorros con Spot Instance Pricing.

Link to this sectionConfigurar tu instancia#

Considera usar instancias de tipo Spot de Amazon EC2 para un enfoque más rentable. Las instancias Spot te permiten pujar por la capacidad no utilizada de EC2, a menudo con un descuento significativo en comparación con los precios On-Demand. Para tareas que requieran persistencia (guardar datos incluso si la instancia Spot se interrumpe), elige una solicitud persistente. Esto garantiza que tu volumen de almacenamiento permanezca intacto.

Configuración de solicitud Spot

Continúa a través de los pasos 4 a 7 del asistente de lanzamiento de instancias para configurar el almacenamiento, añadir etiquetas, configurar los grupos de seguridad (asegúrate de que el puerto SSH 22 esté abierto para tu IP) y revisar tus ajustes antes de hacer clic en Launch. También deberás crear o seleccionar un par de claves existente para un acceso SSH seguro.

Link to this sectionPaso 3: Conéctate a tu instancia#

Una vez que el estado de tu instancia aparezca como 'running', selecciónala desde el panel de EC2. Haz clic en el botón Connect para ver las opciones de conexión. Usa el ejemplo de comando SSH proporcionado en tu terminal local (como Terminal en macOS/Linux o PuTTY/WSL en Windows) para establecer una conexión segura. Necesitarás el archivo de clave privada (.pem) que creaste o seleccionaste durante el lanzamiento.

Opciones de conexión SSH de la instancia de AWS EC2

Link to this sectionPaso 4: Ejecutar Ultralytics YOLOv5#

Ahora que estás conectado mediante SSH, puedes configurar y ejecutar YOLOv5. Primero, clona el repositorio oficial de YOLOv5 desde GitHub y entra en el directorio. Luego, instala las dependencias necesarias usando pip. Se recomienda utilizar un entorno de Python 3.8 o posterior. Los modelos y datasets necesarios se descargarán automáticamente desde el último release de YOLOv5 cuando ejecutes comandos como los de entrenamiento o detección.

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

# Install required packages
pip install -r requirements.txt

Con el entorno listo, puedes empezar a usar YOLOv5 para diversas tareas:

# 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

Consulta la documentación de Ultralytics para obtener guías detalladas sobre Training, Validation, Prediction (Inference) y Exporting.

Link to this sectionExtras opcionales: Aumentar la memoria swap#

Si trabajas con datasets muy grandes o encuentras limitaciones de memoria durante el entrenamiento, aumentar la memoria swap de tu instancia puede ser de ayuda. El espacio de swap permite al sistema utilizar espacio en disco como RAM virtual.

# 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

¡Enhorabuena! 🎉 Has configurado con éxito una instancia de AWS Deep Learning, instalado Ultralytics YOLOv5 y estás listo para realizar tareas de object detection. Tanto si experimentas con modelos preentrenados como si estás entrenando con tus propios datos, esta potente configuración proporciona una base escalable para tus proyectos de computer vision. Si encuentras algún problema, consulta la extensa documentación de AWS y los útiles recursos de la comunidad de Ultralytics como el FAQ. ¡Feliz detección!

Colaboradores

Comentarios