Ultralytics YOLOv5 🚀 en una instancia de Deep Learning de AWS: tu guía completa
Configurar un entorno de deep learning de alto rendimiento puede parecer desalentador, 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 Deep Learning de AWS. Al aprovechar la potencia de Amazon Web Services (AWS), incluso aquellos que son nuevos 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 despliegue en producción.
Otras opciones de inicio rápido para YOLOv5 incluyen nuestro Google Colab Notebook , entornos de Kaggle
, GCP Deep Learning VM y nuestra imagen de Docker preconfigurada disponible en Docker Hub
.
Paso 1: Iniciar 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 de servicio EC2, donde puedes gestionar tus servidores virtuales (instancias).

Paso 2: Iniciar tu instancia
Desde el panel de EC2, haz clic en el botón Launch Instance (Iniciar instancia). Esto inicia 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 más reciente basada en Ubuntu (a menos que tengas requisitos específicos para otro sistema operativo). Las AMI de Deep Learning de Amazon vienen preconfiguradas con frameworks de deep learning populares (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 elegir un tipo de instancia acelerada por GPU. Las GPU pueden reducir drásticamente el tiempo necesario para el entrenamiento de modelos en comparación con las CPU. Al elegir el tamaño de la instancia, asegúrate de que su capacidad de memoria (RAM) sea suficiente para tu modelo y conjunto de datos.
Nota: El tamaño de tu modelo y conjunto de datos 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 GPU disponibles en la página de tipos de instancias EC2, especialmente bajo la categoría Accelerated Computing.

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 costes utilizando los precios bajo demanda y explora posibles ahorros con los precios de instancias de spot.
Configurar tu instancia
Considera usar instancias de spot de Amazon EC2 para un enfoque más rentable. Las instancias de spot te permiten pujar por la capacidad no utilizada de EC2, a menudo con un descuento significativo en comparación con los precios bajo demanda. Para tareas que requieren persistencia (guardar datos incluso si la instancia de spot se interrumpe), elige una solicitud persistente. Esto garantiza que tu volumen de almacenamiento permanezca activo.

Sigue los pasos 4-7 del asistente de inicio de instancia para configurar el almacenamiento, añadir etiquetas, configurar grupos de seguridad (asegúrate de que el puerto SSH 22 esté abierto desde tu IP) y revisar tu configuración 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: Conectar a tu instancia
Una vez que el estado de tu instancia aparezca como 'running' (en ejecución), selecciónala desde el panel de EC2. Haz clic en el botón Connect (Conectar) para ver las opciones de conexión. Utiliza 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 inicio.

Paso 4: Ejecutar Ultralytics YOLOv5
Ahora que estás conectado a través de 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 Python 3.8 o posterior. Los modelos y conjuntos de datos necesarios se descargarán automáticamente desde la versión más reciente de YOLOv5 release 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 varias 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 conjuntos de datos muy grandes o encuentras limitaciones de memoria durante el entrenamiento, aumentar la memoria swap en tu instancia a veces puede ayudar. El espacio 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 correctamente una instancia de Deep Learning de AWS, has instalado Ultralytics YOLOv5 y estás listo para realizar tareas de detección de objetos. Tanto si experimentas con modelos preentrenados como si entrenas 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 las FAQ. ¡Feliz detección!