Todo lo que ofrecemos en IA privada lo operamos primero para nosotros. Esta plataforma es la base sobre la que corren nuestro ecommerce de referencia, la plataforma contable, los asistentes de las propuestas comerciales y la organización de agentes que desarrolla nuestro software.
El reto
Queríamos que los modelos de lenguaje, la voz y la imagen se ejecutaran en hardware propio, sin depender de los precios, los límites de uso ni las condiciones de un proveedor externo. El reto no era solo comprar GPU, sino operarlas como un servicio de producción: el modelo tenía que estar disponible para muchas aplicaciones a la vez, y cualquier trabajo mal programado —una descarga grande, un proceso de prueba— podía llevarse por delante el servicio.
El hardware elegido añade sus propias reglas. Los NVIDIA DGX Spark usan memoria unificada, así que la memoria que ve el planificador de Kubernetes no cuenta toda la historia, y bajo carga sostenida el chip necesita un límite térmico para no detenerse.
La solución
Montamos un clúster Kubernetes de siete nodos con el plano de control en alta disponibilidad. Los dos DGX Spark sirven un único modelo de lenguaje residente con paralelismo tensorial: la cabeza en un equipo y el trabajador en el otro. La generación de imagen corre en una GPU independiente, en otro nodo, de modo que imagen y lenguaje conviven sin competir.
Delante de los modelos hay un router único. Cada aplicación recibe su propia clave, que solo le permite usar los modelos que tiene asignados; si una necesita respaldo, se define en la configuración y queda documentado. Las trazas de cada llamada se guardan en una instancia propia de Langfuse, y la voz —transcripción con Whisper y síntesis, incluida voz clonada— se ofrece como servicio interno.
Un panel de control publica en todo momento el perfil de cómputo vigente, y un árbitro es el único que puede cambiar qué ocupa cada GPU. Aprendimos por las malas por qué hace falta: un trabajo de descarga llenó la memoria de un nodo y detuvo la inferencia. Desde entonces, ninguna carga entra en los Spark sin leer antes el estado del árbitro, y los límites térmicos están activos y monitorizados.
Resultado
La plataforma está en producción y sirve a todos nuestros sistemas. Cada cambio entra por git y lo aplica ArgoCD; el acceso a los paneles pasa por un inicio de sesión único con Keycloak. Es la misma arquitectura que proponemos a los clientes que necesitan que sus datos no salgan de casa.