jueves, 15 de octubre de 2026

La hora de los grafos: agentes y conocimiento

Los grafos son un recurso matemático e informático descritos y utilizados desde hace muchísimos años, tanto como forma de recoger información y ontologías, como para el guiado de ciertos algoritmos.

Los grafos han estado ahí y se han seguido explicando y utilizando durante años y años y así hasta hasta la actualidad.

Pero en estos momentos están ganando una enorme relevancia en lo que viene a ser la punta de lanza tecnológica actual: los agentes de inteligencia artificial. 


Grafos: recordatorio muy básico


Aunque asumo que la mayoría de los lectores de este blog conocen, al menos aproximadamente, lo que es un grafo, lo recuerdo brevemente: un grafo es un formalismo para representar entidades o conceptos y las relaciones entre ellos.

Dibujo de un grafo no dirigido.
Fuente: Wikimedia
Desde un punto de vista visual, los grafos constan de unos nodos que representan las entidades o conceptos y que se suelen representar como círculos, y de unos arcos o aristas ('edges') que representan las relaciones entre los nodos y que se suelen representar como líneas.

Existen grafos dirigidos en que existe alguna forma de orden en las relaciones entre los nodos, y grafos no dirigidos en que no existe ningún tipo de orden en las relaciones. A la hora de representarlos gráficamente, los arcos terminan en una punta de flecha indicando la dirección.

 

Las memorias externas en agentes y chatbots generativos


Las aplicaciones basadas en grandes modelos de lenguaje, y particularmente los agentes de IA, deben utilizar mecanismos para volcar y/o recuperar información: las memorias. Esa información puede ser generada por el propio agente durante su trabajo (y en ese sentido, el nombre de memoria alcanza su plena significación) o, en otros casos, es información externa, una base de conocimiento o fuente de conocimiento.

Este tipo de aplicaciones utilizan varios mecanismos técnicos para implementar esas memorias (algo de lo que quizá valga la pena que comente en este blog) pero, cuando hablamos de bases de conocimiento, la técnica reina es RAG ('Retrieval Augmented Generation').


Bases de datos vectoriales y RAG


RAG utiliza dos elementos técnicos relevantes.

Por un lado, tenemos una capacidad fundamental de los sistemas generativos, que consiste en generar para tokens, documentos, etcétera lo que se denominan 'embeddings', unos vectores de alta dimensión que, de manera indirecta, contienen información semántica. Digo indirecta porque no es que marquen realmente un significado estricto y 'anclado ('grounded'), pero sí la cercanía o lejanía semántica entre aquellos conceptos que representan.

Por otro, tenemos las bases de datos vectoriales un tipo de base de datos NoSQL especializada en trabajar, precisamente, con vectores, y que es donde se almacenan y recuperan los 'embeddings'.

Cuando queremos añadir, por ejemplo, un documento PDF a una base de conocimiento, éste se trocea (en los denominados 'chunks') y para cada 'chunk' se genera su 'embedding'. Estos 'embedings' se almacenan en una base de datos vectorial.

Cuando queremos recuperar conocimiento ligado a alguna temática (con frecuencia expresada como 'prompt'), creamos un 'embedding' que represente ese 'prompt' y buscamos en la base de datos vectoriales, los vectores que sean 'cercanos semánticamente'. Para cada uno de esos 'embeddings' recuperados se accede a su 'chunk' y ¡voila! ya tenemos conocimiento relacionado con lo que nos interesa


Las limitaciones de RAG


En el libro 'Agentic GraphRAG: Integrating Knowledge Graphs, Reasoning, and Agency for Enterprise AI' de Anthony Alcaraz y Sam Julien se nos explica que RAG funciona muy bien para recuperación de información ligada a una consulta pero que, sin embargo, no funciona tan bien cuando de lo que se trata es de trabajar con razonamientos complejos y datos densos o especializados.

Y, precisamente, ese razonamiento complejo es lo que esperamos que hagan muchos agentes.

Los autores, concretando más, nos señalan las siguientes limitaciones de RAG:

  • Gaps semánticos: En ocasiones la representación semántica mediante 'embeddings' de un texto (un 'chunk') no siempre está suficientemente cercana al 'embedding' de la consulta pese a que, objetivamente, el verdadero conocimiento necesario sí está en el texto original

  • Compromisos de granularidad: Es necesario adoptar compromisos entre la cantidad de información o el nivel de información que representamos en un 'embedding', típicamente, si actuar en el nivel documento completo o en el nivel 'chunk' e, incluso, el tamaño de esos 'chunks'. Según la decisión de granularidad adoptada, el comportamiento puede resultar mejor o no en ciertos casos.

  • Limitaciones en razonamiento: El razonamiento suele requerir coordinar varios conocimientos o contenidos que pueden estar contenidos en 'chunks' diferentes y representados por 'embedding' diferentes. Eso complica el acceso al conocimiento necesario y no siempre funciona correctamente.

  • Amnesia contextual: En general la representación mediante vectores es estática y sin ningún tipo de referencia temporal. Los 'embeddings' están congelados y si se produce una evolución, pero los vectores originales siguen en la base de datos, el agente puede encontrarse con información obsoleta.

  • Gap de asociatividad: Los sistemas RAG no son capaces de expresar relaciones transitivas o construir cadenas lógicas cuando enlaza conocimientos contenidos en 'chunks' diferentes.


Los grafos como alternativa


Ante este panorama, están ganando fuerza los grafos, y en concreto los denominados grafos de conocimiento ('Knowledge Graphs'), como alternativa o complemento de los sistemas RAG.

Los grafos son capaces de aportar esa interrelación entre conceptos, esas relaciones transitivas, esa perspectiva evolutiva o temporal, etc que los agentes necesitan y que no encuentran bien resueltas en RAG. 

Por ello, al auge de los agentes, le está acompañando el auge de los grafos de conocimiento. No voy a profundizar más ahora pero, en próximos posts, hablaré algo más de estos grafos de conocimiento y su uso en agentes y aplicaciones basadas en modelos frontera.


Los grafos como representación del conocimiento


No me resisto, no obstante, antes de finalizar el artículo, a hacer referencia a mi artículo anterior 'El retorno de la representación de conocimiento' en que hablaba de cómo una disciplina muy presente en la inteligencia artificial clásica, es decir en la inteligencia artificial simbólica, como era la representación del conocimiento, se había perdido con la expansión de la inteligencia artificial basada en datos ('machine learning') y especialmente el enfoque conexionista ('deep learning') estaba experimentando un cierto resurgir.

