Ultralytics YOLOv5 🚀 en la instancia de Deep Learning de AWS: Tu guía completa
Configurar un entorno de aprendizaje profundo de alto rendimiento puede parecer desalentador, especialmente para los recién llegados. ¡Pero no temas! 🛠️ Esta guía proporciona un tutorial 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 comenzar de forma rápida y rentable. La escalabilidad de la plataforma AWS la hace ideal tanto para la experimentación como para la implementación en producción.
Otras opciones de inicio rápido para YOLOv5 incluyen nuestro Cuaderno de Google Colab , Entornos de Kaggle
, VM de aprendizaje profundo de GCP, y nuestra imagen Docker preconstruida disponible en Docker Hub
.
Paso 1: Inicio de Sesión en la Consola de AWS
Comience creando una cuenta o iniciando sesión en la Consola de administración de AWS. Una vez que haya iniciado sesión, navegue al panel de servicio EC2, donde puede administrar sus servidores virtuales (instancias).
Paso 2: Inicie su instancia
Desde el panel de EC2, haga clic en el botón Launch Instance. Esto inicia el proceso de creación de un nuevo servidor virtual adaptado a sus necesidades.
Selección de la imagen de máquina de Amazon (AMI) correcta
Elegir la AMI correcta es crucial. Esto determina el sistema operativo y el software preinstalado para su instancia. En la barra de búsqueda, escriba 'Deep Learning' y seleccione la última AMI de Deep Learning basada en Ubuntu (a menos que tenga requisitos específicos para un sistema operativo diferente). Las AMI de Deep Learning de Amazon vienen preconfiguradas con frameworks de deep learning populares (como PyTorch, utilizado por YOLOv5) y los drivers 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 aprendizaje profundo, se recomienda encarecidamente seleccionar un tipo de instancia acelerada por GPU. Las GPU pueden reducir drásticamente el tiempo necesario para el entrenamiento del modelo en comparación con las CPU. Al elegir el tamaño de una instancia, asegúrese de que su capacidad de memoria (RAM) sea suficiente para su modelo y conjunto de datos.
Nota: El tamaño de su modelo y conjunto de datos son factores críticos. Si su tarea de ML requiere más memoria de la que proporciona la instancia seleccionada, deberá elegir un tipo de instancia más grande para evitar problemas de rendimiento o errores.
Explore los tipos de instancias de GPU disponibles en la página de tipos de instancias de EC2, particularmente en la categoría de Computación Acelerada.
Para obtener información detallada sobre la supervisión y optimización del uso de la GPU, consulte la guía de AWS sobre Supervisión y optimización de la GPU. Compare los costos utilizando los Precios bajo demanda y explore los posibles ahorros con los Precios de instancias de spot.
Configuración de su instancia
Considere utilizar instancias Amazon EC2 Spot para un enfoque más rentable. Las instancias Spot le permiten pujar por la capacidad EC2 no utilizada, a menudo con un descuento significativo en comparación con los precios bajo demanda. Para las tareas que requieren persistencia (guardar datos incluso si la instancia Spot se interrumpe), elija una solicitud persistente. Esto asegura que su volumen de almacenamiento persista.
Continúe con los pasos 4 a 7 del asistente de inicio de instancia para configurar el almacenamiento, agregar etiquetas, configurar grupos de seguridad (asegúrese de que el puerto SSH 22 esté abierto desde su IP) y revise su configuración antes de hacer clic en Launch. También deberá crear o seleccionar un par de claves existente para el acceso SSH seguro.
Paso 3: Conéctese a su instancia
Una vez que el estado de su instancia se muestre como 'running', selecciónela desde el panel de EC2. Haga clic en el Conectar botón 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 creó o seleccionó durante el lanzamiento.
Paso 4: Ejecutando Ultralytics YOLOv5
Ahora que está conectado a través de SSH, puede configurar y ejecutar YOLOv5. Primero, clone el repositorio oficial de YOLOv5 de GitHub y navegue al directorio. Luego, instale las dependencias necesarias usando pip
. Se recomienda utilizar un Python Entorno 3.8 o posterior. Los modelos y conjuntos de datos necesarios se descargarán automáticamente del último YOLOv5 release cuando ejecutas 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.txt
Con el entorno listo, puede comenzar 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
Consulte 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 estás trabajando con conjuntos de datos muy grandes o encuentras limitaciones de memoria durante el entrenamiento, aumentar la memoria de intercambio en tu instancia a veces puede ayudar. El espacio de intercambio permite que el sistema utilice 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! 🎉 Ha configurado correctamente una instancia de AWS Deep Learning, ha instalado Ultralytics YOLOv5 y está listo para realizar tareas de detección de objetos. Ya sea que esté experimentando con modelos pre-entrenados o entrenando con sus propios datos, esta potente configuración proporciona una base escalable para sus proyectos de visión artificial. Si encuentra algún problema, consulte la extensa documentación de AWS y los útiles recursos de la comunidad Ultralytics, como las preguntas frecuentes. ¡Feliz detección!