viernes, 7 de febrero de 2025

La hibridación de los robots software: agentes frente a RPA y robots conversacionales

En el post anterior de este blog, hablaba del nacimiento de una nueva especie robótica, un nuevo tipo de robots software: los agentes de la Agentic AI

Le pongo el apellido 'de Agentic AI' a la espera de que la industria genere algún nuevo nombre, porque el término agente, como expliqué en ese último post, es demasiado genérico y denomina a muchos entes ya existentes incluyendo a las propias personas.

En este artículo pretendo mostrar cómo, desde un punto de vista funcional, no tanto tecnológico, estos agentes, al menos lo que de ellos se nos ha mostrado hasta la fecha, son una suerte de hibridación y evolución de las dos especies de robótica software anteriores: los robots RPA y los robots conversacionales.

Esas dos especies robóticas, robots RPA y robots conversacionales o chatbots, son las que yo identificaba y explicaba en mi libro 'Robots en la sombra'.

Antes de hablar los agentes, pues, recordemos brevemente las ideas principales sobre robots RPA y robots conversacionales.


Los robots RPA


Esquematizo la idea de RPA en la siguiente figura


Robots RPA


Los robots RPA ('Robotic Process Automation') son un tipo de módulos software orientados a interaccionar con recursos IT ya existentes, tanto en la propia empresa como en Internet. Entre esos recursos se encuentran las aplicaciones (a las que acceden ya sea vía conectores o interactuando directamente con su interfaz de usuarios) los documentos recogidos en todo tipo de ficheros, y otros recursos y protocolos con que se interactúa fundamentalmente usando APIs y conectores.

En ese sentido, los robots RPA suelen automatizar orquestando recursos digitales ya existentes, coordinando lecturas, escrituras y solicitud de acciones. 

La lógica de estos robots se basa en reglas, o mejor, en flujos o workflows que define el desarrollador... en tiempo de desarrollo.


Los robots conversacionales


Por su parte, los robots conversacionales, fundamentalmente los chatbots y voicebots tradicionales se ajustan a la siguiente figura:


Robots conversacionales tradicionales

Para los robots conversacionales, su entorno natural son las personas, ya que están diseñados, precisamente, para una interacción natural con ellas mediante conversaciones. En ese sentido, suelen actuar como front-end de una aplicación o de un conjunto de ellas de las que obtienen información o a las que solicitan acciones. Por eso, aunque su entorno principal son las personas, interaccionan también, un poco en back-office, con aplicaciones y recursos haciendo uso, al igual que los robots RPA, de conectores y APIs.

Presentan en su entrada capacidades de procesamiento de voz y lenguaje natural que son entrenadas, en realidad ajustadas, en tiempo de desarrollo, para reconocer intenciones y entidades en lo que el usuario transmite. A partir de ahí, las respuestas y la interacción con el back-office se define con base en reglas claras y en tiempo de desarrollo. 

El planteamiento de los chatbots y su construcción cambia con la llegada de los chatbots basados en modelos generativos, pero prefiero dejar como está la descripción de los robots conversacionales, en parte por claridad de discurso, pero en parte también porque podría no ser descabellado considerar un chatbot basado en modelo generativo como una forma muy simple, quizá un poco degradada, de agente.


¿Y qué son los agentes?


Y llegamos a los agentes.

Los agentes (los de la Agentic AI, me refiero) son módulos software cuyo 'cerebro', por decirlo de alguna manera, es un modelo generativo (podríamos decir que un gran modelo de lenguaje, pero creo que el nombre empieza a resultar inadecuado dada su misión y su probable evolución tecnológica). 

Siguen siendo módulos software autónomos (como los anteriores), y por tanto robots software, en mi opinión. La gran diferencia, la grandísima diferencia, es que ellos mismos deciden la lógica de actuación y lo hacen en tiempo de ejecución, no en tiempo de desarrollo.

Los agentes reciben una solicitud o indicación mediante un prompt que les fija un objetivo y, a partir de ahí, deducen ellos mismos, o al menos esa es la promesa, las acciones a llevar a cabo... y las ejecutan, hasta conseguir los resultados deseados.

Aunque todavía son una idea naciente y que debe evolucionar, concretarse y consolidarse, podemos hacernos una idea de 'por dónde van los tiros', viendo este vídeo reciente de OpenAI mostrando su 'Operator'.



Vemos que el usuario hace una petición de viva voz al agente (y por tanto genera un prompt) lo que quiere y, a partir de ahí, el agente decide lo que tiene que hacer y, en ese lo que tiene que hacer se incluye interaccionar con sitios web a través de sus pantallas. Es decir, el agente interacciona con una persona pero, además, interacciona con aplicaciones.

Yendo ligeramente más allá de lo que se ve en esta demostración, pero reflejando algunas cosas que ya se hacen en frameworks como LangChain y alguna evolución casi evidente y que creo que inminente, el esquema de un agente de la Agentic AI como el que se ve en el vídeo podría ser el ue se muestra en la figura:

Agente

Respecto a lo que se ve en el vídeo, esta figura añade la posibilidad de interactuar con ficheros y la invocación a conectores y APIs, pero no tengo ninguna duda de que, si eso no está disponible ya, lo estará prontísimo, tanto por su utilidad como porque tecnológicamente no supone un desafío ni dificultad adicionales.


Agentic AI como hibridación y evolución de RPA y robots conversacionales


La figura anterior en que esquematizo la idea de un agente, se parece mucho a la que utilizo para RPA o para robots conversacionales. Y eso no es casual. Es intencionado para mostrar los paralelismos que, para mí, son evidentes.

De hecho, para cualquiera que sea conocedor de RPA, lo que muestra la demostración de Operator recuerda muchísimo a RPA, casi lo podríamos considerar RPA: ese interactuar con pantallas de aplicaciones para obtener datos y pedir acciones es lo que supuso el nacimiento de RPA como tipología de solución diferenciada, y lo que todavía hoy en día más la caracteriza, aunque no necesariamente sea como más su utiliza.  Si a eso le añadimos el trabajo con ficheros y el uso de conectores y APIs, tendríamos lo mismo que RPA

Y, es evidente, que estos agentes pueden, si así se desea (aunque es muy probable que en muchas realizaciones prácticas no se utilice) interactuar con usuarios, con personas, mediante texto o de viva voz...de la misma manera que que hacen los robots conversacionales y como se muestra en el video.

Es por ello que considero que los agentes de la Agentic AI no es sólo que sean robots software es que reúnen y fusionan las capacidades de RPA y de los robots conversacionales, las dos 'especies' anteriores, como se ve en la figura que ya auna las tres figuras de cada una de las especies de robot software.


Las tres especies de robot software

La diferencia, la gran diferencia, tanto para lo bueno como para lo malo, frente al caso del RPA que hemos tenido hasta ahora, y a los robots conversacionales que han dominado el panorama hasta la aparición de los chatbots generativos, está en el 'cerebro' y en la lógica de actuación de los agentes.