Pues bien, quizá el exponente más relevante, aunque aún emergente, de ese retorno de la representación del conocimiento, sean estos grafos, como de alguna forma ya transmiten en su propio nombre: grafos de conocimiento. 


Conclusiones


La explosión de la inteligencia artificial agéntica, está implicando el recuperar planteamientos anteriores para dotarles de conocimiento y contexto. Eso supone el retorno de la representación del conocimiento y, en particular, al auge de los gafos de conocimiento. 


miércoles, 7 de octubre de 2026

El retorno de la representación del conocimiento

Cuando la inteligencia artificial era aún una disciplina bastante joven, existía una especie de subdisciplina que era capital en aquellos tiempos y que se presentaba como anexo necesario en cualquier discurso o estudio sobre la inteligencia artificial: la representación del conocimiento ('knowledge representation').

Sin embargo, con el auge del enfoque basado en datos, el 'machine learning', que ahora domina, especialmente bajo la variante 'deep learning', en la inteligencia artificial moderna esta subdisciplina de la representación del conocimiento, desapareció casi completamente de la práctica de la inteligencia artificial y absolutamente del discurso público.

Y, sin embargo, de forma quizá inesperada y sin meter ningún ruido, me da la sensación de que la representación de conocimiento vuelve a ser importante y seguramente lo va a ser más. No se la denomina así (al menos yo no he escuchado ni leído recientemente el término 'representación del conocimiento') pero está cada vez más presente y el auge de los agentes parece impulsarla.


Representación del conocimiento


Repasando una referencia muy antigua de un libro que en seguida citaré, podemos entender la representación del conocimiento como:


una serie de formalismos capaces de recoger de forma estructurada información acerca del mundo.


Esa información la queremos no como un mero almacén, sino como una base en que se apoya la inferencia en los algoritmos de la inteligencia artificial.


Mis primeros encuentros con la representación del conocimiento


Decía que en los primeros tiempos de la inteligencia artificial el tema de la representación del conocimiento era fundamental. Y lo ilustro con dos detalles anecdóticos.

La primera formación que recibí sobre inteligencia artificial tuvo lugar, nada más y nada menos, que en 1987, al apuntarme a un curso voluntario sobre el lenguaje LISP (entonces muy en boga en el campo de la inteligencia artificial) que ofreció la entonces ETS Ingenieros Industriales de Gijón, hoy rebautizada como Escuela Politénica de Ingeniería de Gijón donde yo cursaba mis estudios de ingeniería industrial. Y ¿Cómo se titulaba el curso? Pues su título era 'Introducción al LISP y a la representación del conocimiento'. Realmente, el curso fue sobre LISP sin más...pero es muy sintomático que en el título apareciese el término 'representación del conocimiento'.

Unos pocos años más tarde, ya en Madrid, y haciendo cursos de doctorado en la Escuela de Ingenieros Industriales de Madrid dentro del marco de un programa titulado 'Control de procesos e inteligencia artificial', adquirí algunos de los libros que constaban en la bibliografía recomendada. 

El más importante era la segunda edición de 'Inteligencia Artificial' de Elaine Rich y Kevin Knight, un libro de cerca de setecientas páginas que me devoré y que, de las tres partes que constaba, una (de algo más de doscientas páginas páginas) estaba dedicada a la representación del conocimiento. 

La otra referencia está completamente dedicada a la representación del conocimiento: el libro 'Knowledge representation' de Han Reichgelt y es la fuente de donde he extraído una especie de definición del campo de la representación del conocimiento.


La representación del conocimiento tradicional


Es importante entender que en la 'era dorada' de la representación del conocimiento, estábamos inmersos en la denominada inteligencia artificial simbólica, muy orientada a hacia la aplicación de la lógica trabajando sobre representaciones de aspectos del mundo (los símbolos). 

De esta época, quizá  la más alta realización de la inteligencia artificial fuesen los sistemas expertos, unas soluciones que recogían en una denominada base de conocimiento, los datos objetivos y las heurísticas fruto de la experiencia de expertos humanos en el tratamiento de un cierto problema. A partir de esa base de conocimiento, y ante una situación nueva, el motor de inferencia aplicaba reglas que solían encadenar heurísticas y que, eventualmente, resolvían el problema. Evidentemente, para conformar esas bases de conocimiento había que decidir cómo representar el conocimiento, de manera que fuese fiel a la realidad y que, además, se pudiese utilizar de manera eficaz en el proceso de inferencia.

En aquella época, las técnicas fundamentales de representación del conocimiento eran cosas como la lógica de predicados ('predicate logic'), reglas de producción ('production rules'), las redes semánticas ('semantic nets') o los marcos ('frames').


El machine learning y el conocimiento implícito


Y entonces llegó el auge del 'machine learning'.

Ante la dificultad (por desconocimiento o por escala del problema) para conseguir de los humanos un buen conocimiento, no solo fáctico o descriptivo, sino también operativo (es decir, realización de inferencias o resolución de problemas) el campo de la inteligencia artificial viró hacia los enfoques basados en datos.

En estos enfoques (el 'machine learning') renunciamos a proporcionarle a los algoritmos el conocimiento explícito y, a cambio, le enseñamos cómo debe aprender a adquirir ese conocimiento (algoritmos de aprendizaje) y le proporcionamos montañas de datos para que, a partir de ellos, detecte los patrones subyacentes, aprenda y adquiera el conocimiento.

Al renunciar a proporcionarle al algoritmo el conocimiento explícito, estamos eliminando la representación del conocimiento. Y el algoritmo, una vez entrenado, tampoco nos proporciona ese conocimiento explícito en forma de representación del conocimiento.

El conocimiento, que de alguna manera sigue estando presente, lo está de manera implícita, diluida entre los miles o millones de parámetros del modelo, pero no lo representamos explícitamente y, desde luego, no usamos símbolos. Es la desaparición de la representación del conocimiento (que, por cierto, está en la raíz de muchas de las problemáticas de explicabilidad de los algoritmos).

