Posted: 29 Jun. 2022 4 minutos Tiempo de lectura

Explainable AI: en busca de una inteligencia menos artificial

Si escribo “Model.add(layers.Dense(64, activation='relu'))”, no es muy probable que absolutamente todo el mundo que llega a este post sepa, sin pasar antes por Google, que se trata de un fragmento de código para añadir una capa densa a una red neuronal, con un número determinado de neuronas (64), y con una función de activación (bastante común de hecho) que mitiga el problema del desvanecimiento del gradiente -y que forma parte de una red neuronal convolucional, entrenada para reconocimiento de imágenes.

Sin embargo, lo que sí entenderá prácticamente todo el mundo, es que se trata de una I.A. que reconocerá imágenes de gatitos, y que si la entreno de manera adecuada, me dirá su raza y puede que algo más.

El uso de activos mejorados con inteligencia artificial (y desde este momento, hablaremos de deep learning más que de machine learning) se ha normalizado en la mayoría de las industrias, a medida que se han ido incorporando a los diferentes procesos de negocio, normalmente para incrementar la eficiencia de estos... ¿Quién querría dedicar su jornada laboral a etiquetar las imágenes de los portales o apps de venta de productos de segunda mano?

En un espacio de tiempo relativamente corto, nos hemos ido acercando a aquel traductor de idiomas universal y en tiempo real que los tripulantes del Enterprise tenían a su disposición como herramienta para empujar el borde exterior... bueno, más al exterior. Pese a las voces críticas, algunas incluso reaccionarias, ya nadie discute los beneficios de incorporar estos activos tanto en entornos profesionales como cotidianos, y términos como I.A., machine learning, deep learning, insights, analytics... forman parte de nuestro vocabulario habitual, pero como sucede con muchas otras tecnologías o herramientas, como usuarios, acostumbramos a quedarnos en el espacio de lo conveniente, sin ser demasiado críticos o curiosos con su funcionamiento, o con los diferentes parámetros que gobiernan su comportamiento.

Acerca del comportamiento de las redes neuronales, lo primero (y que probablemente todo el mundo entiende ya) que cabe destacar es que los modelos de inteligencia artificial “aprenden” a partir de datos, cantidades ingentes de datos -GPT-3, por ejemplo, entrenada con unos 45TB de texto de diferentes fuentes de Internet*. La calidad de estos datos, entre otros elementos, determinará el valor de nuestro modelo. Además, en el caso de las redes neuronales, debemos definir una arquitectura, con diferentes capas que establecen relaciones entre sí para una determinada entrada, que es lo que da forma a su interpretación de ésta. También debemos establecer las funciones de activación de cada capa, y su comportamiento durante el entrenamiento, pero eventualmente, en tiempo de inferencia, no podremos determinar a ciencia cierta cómo o porqué hemos obtenido una salida (un resultado). Es especialmente complejo averiguar cómo o porqué se ha obtenido una respuesta, dado que no se trata de salidas idempotentes, en las que para una determinada entrada siempre obtendremos la misma salida. En cambio, un modelo basado en machine learning que emplea distancias euclidianas para agrupar (clusterizar) elementos de un conjunto, resulta bastante más predecible, y es por esta razón que a menudo, se tiende a percibir las redes neuronales como cajas negras, en las que entran datos, y obtenemos una respuesta, pero entendemos más bien poco de lo que pasa en su interior.

En este sentido, de la misma forma que a día de hoy, nos resultaría inaceptable que un coche cualquiera no incorporase airbags, o que los sistemas de un avión no estuvieran redundados, y dado el problema de la “imprevisibilidad” de la inteligencia artificial, deberíamos ser capaces de entender, como usuarios, los elementos básicos de ésta, y especialmente, ser capaces de entender que existen mecanismos de seguridad (si es que se pueden llamar de esta manera) que permiten monitorizar su comportamiento para asegurar que no se producen sesgos o daños y perjuicios simplemente por haber otorgado demasiada importancia a una variable concreta de un conjunto de datos de entrenamiento (pensemos en las numerosas noticias de “IA’s racistas”**). Por otra parte, los modelos de inteligencia artificial están vivos, no son instancias inalterables que permanecen estancos; deben ser reentrenados de forma periódica con datos nuevos para identificar nuevos fenómenos, o para evitar que se degraden sus predicciones. He aquí la necesidad de monitorizarlos de forma continua: y es en este punto en el que la explicabilidad debe servir como la herramienta necesaria para responder a las preguntas “cómo” o “porqué” ante un resultado. Es el mecanismo que nos debe permitir conocer qué variables se han incluido en el entrenamiento de este modelo, qué variables se han incorporado realmente para tomar una decisión, cuál es la importancia de cada variable, de forma absoluta y relativa, cuales son los umbrales de cada variable, que inclinan o cambian la respuesta de nuestro modelo, etc.