En el caso de los robots RPA hablamos de flujos o workflows definidos por un desarrollador. Aunque es cierto que hoy en día se pueden enriquecer con elementos de inteligencia artificial y de decisión en tiempo de ejecución, en esencia se basan en reglas y flujos conocidos y establecidos en tiempo de desarrollo.

En el caso de los robots conversacionales tradicionales, aunque interviene un poco de inteligencia artificial en la entrada, a partir de ahí trabajamos con reglas y lógicas definidas por el desarrollador y también en tiempo de desarrollo.

Sin embargo, los agentes, que se basan en modelos generativos, no sólo es que generen una respuesta textual o de voz no predefinida sino que, muchísimo más importante, define el plan de acción de manera autónoma y en tiempo de ejecución. Por decirlo de alguna forma, son muchísimo más inteligentes y mucho más autónomos. Al menos esa es la promesa.


El arma de doble filo


Si los agentes 'cumplen su promesa', si están a la altura no de lo que ya se puede hacer con LangChain hoy en día sino que realmente son capaces de crear planes de actuación de manera autónoma como se muestra en el vídeo y en lo que se está publicando, las posibilidades son inmensas, casi revolucionarias.

Sin embargo, hablo de un arma de doble filo porque, en según qué entornos, por ejemplo la automatización industrial o procesos uniformes y masivos, podemos preferir las reglas claras, conocidas y predecibles de los robots y sistemas tradicionales, antes que unos planes que podrían hacer cosas extrañas (la versión de 'alucinación' llevada a un plan de acción), inesperadas o poco eficientes

Habrá que, por un lado, ver lo que los agentes sean capaces de ofrecer realmente, y por otro aplicar el sentido común.


Conclusiones


Creo haber mostrado, no sólo que los agentes de la Agentic AI son un tipo de robot software sino que, además, al menos en lo que se está prometiendo, aúnan las capacidades tanto de RPA como de robots conversacionales, pero de una forma mucho más inteligente y autónoma y, eso sí, algo más impredecible.

Va a ser interesantísimo ver a dónde se llega realmente en las próximas semanas y meses.


miércoles, 5 de febrero de 2025

Una nueva especie robótica: los agentes

El título puede parecer, la verdad, algo grandilocuente, pero tras algunas semanas pensando en ello, y tras haberlo adelantado en alguna charla y clase, creo poder afirmar que estamos atendiendo al nacimiento de una nueva especie robótica, entendiendo como tal a un nuevo tipo de entidades a las que se le puede aplicar el calificativo de 'robot'.

Me refiero a la AgenticAI y, claro, a los módulos que la tangibilizan: los así denominados  agentes.

Y digo que ha nacido una nueva especie robótica pero, además, y según consultoras como Gartner, y según el típico 'hype' tecnológico, ha nacido también una estrella, aunque este último extremo, el estrellato, los logros reales que puedan alcanzar estos agentes, las capacidades reales que puedan lograr, y su impacto real en el mercado y la sociedad aún está por demostrar... una demostración o refutación que creo que veremos este mismo año, y, caso de tratarse de un éxito, seguramente en el primer semestre.

Pero antes de comentar algo más, vamos a ver de qué hablamos cuando hablamos de robot.


Recordando lo que es un robot


Como diría 'el otro', el concepto de robot es un concepto discutido y discutible. No hay una definición abarcadora, y a la vez, aceptada, de lo que es un robot. Y hemos aplicado históricamente el nombre de robot a entidades artificiales bastante diferenciadas.

Comenté los conceptos de robot en uno de los primeros vídeos de mi proyecto 'The robot notes'. En concreto, en el siguiente vídeo expongo algunas de las concepciones y definiciones existentes.




Y seleccionando la concepción que mejor explica la esencia de un robot, hablaba tanto en el vídeo como en mi libro 'Robots en la sombra' de los agentes inteligentes, una idea que se ilustra en la siguiente figura extraída de mi libro.



Un agente, un robot si llega el caso, sería una entidad que se comunica con el exterior, con el entorno obteniendo información del mismo mediante alguna forma de sensores para, a continuación, y con base en sus objetivos, seleccionar las acciones más convenientes y trasladarlas a ese entorno mediante actuadores.

Es muy importante esa relación con el entorno, incluyendo esa capacidad de actuar sobre el mismo mediante actuadores que es lo que le confiere esa naturaleza de agente, puesto que agente significa aquello que hace, que actúa. La inteligencia, que no necesariamente implica sofisticación ni el uso de inteligencia artificial, supone la coherencia entre la situación del entorno, según se percibe por los sensores, con las acciones efectuadas conforme a los objetivos del agente.

Para que un agente sea un robot, aparte de la caracterización propia como agente, se precisa, evidentemente, que se trate de una entidad artificial (un ser humano es también un agente, pero no un robot).


El debate sobre si el software puede ser un robot


Para muchos autores e instituciones, además, el robot debe tratarse de un ente con realidad física, con cuerpo y, de hecho, esa corporeidad, ese 'embodyment', tiene serias implicaciones, incluidas las éticas, en sus resultados y condicionantes. 

Sin embargo, dentro del término 'robot' se mencionan con frecuencia agentes que son esencialmente lógicos o, por entendernos, software.

En mi libro 'Robots en la sombra', que habla de robots software, explico que, por un lado, los robots que denominados software, realmente si que tienen un 'cuerpo', lo que ocurre es que, en lugar de tratarse de un cuerpo físico especializado, se trata de un hardware de propósito general, típicamente un ordenador o un smartphone y que, además, el entorno con el que interactúan es especial puesto que, con frecuencia, es un entorno digital, no físico.

Intentando identificar las características de los robots en general, incluyendo los que denominamos robots software, llegaba a una propuesta de seis características, a saber:


  • Artificiales
  • Adaptables
  • Actuadores sobre su entorno
  • Autónomos
  • Sustitutivos de personas
  • Similares a personas


Algunas de estas características, como la de la artificialidad, parecen indiscutibles. Más laxas y discutibles son, sin embargo, las que hacen mención al papel sustitutivo de personas o su similitud pero que son muy relevantes en el caso de los robots software. Y también hay que reconocer que se aplica muy comúnmente y sin casi discusión término robot a entes que, por su falta de autonomía, e incluso de inteligencia, cabría excluir de la idea de robot, como son los así llamados robots quirúrgicos.

El tema da para mucho debate, pero lo voy a dejar ahí.

Sólo decir, antes de conocer a la nueva especie robótica, que en mi libro hablaba de dos familias o especies de robots software: los robots RPA ('Robotic Process Automation') por un lado, y los robots conversacionales, o chatbots para simplificar, por otro.


Los agentes de la AgenticAI como robots


Bueno, pues creo que ahora hay que unir una tercera especie o familia: los agentes de la denominada 'AgenticAI'. El propio nombre ya nos avisa: estamos hablando de agentes.

