Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5 🚀 en una instancia de aprendizaje profundo de AWS: guía completa#

Configurar un entorno de aprendizaje profundo de alto rendimiento puede parecer complicado, sobre todo si estás empezando. ¡Pero no te preocupes! 🛠️ Esta guía explica paso a paso cómo poner en marcha Ultralytics YOLOv5 en una instancia de aprendizaje profundo de AWS. Gracias a la potencia de Amazon Web Services (AWS), incluso quienes empiezan con el aprendizaje automático (ML) pueden ponerse en marcha rápidamente y con un coste reducido. La escalabilidad de la plataforma de AWS la hace ideal tanto para experimentar como para desplegar en producción.

Otras opciones para empezar rápidamente con YOLOv5 incluyen nuestro cuaderno de Google Colab Open In Colab, los entornos de Kaggle Open In Kaggle, la VM de aprendizaje profundo de GCP y nuestra imagen Docker preconfigurada disponible en Docker Hub Docker Pulls.

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 dentro, ve al panel del 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

Paso 2: Inicia tu instancia#

En el panel de EC2, haz clic en el botón Launch Instance. Así iniciarás el proceso para crear un nuevo servidor virtual adaptado a tus necesidades.

Botón Launch Instance

Selecciona la imagen de máquina de Amazon (AMI) adecuada#

Elegir la AMI correcta es fundamental, ya que determina el sistema operativo y el software preinstalado de la instancia. Escribe «aprendizaje profundo» en la barra de búsqueda y selecciona la AMI de aprendizaje profundo más reciente basada en Ubuntu (salvo que necesites otro sistema operativo). Las AMI de aprendizaje profundo de Amazon vienen preconfiguradas con los marcos de aprendizaje profundo más populares (como PyTorch, que utiliza YOLOv5) y los controladores de GPU necesarios, lo que agiliza considerablemente la configuración.

Selección de una AMI de aprendizaje profundo en AWS EC2

Elige un tipo de instancia#

Para tareas exigentes, como entrenar modelos de aprendizaje profundo, se recomienda elegir un tipo de instancia acelerada por GPU. Las GPU pueden reducir drásticamente el tiempo necesario para entrenar modelos en comparación con las CPU. Al elegir el tamaño de la instancia, asegúrate de que la memoria (RAM) sea suficiente para tu modelo y conjunto de datos.

Nota: El tamaño del modelo y del conjunto de datos son factores fundamentales. Si tu tarea de aprendizaje automático necesita más memoria de la que ofrece la instancia seleccionada, tendrás que elegir una instancia más grande para evitar problemas de rendimiento o errores.

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

Selección de un tipo de instancia con GPU en AWS EC2

Para obtener información detallada sobre la supervisión y optimización del uso de GPU, consulta la guía de AWS sobre supervisión y optimización de GPU. Compara los costes con los precios bajo demanda y descubre posibles ahorros con los precios de las instancias Spot.

Configura tu instancia#

Plantéate usar instancias Spot de Amazon EC2 para reducir costes. Las instancias Spot te permiten utilizar capacidad de EC2 no utilizada, a menudo con un descuento considerable respecto a los precios bajo demanda. Para que el entrenamiento pueda reanudarse tras una interrupción, elige una solicitud persistente y configura la acción ante interrupciones como stop en lugar de finalizar la instancia. Así se conservarán el volumen EBS y los resultados del entrenamiento, y la instancia se reiniciará cuando vuelva a haber capacidad.

Configuración de una solicitud Spot

Continúa con el resto de los ajustes de inicio 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 la configuración antes de hacer clic en Launch. También tendrás que crear o seleccionar un par de claves para acceder de forma segura mediante SSH.

Paso 3: Conéctate a tu instancia#

Cuando el estado de la instancia aparezca como «running», selecciónala en 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 el terminal local (por ejemplo, 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 al iniciar la instancia.

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

Paso 4: Ejecuta Ultralytics YOLOv5#

Ahora que te has conectado por SSH, puedes configurar y ejecutar YOLOv5. Primero, clona el repositorio oficial de YOLOv5 desde GitHub y accede al directorio. Después, instala las dependencias necesarias con pip. Se recomienda utilizar un entorno de Python 3.8 o posterior. Los modelos y conjuntos de datos necesarios se descargarán automáticamente de la última versión de YOLOv5 cuando ejecutes comandos 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, ya 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Consulta los tutoriales Entrenar con datos personalizados y Exportar modelos para obtener instrucciones detalladas.

Opcional: Aumenta la memoria de intercambio#

Si trabajas con conjuntos de datos muy grandes o te encuentras con limitaciones de memoria durante el entrenamiento, aumentar la memoria de intercambio de la instancia puede ser útil. El espacio de intercambio permite que el sistema utilice espacio en disco como memoria 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 correctamente una instancia de aprendizaje profundo de AWS e instalado Ultralytics YOLOv5; ya puedes realizar tareas de detección de objetos. Tanto si experimentas con modelos preentrenados como si entrenas con tus propios datos, esta potente configuración ofrece una base escalable para tus proyectos de visión artificial. Si tienes algún problema, consulta la extensa documentación de AWS y los útiles recursos de la comunidad de Ultralytics, como las preguntas frecuentes. ¡Que tengas buenas detecciones!

Preguntas frecuentes#

  • Elige la AMI de aprendizaje profundo de AWS más reciente basada en Ubuntu. Incluye controladores NVIDIA, CUDA y PyTorch preinstalados, así que solo tendrás que clonar el repositorio e instalar requirements.txt.

  • Sirve cualquier instancia con GPU de la familia Accelerated Computing, por ejemplo, las instancias g4dn, g5 o p3. Elige suficiente memoria de GPU para el tamaño de lote y de imagen, y utiliza --batch-size -1 para que YOLOv5 seleccione el lote más grande que quepa.

  • Usa scp con tu clave .pem para transferencias pequeñas, o almacena los datos temporalmente en Amazon S3 y cópialos con aws s3 sync. Los resultados del entrenamiento se guardan en runs/train/, y los pesos están en runs/train/exp/weights/.

  • Usa una solicitud Spot persistente y configura la acción ante interrupciones como stop para conservar el volumen EBS. Cuando se reinicie la instancia, reanuda la ejecución desde el último punto de control con python train.py --resume. Copia periódicamente last.pt y best.pt a S3 si no puedes permitirte perder el progreso.

Comentarios