Pero de nuevo, la explicabilidad es una característica que varía en función de nuestro modelo (en redes neuronales, el tipo de red, sus capas, las funciones de activación, etc.), y no siempre se conseguirá siguiendo los mismos métodos. Es inherente a cada modelo, y por tanto, debe formar parte de su ciclo de vida de desarrollo.

Con todo, existen herramientas que facilitan la implementación de mecanismos de explicabilidad; AWS cuenta con Sagemaker Clarify, que permite detectar sesgos en los modelos de Sagemaker (monitorizando continuamente la inferencia), y proporciona datos a los desarrolladores para facilitar la comprensión de sus predicciones, así como para detectar cambios en su comportamiento. Del mismo modo, Azure dispone de herramientas (algo más rudimentarias, en mi opinión, y aún no disponibles de forma general) para evaluar la importancia de las variables durante el entrenamiento, y para evaluar el comportamiento de un modelo en tiempo de inferencia. En GCP, por otro lado, dispone de un conjunto de herramientas dentro de Explainable AI, que incorpora mecanismos para evaluar los modelos de forma continua, y para realizar experimentos “what-if” que nos permitan actuar de forma proactiva ante eventuales cambios en nuestros datos, reduciendo potenciales problemas futuros. Obviamente, existen toolkits open source (aix360, XAI), que proporcionan las herramientas necesarias -aunque en este caso, ponerlas en funcionamiento requiere algo más de esfuerzo.

Aunque el trabajo “manual” que requiere incorporar y mejorar la explicabilidad de un modelo es complejo, existen iniciativas e investigaciones que probablemente lo acaben convirtiendo en un reto o problema menor; es especialmente interesante la aproximación del equipo del MIT tras la técnica MILAN (Mutual-Information-guided Linguistic Annotation of Neurons), que produce descripciones en lenguaje natural para las neuronas en cada capa, y que permiten entender la semántica tras la descomposición de una imagen que realiza una red convolucional.***.

Llegados a este punto, creo conveniente insistir en la importancia de incorporar la explicabilidad como una característica más de los modelos de inteligencia artificial, algo que por defecto los acompañe, y que sea posible consultar de forma transparente como usuario de un servicio -normalmente desarrollado por un equipo de científicos e ingenieros de datos, pero cada vez más, apoyados en servicios tipo “auto ML” que con poco más que un conjunto de datos de entrada, una selección de variables, y una variable objetivo, seleccionarán automáticamente el modelo más eficiente -junto con su configuración, lo entrenarán a partir de éste conjunto de datos, y lo dejarán listo para la inferencia, con poca o ninguna intervención (aunque podamos, a posteriori, alterar su configuración).

Queda pendiente el debate sobre qué aspectos del desarrollo y uso de la IA deberían cubrir futuras revisiones del GDPR, o de qué manera se debería regular su uso en función de la industria; queda mucho camino por recorrer. De la rueda, a los últimos modelos de Tesla, hay un largo trecho, y pese a que no quisiera menospreciar el valor de aprender de los errores, anticiparnos a ciertos problemas puede suponer la diferencia entre el éxito o el fracaso de una iniciativa. Como entusiasta de este tipo de tecnologías, y desarrollador más o menos consciente de su potencial, creo que es necesario incorporar estas prácticas en el ciclo de vida del desarrollo de modelos de IA, que nos aseguren una adopción segura, transparente y justa -en resumidas cuentas, menos artificial.

*. OpenAI GPT-3: Everything You Need to Know (springboard.com)

**. Rise of the racist robots – how AI is learning all our worst impulses | Inequality | The Guardian

***.  https://news.mit.edu/2022/explainable-machine-learning-0127

****. 2201.11114.pdf (arxiv.org)

 

Autor del artículo

José Antonio Rodríguez Jiménez, senior specialist lead de Consultoría Tecnológica de Deloitte