En efecto, se trata de unos módulos software, regidos, en este caso, por un 'cerebro' basado en modelos generativos de inteligencia artificial. Se trata de unos módulos que también perciben un entorno (aunque un entorno especial) y que generan acciones sobre él. Y se trata de unos módulos en que las actuaciones son coherentes con el estado del entorno y los objetivos del módulo. El término agente, pues, es absolutamente apropiado para estos módulos,  aunque quizá resulte desafortunado que se apropien de es término que es muy anterior a la existencia de estos nuevos robots, y que es aplicable a otras muchas entidades. En cualquier caso, sí que son agentes y agentes inteligentes.

Y cumplen las seis condiciones que en mi libro 'Robots en la sombra', atribuía a los robots en general, y a los robots software en particular: son artificiales, adaptables, actuadores sobre su entorno, autónomos, sustitutivos de personas y, en cierto sentido, similares en su comportamiento a ellas. Son, por tanto, robots, robots software.

En algún próximo artículo, intentaré explicar que, no sólo es que se trate de robots software, es que, además, y según se ve en sus primeras realizaciones, tienen importantes solapes con las dos anteriores especies robóticas software que había identificado: los robots RPA y los robots conversacionales, convirtiéndose en una suerte de evolución, e incluso convergencia, de sus 'antepasados' robóticos.


Conclusiones


A despecho del debate existente, y justificado en realidad, acerca de lo que realmente significa el término 'robot' y del otro debate, también existente y también justificado, acerca de si un robot software es realmente un robot, creo que, si sigo mi propia doctrina respecto a lo que es un robot, estamos asistiendo al nacimiento de una nueva especie robótica: los agentes de la AgenticAI.

Una especie 'joven' y que habrá que ir viendo cómo se desarrolla. 

Todo apunta a que tendremos muchos noticias al respecto en las próximos meses e incluso semanas.


martes, 4 de febrero de 2025

Notas sobre aprendizaje por refuerzo (y XV): meta aprendizaje

Y con este post voy a poner fin ya a esta larga serie de artículos sobre aprendizaje por refuerzo, una serie inspirada y guiada por los contenidos del libro 'Deep reinforcement learning' de Aske Plaat

En este último artículo hablaremos del meta aprendizaje.

Pero antes de entrar en materia, como siempre en la serie, repasemos brevemente lo visto en los posts anteriores.


Recordatorio: lo que hemos visto de aprendizaje por refuerzo


El esquema que nos ha guiado durante toda la serie, ha sido el expresado en la siguiente figura que, a estas alturas, y si has seguido la serie, debería resultarte muy familiar:


Nos ocupamos inicialmente de la situación de un agente que interactúa con un entorno que se encuentra en un estado s. Sobre ese entorno, el agente aplica unas acciones, a, como consecuencia de las cuales, el entorno puede experimentar una transición y cambiar de estado, pasando del estado s al s', y el agente recibe una recompensa r. El agente decide la acción a aplicar en cada momento, siguiendo una política π y su objetivo es maximizar la recompensa obtenida lo largo de una secuencia o trayectoria.

Los métodos más básicos, aquellos en que el espacio de estado es reducido, siguen, decíamos, un enfoque tabular, en que se tabulan, de ahí el nombre, los posibles estados y para ellos se calculan unas funciones que nos dan el valor, Q, de la recompensa esperada. Cuando la dimensión del espacio de estados es muy alta, como sucede habitualmente en problemas reales, dejan de tener sentido estos métodos tabulares así que renunciamos a representar la situación del entorno mediante su estado, y a cambio lo representamos mediante unas características ('features') y la obtención de valores o acciones vienen a ser unas funciones con base en esas características e implementadas mediante redes neuronales profundas, dando lugar al 'deep reinforcement learning'.

Cuando tratamos problemas ya no de alta dimensionalidad, sino continuos, como es la locomoción de robots, se adoptan los denominados métodos basados en políticas en que se prescinde de la visión de valores, y se trabaja directamente en optimizar las políticas, que pasan a considerarse como estocásticas, es decir, como distribuciones de probabilidad. 

También aparecía como opción el denominado aprendizaje basado en modelos ('model-based'), en que el agente primero consigue un modelo del entorno y luego ya prescinde del entorno propiamente dicho par a trabajar con ese modelo local durante todo el entrenamiento.

Hasta aquí estábamos en la situación de trabajar con un único agente.

Posteriormente vimos el caso en que teníamos dos agentes, exactamente dos y que se encontraban en una situación competitiva, en uno de los denominados juegos de suma cero en que la ganancia de un agente supone la perdida del otro. En esa situación, una opción habitual era trabajar con el aprendizaje basado en modelos, dado que, para un agente, el entorno está constituido por el otro agente, y se adopta la hipótesis razonable de que su política, la del otro agente, es igual a la nuestra, por lo que modelamos el entorno con el modelo de nuestra propia política. 

Eso, además, conducía a la posibilidad del autoaprendizaje o auto-juego ('self-play'), en que un agente aprende jugando, en el fondo, contra sí mismo (contra otro agente con la misma política, en realidad). Vimos que mediante los problemas mono-agente, se podían tratar problemas como la locomoción de robots, la búsqueda de rutas o videojuegos. 

Luego exploramos la situación multi-agente, en los cuales no sólo se produce una competición sino también una colaboración entre agentes y un campo del que decíamos se encontraba fundamentalmente en investigación.

Y, finalmente, en el post previo a éste hablamos brevemente de aprendizaje jerárquico, en el que se divide un problema complejo en sub-problemas más gestionables, lo que aumenta nuestra potencia de resolución de problemas complejos y proporciona un esquema más robusto y reutilizable. A cambio, existe el riesgo cierto de no alcanzar soluciones óptimas a nivel global porque, durante el proceso optimizamos la resolución de los sub-problemas pero no tanto el problema en su conjunto.


Reutilizando el conocimiento


La idea principal que subyace al meta aprendizaje es la reutilización de lo ya aprendido. Y eso, en parte, por una inspiración en cómo funciona el conocimiento humano, en que un nuevo conocimiento se apoya en el anterior, y, por otro lado, por una mera necesidad de eficiencia, de reducir lo máximo posibles las necesidades de entrenamiento de los algoritmos, una labor lenta y muy consumidora de tiempo, datos y energía.

En esta intención, nos encontramos con dos conceptos que, en el fondo, se parecen: la transferencia de aprendizaje, o 'transfer learning' y el meta aprendizaje o 'meta learning' propiamente dicho


Transferencia de aprendizaje (transfer learning)


Uno de los problemas del machine learning tradicional es que, cada vez que se quería entrenar un algoritmo o un modelo, se partía de cero, es decir, es como si, aunque ya dispusiésemos de un modelo con un cierto conocimiento, como si eso no valiese y hubiera que desaprenderlo todo para volver a empezar a aprender desde la base: había que, quizá, rediseñar los hiperparámetros de la, por ejemplo, red neuronal, había tomar un nuevo conjunto de datos de entrenamiento, dedicar el tiempo y la computación necesaria para realizar ese entrenamiento y utilizando los conjuntos de datos de prueba, testear y validar el modelo.

