miércoles, 8 de octubre de 2025

Sobre el determinismo y los modelos generativos

Hoy en día, los modelos generativos, muy especialmente los grandes modelos de lenguaje recubiertos por aplicaciones de tipo chat, como el famosísimo ChatGPT, están omnipresentes, no sólo en los medios de comunicación, sino también en la conversación y en su uso práctico en entornos tanto privado como corporativo.

Y dadas sus extraordinarias capacidades, su 'conocimiento' embebido, y su interacción con las personas de una forma tan humana como es el lenguaje natural incluyendo con frecuencia la voz, trasmiten una sensación innegable de inteligencia y de cierta espontaneidad, lo que puede llevar y una errónea atribución de personalidad y puede que, en los casos más descabellados, de libre albedrío.

Y un poco por eso me interesa traer aquí un razonamiento sobre el eventual determinismo o no de los modelos generativos.


¿Qué entiendo por determinismo?


Antes voy a definir qué entiendo por determinismo. Para este artículo, no voy a adoptar una perspectiva ni mucho menos filosófica sobre el determinismo sino, por el contrario, una visión muy matemática o algorítmica, si se prefiere.

Simplificando bastante (pero sin perder por ello rigor), podemos decir que un modelo de machine learning en general, y un modelo generativo en particular, actúa básicamente como una función matemática (eso sí, una función muy compleja). Es decir, es un artefacto matemático que recibe unas entradas y produce una o unas salidas.

Pues bien, con esa visión, entiendo por determinismo la situación en que


ante unas mismas entradas, se produce la misma salida


Las funciones que utilizamos en unas matemáticas, digamos 'normales', son claramente deterministas: si sumas dos números da siempre el mismo resultado, si hallas la raíz cuadrada de un número siempre te dará el mismo resultado, y así sucesivamente. No hay aleatoriedad: mismas entradas, mismo resultado.


El funcionamiento básico de los modelos generativos


Aunque es posible que algunos lectores de este blog conozcan el funcionamiento interno de los modelos generativos, en beneficio de aquellos que no se encuentren en esa situación, y para facilitar el entendimiento del discurso que sigue, voy a explicar, de una forma tremendamente simplificada (aunque cierta) cómo funcionan los modelos generativos y en concreto, los grandes modelos de lenguaje.

Antes una advertencia: existen multitud de modelos generativos, algunos muy similares entre sí y otros bastante diferentes, y cada uno puede tener sus particularidades. En lo que seguirá me voy a centrar en grandes modelos de lenguaje (exclusivamente de lenguaje) basados en arquitectura Transformer, como los GPTs que hay por detrás de ChatGPT pero creo que las conclusiones son extensibles.

Podemos, siguiendo el esquema de la función anterior y aunque luego matizaré lo que ahora voy a decir, que la entrada para el modelo es un texto (de momento consideremos que la instrucción que introduce el usuario, aunque esto no es del todo exacto) y como salida tenemos otro texto: lo que nos contesta, por ejemplo, ChatGPT.

¿Cómo funciona?

Bien, lo primero que se hace es descomponer el texto de entrada en unas unidades denominadas 'tokens'. Existen muchos algoritmos de tokenización y cada modelo utiliza unos tokens diferentes pero, en cualquier caso, el texto de entrada se descompone en esos tokens. Aunque no es cierto del todo, para el razonamiento de este post, el lector que no conozca cómo son estos tokens, se los puede imaginar, simplemente, como palabras.

Luego esos tokens (simplificando, digamos que esas palabras) se codifican como unos vectores (una colección ordenada de números) de alta dimensión (la dimensión es la cantidad de números que tiene el vector). A estos vectores se los denomina 'embeddings'. La forma en que los tokens se traducen a 'embeddings' va a depender del entrenamiento del modelo, pero estos 'embeddings' son un elemento fundamental, puesto que es donde reside en gran medida el 'conocimiento'. Los embeddings llevan consigo información de naturaleza semántica. No es un significado puro, pero sí se mantienen relaciones de cercanía semántica entre tokens (digamos que entre palabras)

Ya tenemos entonces una serie de vectores con contenido semántico, que representan las palabras (tokens) del texto de entrada.

Ahora se aplica uno de los grandes avances del modelo 'transformer': el mecanismo de atención. Mediante este mecanismo (cuyos detalles también se asientan durante el entrenamiento), el modelo de lenguaje 'se fija' en el texto de entrada (todo el texto de entrada) y, no sólo eso, 'sabe' además qué parte de ese texto es más importante de cara a la contestación.

A partir de ahí el modelo de lenguaje, genera el texto de salida. Pero no lo hace directamente, sino token a token (si se quiere simplificar, palabra a palabra). Y, para generar, ese token (esa palabra), el modelo se fija, no sólo en el texto de entrada, sino también en el texto que ya ha generado.

Dos cosas a tener en cuenta.

En primer lugar, antes dije que el modelo recibía como entrada la instrucción del usuario. Eso en realidad es una simplificación. El texto que recibe el modelo en su entrada es la agregación de varias cosas: la instrucción del usuario, el propio texto que el modelo ya ha generado como respuesta, información de contexto (por ejemplo, de las interacciones anteriores en la misma conversación), una instrucción general denominada 'system prompt' e invisible para el usuario, e información eventualmente obtenida del exterior mediante una búsqueda SEO o mediante un mecanismo como RAG ('Retrieval Augmented Generation'). En cualquier caso, la entrada sigue siendo un texto, un texto que denominaremos la instrucción aumentada ('augmented prompt').