Quizá, en nichos concretos todavía se mantuvieran algunos aspectos de la representación del conocimiento. Así, por ejemplo, las ontologías del lenguaje humano, usadas en el procesamiento del lenguaje natural (NLP, 'Natural Language Processing') en tareas como la desambiguación del sentido de palabras (WSD, 'Word Sense Disambiguation') puede considerarse una forma de representación del conocimiento.


El conocimiento en los grandes modelos de lenguaje


Y llegamos a los grandes modelos de lenguaje que dominan el panorama de la inteligencia artificial actual.

Los grandes modelos de lenguaje (LLM, 'Large Language Model') están conformados todos ellos por redes neuronales y, por tanto, se realizan con base en 'deep learning', es decir, una forma particular de 'machine learning'. Y, por tanto, no utilizan una representación de conocimiento explícita. El conocimiento está, de nuevo, diluido entre sus millones de parámetros.

Suelo insistir en clases y charlas en que sí tienen conocimiento. Tienen conocimiento estructural (morfológico y semántico) del lenguaje humano, tienen conocimiento semántico y tienen conocimiento del mundo, todo ello, en gran medida, debido a la magia de los 'embeddings' y a un entrenamiento absolutamente masivo en datos. Pero, de nuevo, se trata de un conocimiento implícito, indirecto, no representado.

Y, sin embargo...


Las nuevas representaciones del conocimiento


Y, sin embargo, cada vez más las aplicaciones basadas en grandes modelos de lenguaje, comenzando por los copilotos y chatbots generativos y siguiendo por los agentes, incorporan mecanismos que creo que pueden entenderse como una nueva forma de representación del conocimiento.

Empezando por lo más sencillo, y quizá todavía algo discutible, sabemos que chatbots generativos como ChatGPT o Claude, no responde únicamente al 'prompt' del usuario sino que incorporan información de contexto. Un contexto que proviene, entre otras cosas, de las preguntas y respuestas anteriores de la conversación.  Pues bien, aunque bastante  poco estructurado, y representado de manera fundamentalmente textual, ese contexto incorpora una especie de conocimiento de corto plazo. Y a esto se une, por ejemplo, el mecanismo de memorias en que se resumen elementos de conocimiento que el chatbot ha adquirido sobre el usuario. De nuevo, es un conocimiento expresado de forma muy básica, mediante texto, pero conocimiento al fin y al cabo y representado de manera explícita.

Igualmente, ahora que se han puesto de moda las skills, podemos decir que las skills, una especie de prompts reutilizables que marcan cómo realizar una tarea, no dejan de ser una forma de conocimiento, de carácter fundamentalmente procedimental eso si, que aporta un usuario para indicar cómo realizar una labor concreta.

En el caso de usar RAG ('Retrieval Augmented Generatión'), creamos unos almacenes vectoriales en que, precisamente, introducimos conocimiento, normalmente a partir de documentos. De nuevo, la representación es sencilla: 'chunks' de texto (en que hemos subdidivido, por ejemplo, un documento PDF) acompañado de su vector 'embedding' que posibilita la búsqueda semántica.  De hecho, podemos hablar con bastante propiedad de que esos almacenes vectoriales actúan como bases de conocimiento, por lo que esos 'chunks' de texto con su embedding correspondiente no deja de ser otra forma no muy estructurada de representar el conocimiento.

Pero quizá, lo que más nos retorna a la disciplina de la representación del conocimiento, y lo que más me ha inspirado para escribir este post, es el auge de los grafos, especialmente en el campo de los agentes. No voy a profundizar aquí en ello porque próximamente publicaré varios posts sobre grafos pero, es una técnica en auge y que proporciona un conocimiento, bastante estructurado y, de hecho, se suele hablar de grafos de conocimiento ('knowledge graphs').

Aunque creo que mecanismos como el contexto, las memorias, las skills o los almacenes vectoriales de RAG pueden ser consideradas formas de representación de conocimiento, entendería que hubiese quien no los considerase como tales.

Pero, en el caso de los grafos, veo clarísimo que es una forma de representación de conocimiento 'de primera división', de carácter simbólico y en el mismo estilo que las técnicas que dominaron la representación del conocimiento cuando la inteligencia artificial era, precisamente, simbólica. 

Y si los agentes son un tema en fuerte auge, y los grafos son un tema también en auge que los acompaña, creo que, en efecto, asistimos al retorno de la representación del conocimiento.


Conclusiones


Acompañando a la antigua inteligencia artificial simbólica, existían, y eran muy importantes, las técnicas de la denominada representación del conocimiento. Con el auge del machine learning y el 'deep learning' esa representación del conocimiento prácticamente desapareció, quedando todo el conocimiento implícito en los parámetros del modelo, pero sin representación explícita.

Si embargo, las modernas aplicaciones basadas en grandes modelos de lenguaje, particularmente los chatbots generativos y, sobre todo, los agentes,  incorporan técnicas como el contexto, las memorias o los almacenes vectoriales que, aunque de manera algo desestructurada , se las puede  considerar formas de representación de conocimiento.

Y, sobre todo, la eclosión de los grafos de conocimiento alrededor de los agentes, suponen, creo, el espaldarazo definitivo a ese retorno de la representación el conocimiento.


lunes, 5 de octubre de 2026

Cómo hacemos que un modelo razone (y VI): destilado

Con este post pongo fin a la serie de artículos dedicados a ver los mecanismos que se utilizan para convertir un gran modelo de lenguaje (LLM, 'Large Language Model') en un modelo razonador (LRM, 'Large Reasoning Model').

Y todo ello siguiendo, como en el caso de los post anteriores, el hilo argumental del libro  'Building a resoning model (from scratch)' de Sebastian Raschka.

En esta ocasión, vamos a hablar del destilado ('distillation') y añadir alguna otra consideración adicional.


Un breve recordatorio 


Muy brevemente recordar que en posts anteriores hablamos de tres tipos de estrategias. 

La primera estrategia suponía utilizar técnicas fundamentalmente de prompting sin re-entrenar el modelo. Hablamos del uso de la cadena de pensamiento (CoT, 'Chain-Of-Thought') y la autoconsistencia ('self-consistency'). Y también hablamos del auto-refinamiento ('self-refinement') en que, de alguna forma, el modelo dialoga consigo mismo. En estos métodos, el modelo en sí mismo no cambia (su arquitectura y parámetros no se modifican) y, simplemente, lo guiamos desde, digamos, el exterior. Eso sí, para ello vamos a necesitar de un notablemente mayor esfuerzo computacional. Uniendo la idea de que estas técnicas se utilizan en tiempo de inferencia (no de entrenamiento) y de que exigen mayor esfuerzo computacional, hablábamos de métodos de escalado en tiempo de inferencia ('inference-time scaling').