Es como si, aplicando la popular expresión, 'no hubiésemos aprendido nada'.

Esa estrategia, aparte de que intuitivamente contradice la forma de aprender humana, era económica y operativamente muy ineficiente.

Hablo en pasado, no porque sea un problema completamente superado, que no lo es, pero sí porque ya existen muchas vías de reutilización del conocimiento en los modelos de machine learning: lo que se conoce como transferencia de conocimiento o 'transfer learning'.

Así, por ejemplo, es sabido que, en el caso de las redes neuronales de convolución aplicadas a visión artificial, las primeras capas, por decirlo de alguna manera, se especializan en detectar ciertas características genéricas de las imágenes como bordes o esquinas, y que son las capas finales, en ocasiones capas densas de tipo perceptrón multicapa, las que proporcionan el resultado final. En este ámbito ya se ha experimentado con éxito con el entrenamiento de capas de convolución en una especie de 'visión general', que luego se utiliza en otros modelos más especializados que se reeentrenan pero en menor media o que añaden, por ejemplo, algunas capas adicionales.

En general este tipo de técnicas se aplican en redes neuronales profundas ('deep learning') y la forma de hacer el transfer learning es, por decirlo de alguna manera, transferir la red neuronal, con sus hiperparámetros (ej. número de capas o número de neuronas por capa) ya definidos y con los pesos (los parámetros) ya ajustados mediante el pre-entrenamiento.

En cierto sentido, ese transfer learning se ha elevado a una altísima expresión en los modelos generativos, como los GPT (no en vano, la P de GPT significa pre-trained) y en los denominados modelos fundacionales, unos modelos que están pre-entrenados por los grandes del sector como OpenAI pero que luego pueden ser especializados mediante 'fine tunning' o incluso, en otro tipo de estrategias, personalizados mediante interacción con el usuario a través de la incorporación de contenido aportado por un buscador o mediante las técnicas de RAG ('Retrieval Augmented Generation').


Meta aprendizaje ('meta learning')


En cierto sentido, el meta aprendizaje es una generalización del 'transfer learning'. Si en el transfer learning lo que pretendemos es transferir el conocimiento de una tarea concreta (por ejemplo una tarea de visión), lo que pretendemos con el meta aprendizaje es transferir el conocimiento de varias tareas (recogido sobre todo en hiperparámetros) para que el modelo o algoritmo resultante sepa como aprender una nueva tarea. Atención que hemos dicho que sepa aprender, no que sepa cómo hacer una nueva tarea, sino cómo aprender a hacerla, de ahí que hablemos de meta aprendizaje (aprender a aprender).

Eso, llevado a las redes neuronales del deep learning, lo que quiere decir es que, lo que transferimos en meta aprendizaje son más los hiperparámetros de la red (que definen su arquitectura y funcionamiento base) que los parámetros propiamente dichos (que reflejan de alguna forma el conocimiento adquirido), precisamente por la estrategia de aprender a aprender, más que de 'venir aprendido'.

Todavía se trata de un área de investigación pero existen ya varios algoritmos y entornos en funcionamiento. Entre los algoritmos, la fuente bibliográfica en que me baso menciona, por ejemplo, RecurrentML, Meta Network,  SNAIL, MAML y unos cuantos más. También proporciona algunos detalles matemáticos de este tipo de algoritmos pero no voy a entrar en esos detalles.


Conclusiones


Como podemos ver, algunos de los enfoques más avanzados en el campo del machine learning y sobre todo del deep learning es ver cómo podemos reutilizar conocimiento, al igual que hacen los humanos, para construir nuevo conocimiento o nuevas capacidades incluyendo ese aprender a aprender que parece un gran objetivo final.


***


Aunque, evidentemente, hay mucho más que decir, y seguro que mas que habrá en el futuro, de momento cierro esta larga serie (quince artículos) que he dedicado al aprendiza por refuerzo. No quiere decir que no vaya a tocar este campo de nuevo, sino que, caso de hacerlo, será ya, seguramente, como un post regular y probablemente apoyado en otras fuentes bibliográficas u otras reflexiones.


Artículos de este blog relacionados


miércoles, 22 de enero de 2025

Motivos para construir robots humanoides

Aunque desde luego no con tanto frenesí, ni de lejos, como ocurre en el campo de la inteligencia artificial, sí que estamos asistiendo, o eso me parece a mí, a cada vez más anuncios o más impactos publicitarios, y probablemente más actividad real de investigación y desarrollo, alrededor de los robots humanoides.

A pesar del atractivo, quizá repulsión para algunos, de este tipo de robots, cabe preguntarse si nos interesa realmente fabricar robots humanoides, si tienen sentido práctico y de negocio, más allá de alguna implicación ética que también traen consigo y que no voy a abordar en este post.

Aunque sin agotar el tema, en este artículo voy a explorar, siquiera superficialmente, el tema: por qué nos interesan los robots humanoides y por qué podría ser interesante construirlos.


Seis motivos iniciales para construir robots humanoides 


Y lo hago comenzando por la referencia bibliográfica que me inspiró a escribir este artículo.

He iniciado la lectura del libro 'Ethics in human-like robots' de Kamil Mamak. En el primer capítulo, que aún no entra apenas en los asuntos éticos, nos recuerda brevemente, y entre otras cosas, las razones que existen, precisamente para construir robots humanoides que se se aportan en el 'Springer Handbook of Robotics',  en concreto en una capítulo firmado entre otros por Paul Fitzpatrick.

Pues bien, en esa fuente, y según nos recoge de manera sucinta Kamil Mamak, las razones que se arguyen son las siguientes:


  • Para nosotros, los humanos, que somos los que construimos estos robots, el propio ser humano es un punto de referencia natural y al alcance de todos lo cual, añado yo, seguramente nos impulsa, incluso a veces un poco inconscientemente, a 'humanizar' aquello que construimos, en este caso, robots.

  • Un poco en línea con lo anterior, para un ser humano, el propio ser humano es uno de sus temas favoritos. Nos gusta estar rodeados por humanos y en ese sentido, de nuevo, 'humanizamos' a los robots. Simplemente, porque nos gusta.

  • Desde un punto de vista más de investigación, se piensa que trabajar con robots humanoides, nos puede ayudar a entender mejor las propias capacidades cognitivas humanas.

  • El mundo que nos rodea está, en buena medida, construido por humanos y para humanos (puertas, escaleras, etc). Un robot humanoide podría adaptarse mejor a 'moverse' por ese mundo hecho a la medida de humanos.

  • Estamos acostumbrados a la interacción entre humanos. En la medida que un robot se hace más parecido a los humanos, en su forma y capacidades relacionales, se nos hace más sencillo interactuar con ellos.

  • Para algunos de las aplicaciones o casos de uso, por ejemplo robots de compañía, y no digamos ya nada robots sexuales, la forma humana es casi inevitable.