En segundo lugar, dado que el modelo realmente genera su salida en llamadas sucesivas, cada una de las cuales produce un token, quizá nos conviene ver el modelo como una función que recibe como entrada un texto (la instrucción enriquecida) y produce como salida un token (no todo el texto de respuesta.

Pero incluso esto último no es del todo cierto o, si se prefiere, hay un pasito intermedio al final que es importante considerar. Más que un token directamente, la salida que se produce es un conjunto de tokens, con la probabilidad que tiene cada uno de ser 'el token adecuado'. Y en el paso final, se elige uno de ellos. A la hora de quedarse con el token final, el token ganador y que se incorporará a la respuesta, el modelo elige entre los disponibles y no siempre elige el de probabilidad más alta, sino que en ocasiones elige otro. Esa selección, que no está completamente prefijada, depende de unos parámetros (normalmente no modificables por el usuario sino por el programador) como la denominada 'temperatura'. Según la temperatura que asignemos el modelo, éste 'se arriesga más' (alta temperatura) eligiendo tokens menos probables o 'se arriesga menos' (baja temperatura), seleccionando uno de los más probables, seguramente el más probable. El uso de parámetros como la puede llevar a tener un modelo que funciona de manera más o menos creativa.

Y ahora llega el momento de responder: ¿este modelo es determinista o no?

En mi opinión, sí y no, dependiendo de lo que queramos decir y para qué usemos la respuesta.


Los modelos generativos como probabilistas


Según la descripción anterior, parece muy claro que la respuesta es que los modelos generativos funcionan de manera probabilista y no determinista.

Además, es muy fácil de comprobar: no tienes más que preguntarle dos veces seguidas a ChatGPT la misma 'cosa' y te proporcionará respuestas diferentes. Normalmente esas respuestas se parecerán bastante entre sí, pero si haces una consulta o indicación vaga y abierta es probable que los resultados difieran bastante.

Esta visión probabilista es uno de los motivos, aunque no el único, por lo que no 'te puedes fiar del todo', de lo que te contesta el modelo. A veces se enfoca bien, pero a veces divaga o se equivoca o genera las conocidas 'alucinaciones'. O, simplemente, no te gusta la respuesta.


Los modelos generativos como deterministas


Y, sin embargo, bajo otra perspectiva, debemos considerar los modelos generativos como deterministas. 

¿Por qué?

Pues porque el que el modelo sea más creativo o menos depende de esos parámetros que comentaba como la temperatura. Manejando adecuadamente esos parámetros, se puede 'congelar' el modelo y que conteste siempre lo mismo. Es más, es una buena práctica para equipos que desarrollan modelos generativos, el que para ciertas pruebas, 'congelen' el modelo, porque así se puede prever la respuesta que tiene que dar y se prueba mucho mejor el comportamiento básico del algoritmo.

Añadiría, pero en esto no me voy a extender, que incluso la aleatoriedad 'informática' sólo es una seudo-aleatoriedad. Estrictamente hablando, al menos hasta donde yo conozco, los generadores aleatorios son en el fondo deterministas: la aleatoriedad se consigue manejando ciertos datos 'semilla', pero no es matemáticamente cierta.


Una especie de gato de Schrödinger: operativa y ética


Con todo esto los modelos generativos son, en cierto modo, probabilistas desde un punto de vista 'macro' pero deterministas desde un punto de vista 'micro'.

Metafóricamente esto del determinismo de los modelos generativos es una especie de 'gato de Schrödinger': son al mismo tiempo deterministas y no deterministas y va a depender del observador el decir una cosa u otra.

Para la gran mayoría de las situaciones y para su uso práctico del día a día en empresas, administraciones o a nivel particular, debemos considerarlos probabilistas. Debemos ser conscientes de que no producen siempre el mismo resultado con lo bueno que eso tiene en cuanto a creatividad y naturalidad pero también con el riesgo de la no repetitividad y la no completa fiabilidad.

Sin embargo, a efectos filosóficos y éticos, conviene recordar que en sus entrañas más profundas siguen siendo funciones matemáticas completamente deterministas y, por tanto, no cabe, creo, la fantasía de una voluntad propia o un 'libre albedrío' por parte del modelo.

Y es esta última razón, la de evitar fantasías y planteamientos éticos equivocados, la que me ha animado a escribir este post y la que hace importante recordar las raíces deterministas de los modelos.


Conclusiones


Los modelos generativos, cuando los contemplamos externamente como usuarios e incluso muchas veces como desarrolladores, se nos muestran como unos modelos de naturaleza probabilista. Y es importante tener esto en cuenta cuando usamos chats basados en modelos generativos o cuando queremos automatizar con base en estos modelos, por ejemplo mediante agentes.

Sin embargo, en su base más profunda, siguen siendo deterministas y, por tanto, podemos olvidarnos de un eventual libre albedrío o voluntad propia del modelo, salvo que se defienda que es posible el libre albedrío en un entorno plenamente determinista.


No hay comentarios:

Publicar un comentario