La segunda estrategia sí que re-entrena el modelo (interviene durante el 'fine-tuning') y aplica aprendizaje por refuerzo. Vimos dos alternativas: el uso de recompensas verificables (RLVR, 'Reinforcement Learning with Verifiable Rewards') en que, de forma objetiva se puede deducir la recompensa a dar al modelo ante una respuesta) y el uso de realimentación por parte de anotadores humanos (RLHF, 'Reinforcement Learning with Human Feedback').


Destilado


Y nos toca ahora ver la tercera estrategia: el destilado ('distillation').

Como también ocurre con todas las técnicas vistas hasta ahora, no se trata de algo que se utilice específicamente para conseguir modelos razonadores, sino que es una estrategia de entrenamiento utilizada ya en otros ámbitos (por ejemplo, para conseguir modelos especializados más compactos).

En el destilado se utilizan dos modelos: un gran modelo ya entrenado que actúa como maestro y otro modelo (generalmente menor) que actúa como estudiante y que es el que realmente queremos entrenar. Es una técnica que, más allá de los modelos razonadores se utiliza, precisamente, para absorber la parte principal del conocimiento de un gran modelo en uno bastante más pequeño y de menor exigencia computacional (y, por tanto, menor coste en inferencia).

La idea es que ante una misma pregunta, al modelo estudiante se le muestra la respuesta dada por el modelo maestro y eso sirve como feedback para el entrenamiento.

En el caso de usar el destilado para conseguir un modelo razonador, con frecuencia se trabaja, no sólo con la respuesta final del modelo maestros sino también las trazas, es decir unos resultados intermedios que, de alguna manera, muestran cómo ha razonado el modelo maestro.


Tipos de destilado


Lo anterior lleva a dos estrategias básicas de destilado.

En el destilado duro ('hard distillation'), se entrena al estudiante sólo con el resultado (la respuesta) ofrecido por el modelo maestro.

En el destilado blando ('soft distillation') se entrena al modelo estudiante con resultados intermedios e internos del modelo maestro. En concreto, con las distribuciones de probabilidad asignadas a los tokens del catalogo ante una petición concreta.

Como suele ocurrir, también existen estrategias híbridas que mezclan ambas opciones.


Esto es casi todo


Y esto todo lo que quería contar sobre la conversión de grandes modelos de lenguaje en modelos razonadores. Bueno, casi todo. Quería antes de cerrar este post y esta serie hacer dos muy breves consideraciones.


Antes de acabar: una pieza de la que no hemos hablado


La primera tiene que ver con los datos de entrenamiento, para las dos últimas estrategias que suponen un 'fine tunning' del modelo y, por tanto, un entrenamiento. 

Parece lógico, aunque no se ha mencionado hasta ahora, que debemos disponer de datos de entrenamiento diseñados específicamente para forzar un razonamiento: problemas matemáticos, lógicos o complejos de alguna manera.

En la referencia bibliográfica que he empleado, menciona con frecuencia, por ejemplo, el banco de datos MATH-500 que, como insinúa su nombre, contiene 500 problemas de naturaleza matemática habitualmente usados en el entrenamiento de modelos razonadores y que podemos encontrar, por ejemplo, en Hugging Face.


Una pequeña reserva


La segunda consideración es sólo una impresión o intuición personal y sin ninguna justificación teórica, más que esa intuición.

Se trata de que me ha sorprendido que, como comentaba más arriba, realmente ninguna técnica usada es realmente específica ni de la inferencia ni del entrenamiento de modelos razonadores y pueden usarse (y se usan) con modelos no razonadores. Tampoco parece (al menos yo no he visto nada al respecto) que haya ningún cambio en la arquitectura interna de estos modelos.

Y, aunque eso seguramente sea bueno y una demostración de la potencia y versatilidad de los grandes modelos de lenguaje, en el fondo me quedo preguntándome ¿De verdad eso es todo? ¿No hay nada más?

Aparentemente la respuesta es que no, pero seguiré leyendo e investigando a ver qué encuentro. Si aparece algo nuevo, puede que reabra la serie de posts para comentarlo.


Conclusiones


Y con esto cerramos, salvo sorpresas, la serie dedicada a ver las técnicas para convertir un gran modelo de lenguaje en un modelo razonador. Hemos visto tres estrategias y cinco técnicas a lo largo de seis posts.

Aunque vale la pena seguir observando la evolución a nivel de arquitectura y entrenamiento de los modelos razonadores, al menos ya tenemos una base para saber mejor cómo se crean.


Artículos de este blog relacionados



viernes, 2 de octubre de 2026

Los agentes IA y la delegación cognitiva

Hace unos días publicaba en este blog un post basado en la lectura del paper  es 'Thinking—Fast, Slow, and Artificial: How AI is Reshaping Human Reasoning and the Rise of Cognitive Surrender' escrito por Steven D. Shaw y Gideon Nave de Wharton.

El post, que titulé 'La inteligencia artificial y la rendición cognitiva', se centraba en el fenómeno de la rendición cognitiva ('cognitive surrender'), pero también mencionaba otro fenómeno, u otro comportamiento: la delegación cognitiva ('cognitive offloading') que también podríamos traducir como descarga cognitiva.

En este nuevo post me voy a fijar en ese segundo fenómeno, la delegación cognitiva. Y lo haré para resaltar un hecho que me ha llamado la atención: el uso de la delegación cognitiva por parte de las aplicaciones basadas en modelos generativos en general, y de los famosos agentes IA en particular.


La delegación cognitiva


El concepto de delegación cognitiva proviene del campo de la psicología y hace referencia al uso de herramientas externas para reducir nuestro esfuerzo cognitivo. Con mucha frecuencia la usamos como ayuda para recordar, pero también se extiende a la ayuda en otras tareas cognitivas como calcular o decidir, por ejemplo. Aunque cada vez se habla más de este fenómeno ligado al uso de herramientas digitales y especialmente de la inteligencia artificial, en realidad es algo natural y que hacemos desde antes de la existencia de herramientas digitales.