Como vemos, los motivos se centran sobre todo en motivos psicológicos o antropológicos que hacen que nos interesen los robots humanoides y también algún motivo práctico como la adaptación al medio o la mayor facilidad de interacción.


Algunos motivos más: mercado e innovación


Aunque los motivos anteriores son interesantes y muy relevantes, es posible que se queden cortos.

Un poco como reflexión de urgencia, susceptible de modificación y/o ampliación futura, se me ocurre alguna razón más, en gran medida relacionada, no tanto con el interés intrínseco en construir robots humanoides por lo que son, que es en lo que se centra la referencia citada más arriba, sino más en relación con una lógica de negocio y mercado, y más intentando contestar el porqué del interés en este momento.

Se trata, como digo, de una reflexión de urgencia y un tanto especulativa, pero esto es lo que se me ocurre a bote pronto.

Por una parte, creo que la industria está percibiendo que existe un mercado potencial interesante o muy interesante. Un mercado jugoso, nuevo y por desarrollar. Ese mercado se origina en buena medida por la fascinación e interés que suponen para el público en general los robots humanoides y por algunos casos de uso, como 'azafatas' de eventos, robots de compañía, juguetes avanzados, robots sexuales, etc. Se trata de un mercado, como digo, aún no desarrollado ni seguro...pero probable y seguramente jugoso. Así que hay compañías que comienzan a posicionarse, desde un punto de vista de marketing (que las asociemos con los robots humanoides) y a capacitarse desde un punto de vista tecnológico y operativo (construir robots humanoides es muy complejo, y hay que ir investigando y desarrollando las capacidades técnicas, operativas y productivas) desde ya, para estar bien posicionados para cuando ese mercado 'explote'.

Por otro lado, y desde un punto de vista técnico, creo que se percibe que los avances tecnológicos en muchos frentes, materiales, sensores pero, especialmente, inteligencia artificial, pueden dar un impulso definitivo a este mercado por la capacidad de dotar a esos robots de unas funciones avanzadas y suficientemente atractivas y por tanto, de nuevo, conviene irse preparando.

Por otro lado, creo que, siguiendo un poco la filosofía de innovación moderna y teorías como Lean startup, de alguna forma un poco atípica, ciertas compañías están haciendo una suerte de producto mínimo viable, para recoger feedback del mercado. Y en esa línea creo que van los atractivos vídeos que lanza Boston Dynamics, por ejemplo, la propaganda de Elon Musk y Tesla sobre su Óptimus, etc. Digo que es una forma de producto mínimo viable un poco atípica, porque lo de mínimo es relativo. Crear los prototipos de robot humanoide y producir esos vídeos es, sin duda, muy caro. Sin embargo, aunque es muy caro, está muy, muy lejos de significar, tanto en dificultad, como en inversión y tiempo lo que supondría realmente lanzar al mercado un robot humanoide. Por eso les sirve como producto mínimo viable: hacen el prototipo, producen el vídeo (u organizan un evento) y recogen el feedback del mercado y los medios sobre este tipo de robots, sobre si interesan o no y sobre si las características que exhiben resultan atractivas o no.

En algunos caso, como el de Tesla y otros fabricantes de coches, creo que, como resaltó el propio Elon Musk en el lanzamiento de Óptimus, existen sinergias tecnológicas y de investigación reales entre los robots humanoides y los vehículos autónomos, especialmente en lo que a sensores, control e inteligencia artificial se refiere. El propio vehículo autónomo no deja de ser una forma avanzada y especial de robot. En ese sentido, lo que investigan o desarrollan en robots humanoides puede resultar, al menos parcialmente, aplicable en vehículos autónomos y viceversa.

Es posible que haya más motivos pero, como digo, un poco a bote pronto, esto es lo que se me viene a la mente.


Conclusiones


Aunque la utilidad y, sobre todo el mercado de los robots humanoides, es todavía algo incierto, sí que parece que hay motivos de orden tanto psicológico como práctico, que hacen que nos resulten atractivos los robots humanoides y que, por tanto, exista un mercado potencial. 

Y, por otro lado, y desde un punto de vista más de mercado, innovación y negocio, pudieran existir razones, las que he intentado esbozar, que explican el interés actual de medios, y sobre todo compañías, en este eventual negocio de los robots humanoides y en invertir en él, en su capacitación y también en su marketing.


lunes, 20 de enero de 2025

Notas sobre aprendizaje por refuerzo (XIV): aprendizaje jerárquico

Había dejado en suspenso la serie de posts dedicados al aprendizaje por refuerzo, por aquello de los 'fatos navideños' y porque, entre medias, hubo también temas que me apeteció tratar antes.

Pero llega el momento de volver al tema y ponerle fin, lo que haré acometiendo los pocos posts restantes (dos o tres), de los cuales este es el primero. 

Y en él voy a esbozar alguna idea básica sobre el denominado aprendizaje por refuerzo jerárquico ('hierarchical reinforcement learning'). Y lo haré, como siempre en esta serie, apoyándome en lo que explica Aske Plaat en su libro 'Deep reinforcement learning'.

Pero antes, como siempre en esta serie de artículos, un repaso de lo visto hasta la fecha.


Recordatorio: lo que hemos visto de aprendizaje por refuerzo


El esquema que nos ha guiado, ha sido el siguiente:


Nos ocupamos inicialmente de la situación de un agente que interactúa con un entorno que se encuentra en un estado s. Sobre ese entorno, el agente aplica unas acciones, a, como consecuencia de las cuales, el entorno puede experimentar una transición y cambiar de estado, pasando del estado s al s', y el agente recibe una recompensa r. El agente decide la acción a aplicar en cada momento, siguiendo una política π y su objetivo es maximizar la recompensa obtenida lo largo de una secuencia o trayectoria.

Los métodos más básicos, aquellos en que el espacio de estado es reducido, siguen, decíamos, un enfoque tabular, en que se tabulan, de ahí el nombre, los posibles estados y para ellos se calculan unas funciones que nos dan el valor, Q, de la recompensa esperada. Cuando la dimensión del espacio de estados es muy alta, como sucede habitualmente en problemas reales, dejan de tener sentido estos métodos tabulares así que renunciamos a representar la situación del entorno mediante su estado, y a cambio lo representamos mediante unas características ('features') y la obtención de valores o acciones vienen a ser unas funciones con base en esas características e implementadas mediante redes neuronales profundas, dando lugar al 'deep reinforcement learning'.

Cuando tratamos problemas ya no de alta dimensionalidad, sino continuos, como es la locomoción de robots, se adoptan los denominados métodos basados en políticas en que se prescinde de la visión de valores, y se trabaja directamente en optimizar las políticas, que pasan a considerarse como estocásticas, es decir, como distribuciones de probabilidad. 

