Ultralytics YOLOv5 🚀 en una instancia de AWS Deep Learning: tu guía completa#
Configurar un entorno de aprendizaje profundo de alto rendimiento puede parecer abrumador, especialmente para los recién llegados. ¡Pero no temas! 🛠️ Esta guía 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 son nuevos en el aprendizaje automático (ML) pueden empezar de forma rápida y económica. La escalabilidad de la plataforma de AWS la hace ideal tanto para la experimentación como para el despliegue en producción.
Otras opciones de inicio rápido para YOLOv5 incluyen nuestro Cuaderno de Google Colab , entornos de Kaggle
, GCP Deep Learning VM y nuestra imagen de Docker preconstruida disponible en Docker Hub
.
Paso 1: Inicia sesión en la consola de AWS#
Empieza creando una cuenta o iniciando sesión en la Consola de administración de AWS. Una vez que hayas iniciado sesión, navega al panel del servicio EC2, donde puedes gestionar tus servidores virtuales (instancias).

Paso 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.

Seleccionar 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 AMI de Deep Learning basada en Ubuntu más reciente (a menos que tengas requisitos específicos para un sistema operativo diferente). Las AMI de Deep Learning de Amazon vienen preconfiguradas con populares marcos de aprendizaje profundo (como PyTorch, utilizado por YOLOv5) y los controladores de GPU necesarios, lo que agiliza significativamente el proceso de configuración.

Elegir 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 instancias de GPU disponibles en la página de Tipos de Instancias EC2, particularmente bajo la categoría de Computación Acelerada.

Para obtener información detallada sobre cómo supervisar y optimizar el uso de la GPU, consulta la guía de AWS sobre Supervisión y Optimización de GPU. Compara los costes utilizando los Precios Bajo Demanda y explora los posibles ahorros con los Precios de Instancias Spot.
Configurar 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.

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.
Paso 3: Conéctate a tu instancia#
Una vez que el estado de tu instancia muestre 'en ejecución', selecciónala desde el panel de EC2. Haz clic en el botón Conectar 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.

Paso 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. A continuación, instala las dependencias necesarias usando pip. Se recomienda utilizar un entorno de Python 3.8 o posterior. Los modelos y conjuntos de datos necesarios se descargarán automáticamente desde la última versión de YOLOv5 cuando ejecutes comandos como entrenamiento o detección.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtCon 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 640Consulta la documentación de Ultralytics para obtener guías detalladas sobre Entrenamiento, Validación, Predicción (Inferencia) y Exportación.
Extras 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¡Felicitaciones! 🎉 Has configurado con éxito una instancia de AWS Deep Learning, has instalado Ultralytics YOLOv5 y estás listo para realizar tareas de detección de objetos. Ya sea que estés experimentando con modelos preentrenados o entrenando con tus propios datos, esta potente configuración proporciona una base escalable para tus proyectos de visión por computador. Si encuentras algún problema, consulta la extensa documentación de AWS y los útiles recursos de la comunidad de Ultralytics como las FAQ. ¡Feliz detección!