Si hacemos una lista de la compra para ayudarnos a recordar lo que tenemos que adquirir en el supermercado, estamos haciendo delegación cognitiva para evitar tener que recordar nosotros lo que teníamos que comprar. Si utilizamos una calculadora para hacer unas cuentas en lugar de hacerlo mentalmente, estamos aplicando delegación cognitiva.

Ya en el ámbito digital, pero en casos muy cotidianos, si utilizamos la lista de contactos de nuestro móvil para marcar un número, estamos haciendo delegación cognitiva, evitando tener que recordar nosotros ese número. Y si utilizamos el GPS y Google Maps para que nos marque el camino, estamos haciendo descarga cognitiva, evitando tener que recordar nosotros ese camino u orientarnos mientras conducimos.


Agentes


Los agentes IA son una forma de aplicación basada en un gran modelo de lenguaje y, en concreto un gran modelo razonador. Ese modelo razonador les dota de 'inteligencia' y de 'conocimiento' y, salvando las distancias, jugaría un rol equivalente al cerebro de las personas.

Pero los agentes interactúan con su entorno para ser verdaderos agentes (para hacer). Y para ello se rodean de las llamadas herramientas 'tools' que, con mucha frecuencia vía conectores o servidores MCP les permite interactuar con todo tipo de aplicaciones y servicios externos.


Mecanismos de delegación


Y creo identificar un paralelismo entre cómo estamos construyendo aplicaciones basadas en grandes modelos de lenguaje (como son los agentes, pero como son también los chatbots generativos como ChatGPT o Claude AI) y este mecanismo de delegación cognitiva. 

Así, si pensamos en el 'recuerdo', este tipo de aplicaciones incluyen muchos elementos auxiliares para que su 'cerebro' no tenga que recordar. El propio y famoso contexto no deja de ser una forma de memoria externalizada, al menos externa al modelo de lenguaje (aunque realmente no al chatbot o al agente).

En la misma línea podríamos situar las denominadas memorias (cosas que el chatbot o agente aprende sobre el usuario) o los almacenes vectoriales que sirven de repositorio sobre el que actúa el mecanismo RAG ('Retrieval-Augmented Generation').

Los mecanismos que menciono arriba están 'embebidos' dentro de la aplicación, y quizá haya quien considere que realmente no tiene la característica de externalización propia de la delegación cognitiva.

Pero el uso de las 'tools' abre posibilidades adicionales de delegación, en realidad en unas posibilidades inmensas. Así, abre el paso, por ejemplo, a descargar el recuerdo de datos en bases de datos externas o a invocar a una calculadora externa para un cálculo matemático o, en el fondo, a casi cualquier aplicación que pueda realizar una tarea, en este caso de naturaleza cognitiva, descargando así de ese 'esfuerzo cognitivo' al modelo de lenguaje.


Biomímesis y patrones cognitivos


No sé si me he dejado llevar por la imaginación (la verdad es que creo que no), pero aprecio que, de una forma probablemente no intencionada sino guiada por necesidades funcionales y técnicas, en la arquitectura de aplicaciones basadas en IA, en particular los agentes, les estamos dotando de potentes mecanismos de delegación cognitiva.

Y dado que, aunque presuntamente de forma no intencionada, estamos imitando, uno de los mecanismos cognitivos del cerebro humano, la delegación cognitiva, podríamos, quizá, hablar de una forma de biomímesis en este caso de naturaleza cognitiva o de la existencia de unos patrones (casi unas buenas prácticas) de actividad cognitiva.

Y si estos patrones que estamos introduciendo en los agentes provienen de la naturaleza, o están expresados en la naturaleza, en este caso nuestra propia naturaleza cognitiva, seguramente eso sea señal de que estamos adoptando un buen diseño en las arquitectura de los agentes. 


Conclusiones


Las aplicaciones basadas en grandes modelos de lenguaje, particularmente el caso de los agentes, parecen imitar, probablemente de manera no intencionada, un mecanismo absolutamente natural en la cognición humana como es la delegación cognitiva. Eso pudiera ser, eventualmente, una buena señal, un indicador de un buen diseño.


jueves, 1 de octubre de 2026

Cómo hacemos que un modelo razone (V): aprendizaje por refuerzo con feedback humano (RLHF)

Abordamos con ésta, la quinta entrega de la serie de posts que estoy publicando acerca de los mecanismos para conseguir que un gran modelo de lenguaje (LLM, 'Large Language Model') se convierta en un modelo razonador (LRM, 'Large Reasoning Model') y todo ello apoyándome en la estructura y aportaciones del libro 'Building a resoning model (from scratch)' de Sebastian Raschka.

En el post anterior anuncié que éste sería el último... pero me equivoqué: éste será el penúltimo y aún habrá, por tanto, otro post en esta serie


Dónde nos habíamos quedado


En los posts anteriores habíamos visto, en primer lugar, algunos métodos que realmente no alteraban en modelo en sí, es decir no modifican ni su arquitectura ni sus parámetros (sus pesos). En el fondo, 'el modelo se queda como está' y lo que hacemos es hacerle razonar mediante técnicas de 'prompting', en concreto, la cadena de pensamiento (CoT, 'Chain-Of-Thought') y la autoconsistencia ('self-consistency'). 

Y también vimos el auto-refinamiento en que  de alguna forma el modelo establece un diálogo consigo mismo y se proporciona 'feedback' sobre las respuestas que ha aportado.

Estos tres métodos se encuadraban dentro de lo que el autor denomina escalado en tiempo de inferencia ('inference-time scaling') porque, por un lado, se aplican ya en producción (en inferencia) y no durante el entrenamiento y, por otro, suponen un mayor esfuerzo computacional.

El último de los mecanismos que habíamos revisado se aplicaba ya en tiempo de entrenamiento y sí que modifica el modelo en sí mismo (sus pesos). Se trataba de un método, aprendizaje por refuerzo con recompensas verificables (RLVR, 'Reinforcement Learning with Verifiable Rewards'), que aplicaba aprendizaje por refuerzo y en el que la recompensa que se ofrece al modelo (la indicación de lo bien o mal que lo ha hecho) se basa en alguna de forma de reglas claramente calculables o verificables (por ejemplo mediante la aplicación de una calculadora para un problema matemático simple).