También aparecía como opción el denominado aprendizaje basado en modelos ('model-based'), en que el agente primero consigue un modelo del entorno y luego ya prescinde del entorno propiamente dicho par a trabajar con ese modelo local durante todo el entrenamiento.

Hasta aquí estábamos en la situación de trabajar con un único agente.

Posteriormente vimos el c aso en que teníamos dos agentes, exactamente dos y que se encontraban en una situación competitiva, en uno de los denominados juegos de suma cero en que la ganancia de un agente supone la perdida del otro. En esa situación, una opción habitual era trabajar con el aprendizaje basado en modelos, dado que, para un agente, el entorno está constituido por el otro agente, y se adopta la hipótesis razonable de que su política, la del otro agente, es igual a la nuestra, por lo que modelamos el entorno con el modelo de nuestra propia política. 

Eso, además, conducía a la posibilidad del autoaprendizaje o auto-juego ('self-play'), en que un agente aprende jugando, en el fondo, contra sí mismo (contra otro agente con la misma política, en realidad). Vimos que mediante los problemas mono-agente, se podían tratar problemas como la locomoción de robots, la búsqueda de rutas o videojuegos. 

En el último post, exploramos la situación multi-agente, en los cuales no sólo se produce una competición sino también una colaboración entre agentes y un campo del que decíamos se encontraba fundamentalmente en investigación.


El enfoque jerárquico


El enfoque jerárquico de aprendizaje por refuerzo se basa, en realidad, y en primer lugar, en la estrategia de dividir un problema en sub-problemas, una técnica muy conocida del ámbito de la resolución de problemas. Hecha esa subdivisión, nos planteamos el aprendizaje de cómo realizar (cuál es la mejor política) para resolver cada sub-problema.

Se trata de un enfoque aplicable en teoría a cualquier problema secuencial, aunque en la práctica es más viable en unos tipos de problemas que en otros.

Algún problema muy adecuado para este enfoque sería, por ejemplo, el de la navegación de vehículos o robots. Igualmente, los problemas multi-agente que mencionábamos en el último post de esta serie, tienden a poder dividirse de manera natural en sub-problemas. 

Un riesgo de este enfoque jerárquico es que, dado que  buscamos sub-políticas, o por decirlo de otra mamera., optimizamos a nivel de sub-problemas, es posible que no consigamos una optimización absoluta a novel global, a nivel de todo el problema. De esta forma, el enfoque jerárquico tiende a dar soluciones menos óptimas que el enfoque, digamos, 'plano', pero haciéndolo más rápido.


Ventajas y desventajas del aprendizaje jerárquico


