Al construir una imagen Docker con multi stage para alojar el modelo CLIP de OpenAI en GKE me encontré con el problema clásico de la imagen demasiado grande. Inicialmente el requirement instalaba torch y torchvision con soporte por defecto para CUDA y GPUs, lo que infló la imagen hasta alrededor de 7GB cuando en realidad el modelo iba a ejecutarse en CPU.
La solución más rápida y efectiva fue forzar la instalación de las ruedas CPU only de PyTorch. En el requirements bastó indicar explicitamente las versiones CPU y el índice de ruedas CPU como por ejemplo torch==2.2.0+cpu torchvision==0.17.0+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html ftfy regex tqdm fastapi uvicorn pillow numpy<2 python-multipart. Con esto la imagen descendió drásticamente de ~7GB a ~1GB.
Además de usar las ruedas CPU, estas buenas prácticas ayudan a obtener una imagen mucho más ligera y mantenible: usar una imagen base slim como python:3.11-slim, emplear multi stage builds para separar fases de compilación y runtime, instalar paquetes con pip --no-cache-dir, fijar versiones, y limpiar caches y archivos temporales. También conviene eliminar archivos innecesarios de site-packages como directorios tests y examples que fácilmente ahorran 50MB a 60MB adicionales.
Un flujo recomendado sin mostrar un Dockerfile completo es: 1) usar una etapa builder donde se instalen las dependencias necesarias y se compile solo lo imprescindible, 2) copiar al stage final únicamente la carpeta de la aplicación y los paquetes instalados necesarios, 3) limpiar caches pip y borrar __pycache__, tests y ejemplos, y 4) exponer el servicio con uvicorn en modo asíncrono para optimizar recursos. El resultado típico para un servicio que sirve CLIP en CPU puede ser alrededor de 1GB o menos si se aplica limpieza agresiva.
Si tu proyecto requiere despliegue en la nube considera además optimizar la imagen según el proveedor y usar soluciones gestionadas para escalabilidad y seguridad. En Q2BSTUDIO ofrecemos servicios de despliegue y consultoría en nube para optimizar costes y rendimiento, incluidos servicios cloud AWS y Azure y arquitecturas adecuadas para modelos de inteligencia artificial. Con experiencia en desarrollo de software a medida y aplicaciones a medida podemos ayudarte a preparar una imagen Docker ligera y segura y a integrar la solución con pipelines CI/CD.
Q2BSTUDIO es una empresa de desarrollo de software que crea aplicaciones a medida, soluciones de inteligencia artificial y servicios de ciberseguridad. Somos especialistas en ia para empresas, agentes IA, servicios inteligencia de negocio y Power BI, además de ofrecer pentesting y controles de seguridad avanzados. Si necesitas asesoría para desplegar modelos o construir software a medida visita nuestra página de IA para empresas y soluciones de inteligencia artificial y consulta también nuestros servicios cloud AWS y Azure para despliegues gestionados y seguros.
Palabras clave relevantes para este artículo y para tu posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.
Si quieres que revisemos tu Dockerfile o armemos una imagen optimizada para GKE y modelos CPU, en Q2BSTUDIO podemos auditar tu build, proponer un Dockerfile multi stage y aplicar las limpiezas necesarias para minimizar la imagen sin sacrificar estabilidad ni seguridad.