Vamos ahora otra variante de aprendizaje por refuerzo. 


El aprendizaje por refuerzo con feedback humano (RLHF)


Esta variante es realmente muy popular y, de hecho, se mencionó frecuentemente ya desde el momento del lanzamiento de ChatGPT cuando la propia OpenAI explicaba cómo había entrenado su modelo GPT-3.

Aunque RLHF se nos propone como una técnica para conseguir un modelo razonador, en realidad se utiliza con frecuencia para entrenar modelos de lenguaje no razonadores. De hecho, GPT-3, por ejemplo, no era un modelo razonador.

El aprendizaje por refuerzo con feedback humano (RLHF, 'Reinforcement Learning with Human Feedback') se definió originalmente (o explicó, mejor dicho) en el paper 'Training language models to follow instructions with human feedback'.

La idea del aprendizaje con feedback humano es que sea una persona quien indique cómo de buena o mala es la respuesta del modelo y, aplicando algún algoritmo sobre esta valoración, se actualice la política que se aplica (en el fondo el propio modelo) de una manera que recuerda de alguna forma al etiquetado en aprendizaje supervisado.

Sin embargo, en este caso, con frecuencia el feedback humano se recoge de una manera 'muy astuta': como supongo que todos hemos tenido ocasión de experimentar con ChatGPT: de vez en cuando te da dos opciones y te pide que elijas una como la más adecuada. Bueno, pues eso es feedback humano y digo que es 'astuta' porque nos recluta a todos los usuarios para dar ese feedback.

En RLHF hay un doble entrenamiento: primero se entrena un modelo que proporciona las recompensas en función del feedback humano y, con ese modelo ya entrenado, se realiza el entrenamiento del modelo propiamente dicho. Es en el primer entrenamiento, el entrenamiento del modelo que genera las recompensas, donde realmente se utiliza el feedback humano. A partir de ahí ese modelo generador de recompensas se utiliza para entrenar al modelo objetivo ya sin intervención humana.

Un tipo de algoritmo que se utiliza mucho en RLHF es PPO ('Proximal Policy Optimization') que, a partir de las recompensas generadas por el modelo generador de recompensas, 'decide' cómo actualizar el modelo que está siendo entrenado.


PPO ('Proximal Policy Optimization')


Lo que busca PPO es una forma de actualizar políticas, digamos, 'poco a poco', evitando cambios bruscos que puedan perjudicar el aprendizaje. En este caso, cuando hablamos de políticas, estamos hablando en el fondo del propio modelo en entrenamiento.

PPO utiliza el famoso descenso de gradiente ('Gradient Descent') para calcular cómo ajustar los pesos en la nueva política (en el modelo). Pero, para evitar los cambios bruscos, lo que hace es comparar la probabilidad de una respuesta con la política nueva (el modelo eventualmente actualizado) frente a la probabilidad con la política antigua (el modelo sin actualizar) calculando un 'ratio' de la siguiente forma:


r = probabilidad con política nueva (modelo modificado) / probabilidad con política antigua (modelo sin modificar)


Si ese 'ratio' se aleja mucho de 1 (es decir, los resultados de ambas políticas son muy diferentes) aplica lo que se denomina 'clipping' (recorte) y no tiene en cuenta el cambio. Esta forma de actuar es lo que evita cambios bruscos y lo que aporta la primera palabra del nombre del algoritmo: 'proximal' (próximo) 

Se trata de un tipo de algoritmos muy estables y muy sencillos de implementar, de ahí su popularidad. Además, funciona muy bien con ese tipo de acciones básicas como elegir simplemente entre dos opciones.


Conclusiones


Hemos visto una segunda forma de aprendizaje por refuerzo que se puede utilizar para el entrenamiento de grandes modelos de lenguaje a la hora de convertirlos en modelos razonadores. Una forma en que, además, nos apoyamos en la opinión de personas, de humanos. Se trata del el RLHF, es decir, el aprendizaje por refuerzo con 'feedback' humano, una forma de entrenamiento que se utiliza también en modelos no razonadores.


Artículos de este blog relacionados


lunes, 28 de septiembre de 2026

Cómo hacemos que un modelo razone (IV): aprendizaje por refuerzo basado en recompensas verificables (RLVR)

Con este post llegamos al cuarto de la serie dedicada a cómo conseguimos un modelo razonador a partir de un gran modelo de lenguaje siguiendo las aportaciones del libro 'Building a resoning model (from scratch)' de Sebastian Raschka.

En esta entrega, damos un viraje importante. 

En los tres posts anteriores vimos formas de conseguir que un modelo razone, pero sin cambiar el modelo en sí mismo, es decir, sin cambiar sus pesos o sus hiperparámetros. O dicho de otra manera, no reentrenamos al modelo sino que éste continua siendo el que era antes de que intentásemos que razonase.

Sin embargo, en este artículo y el siguiente (que cerrará la serie), vamos a ver dos técnicas que sí reentrenan el modelo (hacen lo que se conoce como 'fine tunning') y utilizan estrategias de aprendizaje por refuerzo.

Veamos.


La idea del 'fine-tunning'


Aunque asumo que parte de los lectores habituales de este blog ya conocen el significado del 'fine-utinning', y aunque, incluso, la recordé brevemente en el post que abría esta serie y en que hablaba de estrategias generales, vuelvo a aportar aquí unas pinceladas para refrescar conceptos y estar todos en la misma página, que se suele decir.

El ajuste fino o 'fine-tuning' es una forma de entrenamiento (o, más bien, una fase de entrenamiento) en que se parte de un modelo ya entrenado y se le somete a un segundo entrenamiento más acotado para especializarlo en un dominio concreto o una tarea concreta.

La idea es que el modelo de partida, mediante lo que se denomina el 'pre-entrenamiento', adquiere conocimientos digamos generales. Conocimientos sobre el lenguaje en general y sobre la vasta variedad del conocer humano. Se trata de un entrenamiento masivo, con una enorme cantidad de datos, un gasto computacional extraordinario y, por tanto, al alcance de muy pocas organizaciones.

El 'fine-tunning', por el contrario, no es de propósito general, sino específico y 'la gracia' que tiene es que con un conjunto relativamente reducido de datos de entrenamiento y un gasto computacional moderado o pequeño suele conseguir muy buenos resultados en esa tarea o dominio específico. Por tanto, está al alcance de muchas empresas y organizaciones.