Podríamos decir que el enfoque jerárquico tiene las siguientes ventajas respecto al enfoque 'plano' (no jerárquico.


  • Simplifica la resolución de problemas mediante abstracciones. Los agente resuelven problemas granulares que resultan abstracción del problema en sub-problemas. Luego, las tareas granulares se agrupan en los problemas de mayor nivel de abstracción.

  • Se reduce el número de interacciones necesarias con el entorno, lo que conduce a eficiencia de muestreo. Entre otras cosas, se puede hacer 'transfer learning' de la resolución de subtareas aplicables en otros problemas.

  • Las políticas finales resultantes tienden a ser más generalistas, con mayor capacidad de adaptación a nuevas situaciones y por tanto se reduce la fragilidad de las mismas.

  • Permite resolver problemas mayores y más complejos.


A cambio, presenta las siguientes desventajas:


  • Necesita de, o al menos le resulta muy conveniente, un conocimiento del dominio del problema.

  • Presenta problemáticas de complejidad algorítmica en relación a la identificación de sub-objetivos, el aprendizaje de sub-políticas y las condiciones de terminación.

  • Introducen la idea de macro-acciones (combinaciones de acciones primitivas), el número de las cuales puede crecer de manera que se haga intratable y precise de enfoques aproximados.

  • La calidad de la política final, como ya dijimos, puede ser sub-óptima.


Un breve excurso: agentes


No he podido evitar, al hablar de este enfoque jerárquico, y de esa descomposición de problemas en sub-problemas, que mi mente se desviara hacia la idea de la Agentic AI, de los últimamente tan traídos y llevados agentes, unas soluciones software, cuyo 'cerebro' son modelos generativos del tipo de grandes modelos de lenguaje y una de cuyas promesas es, precisamente, que van a ser capaces de, recibiendo un objetivo como 'prompt', identificar las tareas (es decir, hacer una forma de descomposición) necesarias para conseguirlo y, a partir de ahí actuar.

No tengo claro de, hasta qué punto, beben esos agentes de las ideas del enfoque jerárquico objeto de este post, o prueban estrategias diferentes. Y tampoco está demostrado hasta la fecha, o al menos no me consta que así sea, que se hayan conseguido éxitos notables en esta materia...pero hay que dar un poco de tiempo. Se supone que los agentes son una de las grandes tendencias de 2025. Habrá que ver de hasta dónde son capaces de llegar en general, y en particular en esta capacidad, quizá su mayor reto,  de descomponer una tarea, o mejor, un objetivo, en subtareas accionables.


Conclusiones


El aprendizaje jerárquico parece un enfoque muy lógico si atendemos, incluso, a cómo razonamos los humanos, para afrontar problemas complejos. Sin embargo, parece ser más un campo de investigación que una realizad plenamente conseguida.

Pero la idea es muy interesante, y habrá que esperar resultados.

A ver si los tenemos en 2025.


Artículos de este blog relacionados


miércoles, 15 de enero de 2025

Tendencias en el desarrollo y entrenamiento de modelos generativos

En los dos post anteriores a éste que nos ocupa, he visitado algunas visiones generales sobre los modelos generativos y los grandes modelos de lenguaje .

En concreto, he revisado una comparativa con la cognición humana y  una identificación de los retos que afrontan para el futuro, y todo ello basado en la argumentación que hace Ben Auffart al final de su libro 'Generative AI with LangChain'.

En este post, y basándome en la misma fuente, comentaré algunas tendencias en el desarrollo de modelos generativos que identifica el mismo autor, recalcando, como hice en el post anterior, que el libro está publicado en Diciembre de 2023 por lo que el panorama técnico y competitivo puede haber experimentado alguna ligera evolución, aunque creo que no cambian las ideas básicas. 


La escala del entrenamiento de los modelos generativos


Por un lado, el autor menciona el incremento en el esfuerzo en el entrenamiento de los modelos. En concreto aporta un dato en que dice que el tiempo de entrenamiento de los modelos, se dobla cada ocho meses, lo cual no se pude ver compensado, desde un punto de vista de coste, por el hecho de que, exista también la denominada Ley de Rock según la cual el coste de los procesadores de tipo GPU ('Graphical Processing Unit') o TPU ('Tensor Processing Unit')  empleados se reduce a la mitad cada cuatro años.

Como ilustración, aporta la siguiente gráfica, creada por Epoch.ai y que se puede conseguir en este enlace, donde se muestra la evolución del esfuerzo de entrenamiento, mostrando en abscisas el tiempo y en ordenadas el número de FLOPS ('Floating Point OPerations'), es decir el número de operaciones con números en coma flotante necesarios para entrenar un modelo. Dentro de esos ejes, se representan  mediante pequeños círculos, los modelos concretos.



A modo de curiosidad, y como forma de tener un orden de magnitud, según esta fuente el entrenamiento del modelo GPT-4 de OpenAI realizó 2,1 x 1025 FLOPs, empleó un dataset de entrenamiento con 4,9 x 1012 puntos de datos, duró 95 días, consumió 2,2 x 104 Kilowatios y costó 41 millones de dólares. Por su parte, el entrenamiento del modelo Gemini 1.0 Ultra, realizó 5,0 x 1025 FLOPs, duró 100 días, consumió 2,4 x 104 Kilowatios y costó 30 millones de dólares

Aunque se trabaja en alternativas, de momento hay una correlación fuerte entre el desempeño del modelo y las magnitudes como el tamaño del propio modelo, su conjunto de datos de entrenamiento y el esfuerzo computacional empleado en ese entrenamiento.  

Estos volúmenes, y las economías de escala necesarias, hace concluir al autor, cosa que confirma la experiencia, que estos modelos estarán concentrados en las manos de las grandes empresas tecnológicas. 

Como forma de reducir estas magnitudes, se buscan cosas como mejorar la calidad de los datos de entrenamiento o revisar el diseño del propio modelo. también se plantea la opción de modelos de nicho que pueden dar una excelente calidad en sus resultados, siendo sin embargo modelos más modestos en cuanto a tamaño y necesidades de datos y computacionales para su entrenamiento.


Técnicas para una IA generativa más accesible y efectiva


Tras esto, el autor recoge brevemente algunas técnicas o enfoques para conseguir unos modelos efectivos pero más accesibles.


  • Arquitecturas simplificadas: arquitecturas de los modelos más sencillas lo que facilita su gestión, mejora su interpretabilidad y reduce los costes

  • Generación de datos sintéticos: es decir, creación de datos artificiales que simplifiquen la obtención de datasets de entrenamiento y contribuyan a proteger la privacidad

  • Destilado del modelo: es decir, uso del 'transfer learning', transfiriendo conocimiento de un gran modelo a otros menores, más baratos y de más sencillo despliegue

  • Optimización de motores de inferencia: mediante la creación de 'frameworks' que optimicen el uso del hardware y con ello la eficiencia y velocidad de ejecución de los modelos

  • Aceleradores hardware para IA dedicados: desarrollo y uso de hardware especializado, como han sido hasta la fecha las GPUs y las TPUs

  • Datos públicos: un poco bajo la filosofía 'open data', disponibilidad de datasets públicos, incluyendo datos sintéticos y con una visión que favorece, de nuevo, la privacidad e incluso la equidad.

  • Cuantización: es decir, reducción del número de bits usados para representar los números, perdiendo algo de precisión pero consiguiendo muy buenas mejoras en cuanto a eficiencia.

  • Bases de conocimiento: Incorporación de bases de conocimiento, con información factual, lo que reduce las alucinaciones.

  • RAG ('Retrieval Augmented Generation'): en línea con el punto anterior, enriquecer la generación de texto con el apoyo del conocimiento recogido en fuentes relevantes.

  • Aprendizaje federado: Modelo descentralizado y distribuido de entrenamiento que favorece la escalabilidad

  • Multimodalidad: trabajo no sólo con texto sino con otras modalidades como imagen, vídeo o sonido.


Conclusiones


Quizá, la gran conclusión posible sea que si, en efecto, los modelos de lenguaje son grandes y costosos, y parece difícil evitar la concentración de poder en este ámbito en las grandes empresas tecnológicas, pero que hay multitud de líneas de trabajo y mejora muy serias y prometedoras para mejorar tanto los resultados de los modelos, como su eficiencia computacional y, por tanto su coste e impacto medioambiental.


viernes, 10 de enero de 2025

Trece retos para los sistemas generativos en el inicio de 2025

No cabe duda de que los modelos generativos son una de las grandes aportaciones tecnológicas de los dos últimos años. 

Y lo son por su gran avance tecnológico, por su potencial transformador en empresas y economía y por su impacto mediático.

A pesar de haber dado un salto de gigante em cuanto a su capacidad y resultados en los últimos meses, este tipo de soluciones aún tienen retos que abordar y margen de mejora. 

Al final de su libro 'Generative AI with LangChain' el autor, Ben Auffart. enumera muy brevemente los trece retos más importantes que, en su opinión, abordan los modelos generativos en su estado actual.

Si en tecnología la fecha siempre cuenta, en algo tan móvil, tan sometido a febril evolución, es importante fijar el momento del tiempo en que esto publico y la información en que me baso. Por si, lector, lees este post pasado un tiempo desde su publicación, pongo énfasis en que el post está escrito a principios de 2025 y el libro en que me baso está publicado en Diciembre de 2023.


Los trece retos para los sistemas generativos


Dicho esto, estos son, comentados brevemente por mi mismo, los treces retos que alutor identifica y las formas de abordarlos de que se dispone.


  • Actualidad de la información y deriva ('drift'): es decir, el hecho de que los modelos se encuentran entrenados en un momento dado con la información disponible en ese momento, con lo que su, digamos' 'conocimiento' puede no ser completamente actual y la calidad de su respuesta irse degradando (deriva). El autor apunta como vías actuales de abordaje unos más eficaces métodos de reentrenamiento, la ingesta continua de datos ('stream ingestion pipelines') o métodos de aprendizaje continuo como 'elastic weight consolidation'.

  • Conocimiento especializado: es decir, aplicaciones a ámbitos muy concretos. Se puede abordar mediante RAG ('Retrieval Augmented Generation') o mediante técnicas de 'prompting' que incluyan demostraciones o conocimiento.

  • Adaptabilidad aguas abajo: es decir, adaptación del modelo para su uso en tareas más allá de aquellas para las que fue entrenado. Para este caso, estaríamos hablando de hacer un 'fine tunning' estratégico o del uso de hardware especializado 

  • Salidas sesgadas: una problemática conocida y frente a la cual, aparte de mecanismos de auditoría, se pueden aplicar algoritmos de mitigación de sesgo, realizar entrenamientos con juegos de datos equilibrados, etc

  • Generación de contenido dañino: que se puede abordar mediante sistemas de moderación de contenidos o métodos de condicionamiento como el RLHF ('Reinforcement Learning with Human Feeddback') usado por la propia OpenAI.

  • Inconsistencias lógicas: fallos lógicos, que creo que al menos parcialmente podemos asociar a las alucinaciones, y que se pueden afrontar mediante la aportación de información factual y lógica adicional mediante el uso de bases de conocimiento o técnicas RAG, así como el empleo de arquitecturas híbridas que no sólo utilicen LLMs sino que incorporen otros algoritmos de machine learning e, incluso, inteligencia artificial simbólica.

  • Imprecisiones factuales: es decir, pequeños errores o imprecisiones relacionadas con datos o hechos concretos que, de nuevo, se pueden encarar mediante RAG, mediante bases de conocimiento y mediante la actualización frecuente de estas bases de conocimiento. 

  • Falta de explicabilidad: un problema bien conocido, en cuanto a planteamiento, que no en cuanto a solución, en todo el campo del machine learning y especialmente del deep learning. El autor apunta al uso de técnicas como la introspección del modelo ('model introspection'), 'concept attribution' (es decir, intentar saber qué característica de entrada pesa más o menos en un resultado) o el diseño de modelos interpretables internamente. 

  • Riesgos de privacidad: para vencer a los cuales se pueden usar técnicas ya conocidas de otros ámbitos de la inteligencia artificial como el aprendizaje federado, la privacidad diferencial, el encriptado o la anonimización

  • Alta latencia y costes de computación: para mejorar los cuales se pueden usar también técnicas bien conocidas como la 'quantization' (disminución del número de bits para representar números, aunque se a costa de perder algo de precisión), uso de hardware optimizado o un mejor diseño algorítmico.

  • Limitaciones de licenciamiento: que se puede afrontar mediante uso de datos sintéticos o abiertos para entrenamiento o acuerdos de licenciamiento más justos.

  • Seguridad / vulnerabilidades: un amplio campo dentro del cual el autor apunta, simplemente, al uso de buenas prácticas de ciberseguridad y el empleo de técnicas 'adversarias'.

  • Gobierno: a encarar mediante el desarrollo de frameworks éticos y de cumplimiento normativo.


Conclusiones


Los modelos generativos, pues, presentan muchos e importantes retos pero, como se puede ver, para todos ellos existen formas de superarlos o, al menos, de comenzar a afrontarlos.

Y dado el espectacular ritmo de avances y novedades en este campo, parece razonable pensar que veremos cómo se superan muchos de ellos o cómo, al menos, se mejora de manera notable en la mayoría de los casos.


viernes, 3 de enero de 2025

Una comparativa entre la cognición humana y los modelos generativos de IA

No es raro, y en el fondo resulta comprensible, que comparemos la inteligencia artificial con la cognición humana.

Y digo que no es raro porque, aunque en esas comparaciones se cae con cierta frecuencia en la fantasía y la especulación algo gratuita, lo cierto es que en el origen y en parte, sólo en parte, en el desarrollo actual de la inteligencia artificial late el interés y el objetivo de emular y mejorar las capacidades cognitivas humanas.

Y en una lectura reciente me he encontrado una comparativa seria entre la cognición humana y la inteligencia artificial y que quiero traer a colación en este post.

 

Las siete diferencias entre cognición humana y modelos generativos 


Se trata de la comparativa que hace al final del libro 'Generative AI with LangChain' su autor, Ben Auffart. Estrictamente hablando, lo que nos presenta son las fortalezas y debilidades fundamentales de los modelos generativos, en su estado actual, frente a esa cognición humana.

El autor presenta esa comparativa a modo de tabla y bastante escueta en cuanto a explicación (realmente sólo unos titulares), pero yo la voy a presentar como 'bullets' y, aunque soy fiel a lo que el autor indica, añadiré algún leve comentario de mi cosecha y me extenderé ligeramente, sólo ligeramente, más. 

Las siete diferencias, o mejor los siete aspectos en que Auffarth se centra para comparar modelos comparativos y cognición humana, son los siguientes:


  • Fluidez: los modelos generativos, como fácilmente podemos comprobar, son ya altamente elocuentes pero esa elocuencia y su eventual acierto lo que realmente refleja son patrones lingüísticos identificados durante su entrenamiento. En el caso de la comunicación humana, sin embargo, lo que mas la diferencia de la creada artificialmente es su relevancia contextual y cómo extrae y crea significado a partir de su conocimiento del mundo lo que en cierto modo conecta con el famoso sentido común, del cuál es tan difícil dotar a las máquinas, o de la problemática del 'grounding', el anclaje del significado en la experiencia e interacción con el mundo exterior, que ya hemos mencionado en este blog en más de una ocasión hablando de robótica cognitiva.  

  • Conocimiento: en realidad los modelos generativos no tienen un auténtico conocimiento sino que realizan una síntesis estadística sin ese 'grounding' que mencionaba en el punto anterior. Sin embargo, el conocimiento humano se basa en el proceso de aprendizaje, un proceso donde juega un papel muy importante, precisamente, la experiencia

  • Creatividad: Los modelos generativos exhiben una cierta 'imaginación' pero siempre dentro de los límites de la distribución probabilística adquirida durante el entrenamiento. Sin embargo la creatividad humana, que en el fondo creo que aún no entendemos bien, exhibe una originalidad que parece reflejar la personalidad y el talento individuales.

  • Precisión factual: Aunque se trabaja en su mejora, tanto mediante innovaciones algorítmicas y de entrenamiento como por el uso de técnicas de RAG ('Retrieval Augmented Generation') que comentábamos en un post reciente, lo cierto es que los modelos generativos aún producen las famosas 'alucinaciones' (resultados de aparente coherencia superficial pero erróneos, a veces gravemente, en datos o en realidad). Esas alucinaciones suelen ser un reflejo de sesgos o carencias en los datos o proceso de entrenamiento.  Por el contrario, el ser humano tiende a alinearse con la verdad y la realidad física.

  • Razonamiento: la lógica de un sistema generativo está atada, de nuevo, a los datos de entrenamiento mientras que un ser humano es capaz de aplicar heurísticas e intuición más allá de la formación y educación (el propio entrenamiento del ser humano) que haya recibido.

  • Sesgo: los modelos generativos, en realidad cualquier modelo de machine learning, propaga de forma sistemática los sesgos que existan en sus datos de entrenamiento. Sin embargo, el ser humano, en ocasiones, hay que reconocer que no siempre, es capaz de identificar y corregir esos sesgos.

  • Trasparencia: los modelos generativos pueden aportar ciertas 'pistas' sobre su razonamiento, usando técnicas de 'prompt engineering' como el conocido 'chain-of-thought' aunque hay que advertir que pese a que las 'explicaciones' que proporcione el modelo pueden ayudar a entender a un ser humano cómo razonar frente al problema planteado a un modelo, no se corresponden realmente a 'cómo piensa' ese mismo modelo. En el caso de la cognición humana sí que puede aportar explicaciones de la manera real de razonar.


Conclusiones


Está claro que, a pesar de los grandes avances en inteligencia artificial, y los sorprendentes resultados de los dos o tres últimos años en el campo de los modelos generativos, la inteligencia artificial, aunque ya supera al ser humano en no pocos aspectos, aún está lejos de igualar, al menos de manera general, la cognición humana y existen numerosos aspectos en que la cognición humana es diferente, y en general superior, a la que exhibe la inteligencia artificial.