Descubra cómo la contenedorización agiliza la implementación de la IA. Descubra cómo utilizar Docker y Kubernetes para ejecutar Ultralytics de forma coherente en cualquier entorno.
La contenedorización es una estrategia de implementación de software que agrupa el código fuente de una aplicación junto con sus bibliotecas, dependencias y archivos de configuración en una única unidad ejecutable ligera conocida como contenedor. Este enfoque abstracta el software de la infraestructura subyacente, lo que garantiza que las aplicaciones se ejecuten de forma coherente en diversos entornos informáticos, desde el ordenador portátil local de un desarrollador hasta enormes clústeres de computación en la nube. En el contexto del aprendizaje automático (ML), la contenedorización resuelve el famoso problema de «funciona en mi máquina» al encapsular el complejo entorno necesario para entrenar y ejecutar redes neuronales.
Para los científicos de datos y los ingenieros de ML, la gestión de entornos supone un reto importante. Los diferentes proyectos pueden requerir versiones incompatibles de Python, CUDA o bibliotecas como PyTorch. La contenedorización elimina estos conflictos mediante la creación de entornos aislados e inmutables.
Es importante distinguir los contenedores de las máquinas virtuales (VM). Una VM emula toda una pila de hardware, incluido un sistema operativo invitado completo, lo que se traduce en una sobrecarga significativa de recursos y tiempos de arranque más lentos. Por el contrario, la contenedorización virtualiza el sistema operativo, lo que permite que múltiples aplicaciones se ejecuten como procesos aislados en un único kernel compartido. Esta reducción del espacio ocupado hace que los contenedores sean la opción preferida para escenarios de IA en el borde en los que los recursos de hardware son limitados, como en dispositivos IoT o drones. Para una comparación técnica más detallada, consulte la guía de Red Hat sobre contenedores frente a máquinas virtuales.
Varias tecnologías clave constituyen la columna vertebral del ecosistema moderno de contenedores:
La contenedorización es omnipresente en los flujos de trabajo modernos de IA, lo que permite una rápida iteración y una implementación fiable.
Al crear un contenedor para una aplicación de IA, normalmente se incluye un script para gestionar
servicio de modelos. El siguiente Python o Python código Python
muestra un flujo de trabajo de inferencia sencillo utilizando el ultralytics paquete. Este script se ejecutaría dentro del
contenedor, utilizando las dependencias preinstaladas del entorno.
from ultralytics import YOLO
# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")
# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")
Al encapsular esta lógica dentro de un contenedor, los desarrolladores se aseguran de que la Python y las versiones de las bibliotecas permanezcan constantes, lo que evita fallos inesperados en la producción. Para simplificar la gestión, el entrenamiento y la implementación de modelos, muchos equipos utilizan la Ultralytics , que admite de forma nativa flujos de trabajo basados en contenedores. Para obtener más información sobre estrategias de implementación, consulte la guía de AWS sobre casos de uso de contenedores.