Ese ajuste fino o 'fine-tunning' se ha realizado con frecuencia mediante aprendizaje supervisado pero, en lo que vamos a ver en este post y en el siguiente, se aplica el aprendizaje por refuerzo.


Aprendizaje por refuerzo


Hace ya casi año y medio dediqué en este blog una larga serie de artículos, bastante técnicos, eso sí, a hablar del aprendizaje por refuerzo ('reinforcement-learning'). Para el lector interesado, le remito al último post de la serie dedicado al meta aprendizaje y que contiene enlaces a todos los demás artículos de la serie.

Aquí sólo recordar las ideas de muy alto nivel.

El aprendizaje por refuerzo es como la tercera gran vía del aprendizaje en machine learning (acompañando al aprendizaje supervisado y ni supervisado) y que, de alguna forma, quiere imitar la forma en que normalmente parece que aprendemos los humanos y que es un poco por ensayo y error.

Durante el entrenamiento por refuerzo el modelo recibe una entrada, genera una salida y recibe una forma de 'feedback'  que le indica hasta qué punto lo está haciendo bien o mal. Suelo compararlo al juego del 'frio' o 'caliente'. Con base a ese 'feedback' (habitualmente denominado 'recompensa'), el modelo ajusta sus parámetros (típicamente los pesos de una red neuronal).

Se diferencia del aprendizaje supervisado es que, en el aprendizaje supervisado durante el entrenamiento se le dice al modelo cuál es la respuesta correcta, mientras que en el aprendizaje por refuerzo sólo se le da una indicación de lo bien o mal que lo hace, pero sin decirle cuál es la respuesta correcta.

Y se diferencia del aprendizaje no supervisado es que en éste, el no supervisado, el modelo debe descubrir patrones subyacentes en los datos sin ninguna forma de 'feedback' explícito, mientras que ya hemos visto que en aprendizaje por refuerzo sí hay feedback (la recompensa).


Modelos razonadores y aprendizaje por refuerzo basado en recompensas verificables (RLVR)


En la referencia que estamos usando, nos subdivide el uso de aprendizaje por refuerzo en dos variantes. La primera, y la que vamos a mencionar en este post, es la que utiliza recompensas verificables.

¿Qué significa eso?

Significa que existe alguna forma objetiva de saber qué resultado final debería haber aportado el modelo y esa respuesta objetivamente correcta se utiliza para el feedback, la recompensa, que, por tanto, es verificable de forma objetiva.

Una forma fácil de visualizarlo es tener en cuenta que en el entrenamiento de modelos razonadores se usan con mucha frecuencia problemas lógicos o matemáticos con una respuesta final muy clara (verificable). Por tanto, el mecanismo para producir la recompensa que recibe el modelo podría llegar a ser el algún caso sencillo poco más que una calculadora digital.

Esto es lo que se denomina aprendizaje por refuerzo con recompensas verificables (RLVR, 'Reinforcement Learning with Verifiable Rewards').

Una de las grandes ventajas de esta forma de entrenar por refuerzo frente a una genérica, es que el generador de recompensas, el verificador, no es otro modelo sino una herramienta mucho más sencilla (y, por tanto mucho más barata). Además, las recompensas son deterministas y reproducibles y la estrategia escala fácilmente a un entrenamiento con muchos datos si es necesario.

A cambio, una importante limitación es que no se puede aplicar esta estrategia al entrenamiento para razonar sobre cualquier tipo de problemas dado que, en muchos casos, no podemos disponer de esas reglas verificables. Por ello, se suele circunscribir, como hemos mencionado, a problemas lógicos o matemáticos.

No voy a entrar en detalles pero sí mencionar que RLVR se suele utilizar en conjunción con un algoritmo denominado GRPO ('Group Relative Policy Optimization'), introducido por el equipo de DeepSeek, que, a partir de la señal que genera RLVR, determina cómo usarla para la actualización de pesos del modelo.


Conclusiones


Hemos visto que podemos conseguir convertir un modelo razonador a partir de un gran modelo de lenguaje usando, no sólo técnicas de promting, como habíamos revisado en posts anteriores de esta serie, sino también haciendo un 'fine-tunning' mediante estrategia de aprendizaje por refuerzo.

Una de las variantes empleadas de aprendizaje por refuerzo es la que se basa en las denominadas recompensas verificables, en que un algoritmo, que no tiene por qué ser un modelo de lenguaje, es capaz de proporcionar de manera automatizada la señal de recompensa o 'feedback' y, mediante técnicas como GRPO, deducir la forma de actualizar los pesos del modelo.


Artículos de este blog relacionados


viernes, 25 de septiembre de 2026

La adopción de la inteligencia artificial y el dilema del inteligente

Hace ya bastantes años, en concreto en 1997, el malogrado Clayton Christensen publicaba el famoso libro 'The innovator's dilemma') todo un clásico de la literatura sobre innovación, en que describía lo que llamaba el dilema del innovador, es decir, las especiales dificultades que encontraban las empresas de éxito para adoptar e innovar con base en tecnologías disruptivas.

Se me ha ocurrido que en el caso de la inteligencia artificial, por cierto también una tecnología disruptiva, las personas quizá más que las empresas, se pueden encontrar con un dilema de características parecidas y que, un poco por paralelismo con el concepto de Christensen, se me ha ocurrido denominar 'el dilema del inteligente' 

Veamos.


Tecnologías disruptivas


El término disruptivo, en el ámbito de la innovación y la tecnología se utiliza para denominar tecnologías que, de alguna forma, cambian completamente las reglas del juego de un sector o de un tipo de soluciones, introduciendo cambios estructurales y mejoras radicales frente a soluciones anteriores a las que acaban sustituyendo.

Una característica particularmente insidiosa de las tecnologías disruptivas es que debutan en el escenario tecnológico y de negocio con unas prestaciones inferiores a las de las tecnologías alternativas a las que acabarán sustituyendo. Pero luego suben esas prestaciones rápidamente hasta superar claramente a la de las tecnologías precedentes.

Esas inferiores prestaciones en sus etapas iniciales pueden hacer, y hacen, que, con frecuencia, de alguna forma se las desprecie y no se les preste la debida atención.

