Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Docker

¡Simplifique los flujos de trabajo de IA/ML con Docker! Aprenda a implementar modelos, garantizar la reproducibilidad y escalar de forma eficiente entre entornos.

Docker es una plataforma de código abierto que automatiza el despliegue, escalado y gestión de aplicaciones mediante la contenedores. En el campo de la inteligencia inteligencia artificial (IA), Docker resuelve un desafío crítico conocido como el problema de "funciona en mi máquina". Al empaquetar un modelo de Machine Learning (ML) junto con su código junto con su código, tiempo de ejecución, herramientas del sistema y bibliotecas en una unidad estandarizada llamada contenedor, Docker garantiza que el software se ejecutará estrictamente de la misma manera independientemente de la máquina en la que se ejecute. software se ejecutará estrictamente de la misma manera independientemente del entorno informático. Esta coherencia es vital para los MLOps modernos, ya que facilita transiciones fluidas desde el desarrollo local infraestructura de computación en nube o dispositivos de borde.

Conceptos básicos de Docker

Para entender Docker es necesario familiarizarse con tres componentes fundamentales que definen su flujo de trabajo.

  • Dockerfile: Se trata de un documento de texto que contiene todos los comandos que un usuario podría llamar en la línea de comandos para ensamblar una imagen. Para un proyecto de IA, un Dockerfile actúa como una receta, especificando la base base, instalando lenguajes como Pythony la configuración de los necesarios, como PyTorch o TensorFlow.
  • Imagen Docker: Una imagen es una plantilla de sólo lectura con instrucciones para crear un contenedor Docker. Captura el estado de la aplicación en un momento determinado. Los desarrolladores suelen utilizar imágenes base optimizadas de registros como NVIDIA NGC para aprovechar los controladores preinstalados para GPU preinstalados.
  • Contenedor Docker: Un contenedor es una instancia ejecutable de una imagen. Aísla la aplicación del del sistema anfitrión mientras comparte el núcleo del sistema operativo del anfitrión. Este aislamiento garantiza que los conflictos de software de software, un requisito clave para el despliegue estable.

Docker en aplicaciones de IA del mundo real

Docker es indispensable para desplegar robustas soluciones de visión computerizada (CV).

  1. Despliegue de IA en los bordes: Cuando se despliegan modelos en dispositivos con recursos limitados como el NVIDIA Jetson, los contenedores Docker proporcionan un entorno ligero que incluye dependencias específicas como OpenCV y bibliotecas específicas de hardware. Por ejemplo, un Ultralytics YOLO11 empaquetado en un contenedor Docker puede enviarse fácilmente a miles de cámaras remotas para la detección de objetos sin preocuparse la configuración individual de los dispositivos.
  2. Investigación y formación reproducibles: En la investigación académica e industrial, reproducir los resultados es es fundamental. Al utilizar Docker, los investigadores pueden congelar la versión exacta de cada biblioteca utilizada durante el durante el entrenamiento del modelo. Esto elimina las discrepancias causadas por actualizaciones de software y permite que otros verifiquen los resultados o se basen en el trabajo, fomentando una mejor colaboración en la ciencia de datos. ciencia de datos.

Integración de Docker con YOLO

Ejecutar la inferencia dentro de un contenedor Docker ayuda a garantizar que su entorno permanezca limpio y que sus dependencias no choquen con otros paquetes a nivel de sistema. con otros paquetes a nivel de sistema. A continuación se muestra un sencillo script Python que normalmente se ejecutaría dentro de un contenedor Docker para ejecutar tareas de segmentación o segmentación o detección de imágenes.

from ultralytics import YOLO

# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")

# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")

# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker frente a máquinas virtuales

Aunque ambas tecnologías aíslan las aplicaciones, funcionan de forma diferente.

  • Máquinas virtuales (VM): Una VM emula un sistema informático completo, incluido un sistema operativo invitado completo. huésped. Esto hace que las máquinas virtuales sean más pesadas y lentas de arrancar. Red Hat ofrece una comparación detallada que ilustra las diferencias arquitectónicas.
  • Contenedores Docker: Los contenedores virtualizan el sistema operativo en lugar del hardware. Comparten el núcleo del host, lo que los hace mucho más ligeros y eficientes. Esta eficiencia es crucial a la hora de desplegar modelos de alto rendimiento como el próximo YOLO26, cuyo objetivo es maximizar la velocidad y la precisión con una sobrecarga mínima.

Relación con Kubernetes

Docker y Kubernetes son herramientas distintas pero complementarias. complementarias. Docker se utiliza para crear y ejecutar contenedores individuales. Sin embargo, cuando se gestionan cientos de contenedores de servidores para el servicio de modelos herramienta de orquestación. Kubernetes coordina la programación y ejecución de los contenedores Docker, garantizando una alta disponibilidad y escalabilidad para el servicio de modelos de nivel empresarial. disponibilidad y escalabilidad para agentes de de nivel empresarial. Puede obtener más información sobre esta sinergia en la documentación de documentación de Kubernetes.

Los futuros desarrollos del ecosistema Ultralytics , como la próxima Plataforma Ultralytics , aprovecharán estos principios de contenedorización para agilizar los flujos de trabajo de obtención, formación y despliegue de datos. para agilizar los flujos de trabajo de obtención, formación y despliegue de datos, abstrayendo aún más las complejidades de la gestión de infraestructuras. las complejidades de la gestión de infraestructuras.

Únase a la comunidad Ultralytics

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

Únete ahora