Inteligencia Artificial y Empresa: la tecnología está, falta la estructura

Tras algunos meses trabajando en un proyecto de Inteligencia Artificial que pretende acabar en producción y ser utilizado en tiempo real en el camino crítico del negocio, esto es lo que he podido ver y aprender.

Madurez de la tecnología tras la Inteligencia Artificial

Ponerse a programar hoy en día es muy sencillo. No hace falta conocer los fundamentos lógicos y matemáticos de la computación, de la máquina de Turing o del álgebra de Boole. Ni siquiera hay que preocuparse por la memoria que esté utilizando tu programa. El software ha alcanzado tal punto de madurez que hace innecesario tener esos conocimientos, hasta el punto de que tenerlos ni siquiera supongan una ventaja competitiva.

Con la Inteligencia Artificial comienza a pasar lo mismo. Cada vez es menos necesario ser un experto matemático y estadístico para poder utilizar estas tecnologías. Así como los niños prodigio de hace 20 años (padres hoy de Facebook, Google y demás) trasteaban con líneas de código y desarrollaban una intuición natural al margen de los fundamentos teóricos, las tecnologías tras la Inteligencia Artificial son ya lo suficientemente maduras para que puedan intuirse y aprenderse de forma «práctica».

Ausencia total de estructura para productivizar estas soluciones

Todas las empresas están ya familiarizadas con términos como CI/CD o pipelines. El código se revisa, se hace testing, hay herramientas de monitorización de los sistemas, múltiples entornos, existe metodología de trabajo (véase Scrum), incluso la gente de Negocio accede a Grafana, a PowerBI o sabe SQL. La industria ha conseguido domar y sistematizar al software, le ha perdido el miedo, y el software se ha hecho valer en la industria. Pensar un servicio y ponerlo en producción ya es sólo «cuestión de tiempo» (y dinero, claro), y los directivos tienen una intuición correcta de qué sí, qué no, para qué y cómo.

En el contexto de la IA estamos a años luz de todo esto. Los pocos proyectos que hay en las empresas pertenecen a departamentos de I+D, nadie cree demasiado en ellos, y por supuesto no están en el camino crítico de ningún sistema: son soluciones offline que muchas veces sirven para que el empresario de turno farde de ello en alguna presentación.

Para que la Empresa esté cómoda con la IA tienen que industrializarse varios procesos que quiten incertidumbre sobre una tecnología que parece ciencia ficción pero que ya no lo es. Estos son, en mi opinión, los escollos que quedan por sortear, desde una perspectiva técnica y de negocio.

Perspectiva técnica

Puesta en producción

Deployear un modelo a producción debería ser tan sencillo como deployear un microservicio. Esto implica que el Data Scientist pueda generar versiones desde su entorno de entrenamiento con un único comando, y que la puesta en producción de una versión del modelo pueda hacerse cómodamente a través de un pipeline.

Transformaciones ETL

Cuando el Data Scientist desarrolla un modelo genera lo que se llama el espacio de features, que no es más que una transformación sobre los datos originales. Estas transformaciones se hacen durante el entrenamiento, pero después tendrán que hacerse también durante la inferencia, y por tanto lo suyo es que el modelo las «empaquete», o te encontrarás teniendo que programarlas dos veces con los problemas de sincronización entre versiones que eso puede suponer.

Monitorización

El Data Scientist, desde su conocimiento teórico, te entregará un modelo que ha entrenado con un dataset y después testeado con otro. Esta garantía teórica es correcta, pero también instantánea: lo más probable es que tu target vaya cambiando con el tiempo y acabe requiriendo cambios. No hay que pensar que una vez el modelo está elaborado y ejecutándose en producción uno puede olvidarse. El modelo (la realidad, más bien) está viva. Un sistema productivo y profesional de ML debe tener un buen Dashboard de monitorización desde su versión más primitiva o será ingobernable.

Reentrenamiento

Vinculado a la monitorización debe establecerse también una estrategia de reentrenamiento para cuando el modelo empiece a degradarse. El reentrenamiento sería como una «minor release», en el sentido de que nuestra hipótesis del modelo no cambia, simplemente vamos a alimentar a nuestro modelo con nuevos datos para que éste actualice sus parámetros. La estrategia de cuándo desencadenar el reentrenamiento puede variar, lo que sí debe estar automatizado es la fase de reentrenamiento en sí.

Major releases

Esta fase es más manual, pero también debe tenerse en consideración a la hora de planificar. Habrá veces que la realidad que estamos estudiando o prediciendo ha cambiado tanto que nuestro viejo modelo, incluso aún reentrenándolo, ya no rinde como antes. Este es el momento de volver al laboratorio, de que el Data Scientist vuelva a ponerse en modo I+D e itere un nuevo ciclo.

Metodología de trabajo

Así como en Scrum las historias de usuario se refinan, se planifican y se estiman, en el mundo de Machine Learning todavía no hay una metodología clara, y la guía más común es «déjale hacer al Data Scientist y ya nos dirá él», que puede resultar una aproximación vaga e insatisfactoria. Nosotros sustituimos las historias por «hipótesis» y en vez de Scrum usamos Kanban.

 

Perspectiva de Negocio

Es fácil hacer entender a Negocio el objetivo del proyecto, pero muy difícil hacerle entender los pasos que vas a dar.

Para Negocio un proyecto de Inteligencia Artificial es un proyecto de análisis de datos, y eso es lo que esperan: que les digas cosas sobre sus datos que ellos no habían observado.

Esperan análisis, pero esto va sobre síntesis. Es el propio modelo el que, durante el entrenamiento, va a ir aprendiendo esos patrones que existen en los datos; y dependiendo de la complejidad del mismo puede que nunca llegue a explicitar cuáles son esos patrones, de forma que sólo quede fiarse del modelo porque funciona.

Existe una rama de Machine Learning que trata la «explicabilidad» del modelo, es decir, que a partir del modelo sepamos cuáles son dichos patrones. Pero por otro lado, la explicabilidad está ligada a la complejidad: un modelo más explicable es menos complejo por definición. Una máquina puede darse cuenta de patrones que un humano jamás hubiera observado, y además estos patrones pueden ser tan «extensos» que sean directamente incomprensibles. Si quieres que tu modelo sea más «explicable» le estarás pidiendo que no genere patrones tan complejos, pero con ello estarás limitando su efectividad.

Muchos casos reales podrán ser solucionados con modelos sencillos por lo que todo el mundo podrá entender el modelo. Pero en cualquier caso, con el tiempo, deberán ser conscientes de que hay cosas que no van a entender y que simplemente funcionan, y eso no es ninguna tarea fácil.

Conclusión

Machine Learning es una tecnología avanzada y madura que puede utilizarse con éxito en muchísimas tareas que se realizan en las empresas, tanto por personas como por software determinista (por ejemplo, sistemas de reglas «hardcodeadas» que pasarán a ser un pequeño modelo de IA). Es solo cuestión de (poco) tiempo que vivamos una pequeña revolución de la IA en la empresa.

Esta revolución vendrá acompañada de perfiles que van más allá del Data Scientist y que permitirán industrializar las soluciones, como pueden ser el Data Engineer o el MLOps (Machine Learning Operations).

 

Deja un comentario