Y un poco de eso va el dilema del innovador. 


El dilema del innovador


En efecto, lo que Christensen describe como 'dilema del innovador' tiene que ver con identificar a tiempo la importancia de una tecnología disruptiva.

Christensen habla de empresas de éxito, bien gestionadas y seguramente dominantes de su sector. ¿Qué hace una empresa tradicional bien gestionada ante una nueva posibilidad de innovación?

Pues hace un análisis. Un análisis con frecuencia de naturaleza esencialmente financiera en que estima los beneficios que puede traer consigo la adopción de la tecnología y lo compara con los costes y los riesgos. Si se observa un buen retorno de la inversión, quizá una TIR ('Tasa Interna de Rendimiento') suficiente, se adopta, y si no... pues no. Una forma racional y eficiente de decidir. ¿No?

Si pero.. ¿Cómo reacciona ahora ante una tecnología nueva y disruptiva? Le aplicará el mismo mecanismo. Pero claro, observará una tecnología de retornos inciertos (porque es nueva) y de prestaciones modestas e incluso malas. ¿Resultado? La decisión será negativa y no adoptará dicha tecnología.

Pero, en paralelo, existirán empresas con menor aversión al riesgo, o competidores que desean ensayar algo nuevo, o startups valerosas que sí adoptan la nueva tecnología disruptiva.

¿Qué sucede?

Cuando la nueva tecnología 'demuestra todo su poder', ganarán la partida esas startups o empresas arriesgadas que sí se atrevieron a adoptarla. Y nuestra anterior empresa de éxito bien gestionada, se quedará en situación de inferioridad, puede que de forma grave dada la capacidad de cambio estructural de un sector de las tecnologías realmente disruptivas.

De alguna forma, esa buena gestión que explica el éxito pasado de una empresa, puede llegar a cegarla y ser el detonante de su fracaso ante la llegada de una tecnología disruptiva.


La inteligencia artificial como tecnología disruptiva


Creo que hay pocas dudas de que la inteligencia artificial es una tecnología disruptiva, que está cambiando y cambiará reglas de juego y, además, de manera muy transversal.

¿Y debuta con prestaciones bajas?

Aunque hoy en día parezca difícil decirlo, claro que sí Recordemos cómo eran, por ejemplo, los traductores hechos con inteligencia artificial de hace unos años. Con resultados pobres, muy lejos de lo que es una traducción hecha por humanos.

O recordemos todos los inviernos de la inteligencia artificial al no llegar a lo que de ella se esperaba.

Aún diría más. Incluso con los espectaculares avances de los últimos años, todavía hay mucha gente que se atreve a decir, con un convencimiento que creo nace más del deseo que del análisis, que 'la inteligencia artificial nunca podrá hacer X', siendo X alguna capacidad humana que nos gustaría considerar totalmente diferencial e imposible de alcanzar por la inteligencia artificial.


El posible dilema del inteligente


Y ya llegamos a lo que he dado en llamar el 'dilema del inteligente' y que dibuja una situación parecida, aunque no completamente similar, cuando una persona más que una empresa, se enfrenta a la adopción o no, al uso o no, de la inteligencia artificial.

E identifico una posible dificultad para que precisamente las personas inteligentes y talentosas, personas de éxito, adopten la inteligencia artificial.

No hablo tanto de una adopción general de la inteligencia artificial, sino su uso para tareas concretas, tareas en que sobresale esa persona inteligente y de éxito.

El dilema surge porque esa persona inteligente es muy buena haciendo algo, voy a decir diseñando y desarrollando software, por ejemplo. Pero ahora la inteligencia artificial desarrolla software. Es posible que ese desarrollador experto considere, quizá con razón, que él o ella desarrolla software de mayor calidad que el que hace la inteligencia artificial (en su visión la inteligencia artificial tendría prestaciones bajas comparadas con la suya propia). Y eso puede hacer que se resista a abrazar el 'Vibe coding' mientras, en paralelo, desarrolladores nuevos, o personas con menos conocimientos, sí se lanzan a desarrollar con inteligencia artificial. Pasado un tiempo esos desarrolladores nuevos, en realidad menos talentosos, pueden superar en producción e incluso calidad a nuestro desarrollador experto.

Ese sería del dilema del inteligente.

Y se me ha ocurrido pensarlo porque, de alguna manera, lo experimento personalmente. No me cuesta, incluso lo hago con alegría, utilizar la inteligencia artificial para tareas en que no soy diestro o que incluso me sería imposible hacer: digamos crear música, crear vídeo, crear algunas imágenes o incluso investigar masivamente sobre un tema o resumir un documento extenso. Pero me resisto mucho más a usarla en tareas que, aparte de disfrutar haciéndolas, creo que he adquirido una destreza casi diferencial: escribir, hacer presentaciones, delinear un programa formativo, etc.

Si la adopción de la inteligencia artificial me resulta natural, divertida y rápida para unas tareas, arrastro los pies para otras.

Personalmente, aparte de conocer desde hace muchos años esta problemática del dilema del innovador, también soy un entusiasta estudioso de la inteligencia artificial, así que soy plenamente consciente de su capacidad y sus posibilidades disruptivas actuales y futuras. Así que me obligo, y pienso obligarme más en el futuro a emplearla... y no puedo dejar de aconsejar a 'todo el mundo' que haga lo mismo para evitar caer en ese dilema del inteligente..


Aunque no hablamos estrictamente de inteligencia


Antes de finalizar, un breve apunte conceptual.

He bautizado a este 'fenómeno' como el dilema del inteligente, porque resulta muy paralelo al término dilema del innovador de Christensen y, de paso, introduce la idea de inteligencia (sugiriendo inteligencia artificial) en la ecuación pero, en muchos casos, quizá más que de inteligencia, deberíamos hablar de competencia, 'expertise' o talento.

Pero claro, no suena igual hablar del 'dilema del competente' ¿no?


Conclusiones 


Se me ocurre pensar que, de forma paralela al fenómeno del dilema del innovador descrito por Christensen, las empresas, pero sobre todo las personas, podemos sufrir una suerte de 'dilema del inteligente' que nos haga resistirnos a usar la inteligencia artificial para realizar o ayudarnos a realizar aquellas tareas en que somos especialmente competentes.... y eso puede ser un riesgo a futuro, y un futuro no muy lejano.