Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Contenedorización

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.

Por qué la contenedorización es importante para la IA

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.

  • Portabilidad: una aplicación de visión artificial en contenedor se puede mover sin problemas entre el desarrollo, las pruebas y la producción. Esto garantiza que un modelo entrenado en una estación de trabajo funcione exactamente de la misma manera cuando se implementa en un servidor.
  • Eficiencia: a diferencia de los métodos tradicionales, los contenedores comparten el núcleo del sistema operativo (SO) del sistema host, lo que los hace extremadamente ligeros. Esta alta densidad permite una mejor utilización de los recursos, lo cual es fundamental para reducir la latencia de inferencia en aplicaciones en tiempo real.
  • Escalabilidad: Las herramientas modernas de orquestación pueden activar o desactivar rápidamente instancias de contenedores en función de la demanda de tráfico, lo que garantiza la escalabilidad de los servicios de alta demanda.

Contenedores frente a máquinas virtuales

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.

Tecnologías básicas

Varias tecnologías clave constituyen la columna vertebral del ecosistema moderno de contenedores:

  • Docker: La plataforma más utilizada para crear, ejecutar y gestionar contenedores. Ultralytics una guía de inicio rápido de Docker para ayudar a los usuarios a implementar fácilmente modelos de detección de objetos sin necesidad de configurar manualmente el entorno.
  • Kubernetes: un sistema de código abierto para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores. Es esencial para gestionar grandes clústeres de contenedores en los procesos de MLOps empresariales .
  • Registros de contenedores: Servicios como el catálogoNVIDIA almacenan y distribuyen imágenes de contenedores que a menudo vienen preoptimizadas para tareas específicas, como el entrenamiento de modelos GPU .
  • Open Container Initiative (OCI): Un estándar de la industria que garantiza que los formatos de contenedores y los tiempos de ejecución sean compatibles entre diferentes plataformas, promovido por la Open Container Initiative.

Aplicaciones en el mundo real

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.

  1. Vigilancia de ciudades inteligentes: los municipios implementan sistemas de gestión del tráfico utilizando cámaras conectadas a la red. Mediante el uso de contenedores, los ingenieros pueden enviar actualizaciones de software a miles de dispositivos periféricos simultáneamente. Si un nuevo modelo de detección de objetos mejora la precisión, el contenedor se actualiza de forma inalámbrica, lo que garantiza un rendimiento constante en toda la infraestructura de la ciudad.
  2. Investigación reproducible: En la investigación académica e industrial, la reproducción de resultados es fundamental. Al publicar una imagen Docker que contiene los scripts exactos de procesamiento de datos de entrenamiento y la arquitectura del modelo , los investigadores se aseguran de que sus revisores puedan replicar el experimento con precisión. Esto es vital para validar los avances en el aprendizaje profundo (DL).

Ejemplo: Inferencia en un contenedor

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.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora