Pero, por un lado, siento que me han quedado cosas por decir (incluso por pensar) y, por otro, he conocido alguna información nueva que añadir, así que voy a retomar este asunto sobre el determinismo de los modelos generativos escribiendo, al menos, dos nuevos artículos (éste es el primero) y no me extrañaría que alguno más.
Entre un problema operativo y un problema ético
En el primer artículo en titulado 'Sobre el determinismo y los modelos generativos', hablaba de una doble visión o una casi doble conclusión. Así, concluía que, si miramos a los modelos de lenguaje (casi mejor habría que decir las aplicaciones basadas en ellos), como usuarios y desde un punto de vista práctico, claramente debemos considerar que ese tipo de modelos o aplicaciones son probabilistas, no deterministas.
Es importante tenerlo claro para no llevarnos sorpresas sobre sus resultados, para ser conscientes de que debemos aplicar criterio y juicio crítico a los resultados que nos ofrecen y a adoptar precauciones si los utilizamos en el campo de la automatización, asunto del que también hablé en otra serie de posts.
Sin embargo, si entramos a un nivel 'micro', entendiendo mejor cómo funcionan en detalle, mi conclusión, la que expresé en ese primer post, es que este tipo de modelos son deterministas. Curiosamente, aunque esa conclusión la obtengo con una análisis mucho más técnico y detallado, las consecuencias no tienen tanto que ver con lo operativo como con lo ético.
Ya hace bastante tiempo argumenté también el determinismo de la inteligencia artificial, especialmente de las redes neuronales en el post 'Los algoritmos de Inteligencia Artificial sí saben explicarse' y cómo eso arrojaba una perspectiva diferente sobre la explicabilidad de la inteligencia artificial, uno de los campos donde se produce mayor debate ético.
Pero adicionalmente, el determinismo importa para el debate sobre la eventualidad de un libre albedrío, de una voluntad propia por parte de algoritmos y máquinas. E importa porque, si hablamos de algoritmos deterministas, no se me ocurre cómo pueden tener nada que se parezca a un libre albedrío o una voluntad propia. Pero si no son deterministas 'la cosa' queda más abierta.
De dónde partimos
De forma muy, muy simplificada, recordar que los grandes modelos de lenguaje funcionan, de manera iterativa, generando su salida paso a paso, podríamos decir que palabra a palabra, aunque en realidad es 'token' a 'token', y que en cada paso toman como entrada un texto que incluye, simplificando, tres cosas:
- el 'prompt' que ha introducido el usuario
- información de contexto
- el texto que ha generado hasta el momento como salida.
Y añadir un detalle más: aunque el resultado de final de cada iteración es un nuevo token que se añade a la salida, hay un paso anterior en que lo que realmente tenemos son un conjunto de 'tokens' posibles junto con un valor de probabilidad de ser el 'token' más adecuado. Y el algoritmo acaba eligiendo uno de esos 'tokens' posibles, como el token ganador y que finalmente se añade al texto de salida.
En mi post anterior sobre este tema argumentaba que, pese a que hablamos de probabilidad, todo el algoritmo está perfectamente definido y la aleatoriedad, en informática, se suele basar en una 'seudoaleatoriedad' en una funciones complejas con una semilla de entrada y que generan una salida que, aunque a efectos prácticos es perfectamente aleatoria, en su visión matemática interna está perfectamente determinada.
Por todo ello, en mi post anterior afirmaba que estos algoritmos, estrictamente hablando son deterministas, aunque externamente no se manifiesten así.
El gobierno de la aleatoriedad de los grandes modelos de lenguaje y sus parámetros
Y ya llegamos al tema a que quería dedicar este post: el gobierno de la aleatoriedad. Por 'gobierno de la aleatoriedad', un término quizá algo grandilocuente que me acabo de inventar para este artículo, me refiero, simplemente, a los parámetros que gobiernan el comportamiento de la aleatoriedad en grandes modelos de lenguaje
Se trata de unos parámetros que, como usuarios de herramientas basadas en modelos de lenguaje como ChatGPT o Gemini no percibimos, pero que sí que son utilizados (o pueden serlo) por desarrolladores que construyen aplicaciones basadas en modelos de lenguaje.
En ese sentido, se trata de unos parámetros que, aunque no son de conocimiento del público general, sí que son bastante conocidos para los perfiles más técnicos
Aunque estos parámetros están descritos en multitud de fuentes, para este post he consultado el libro 'LLMOps: Managing Large Language Models in Production' de Abi Aryan (simplemente porque recordaba que ahí hacía una buena pero concisa descripción).
Veamos esos parámetros.
La temperatura
El parámetro más conocido, y seguramente el más importante, es el que se denomina 'temperatura' un nombre elegido dado el cierto paralelismo que guarda con la temperatura real en procesos termodinámicos de la naturaleza.
Sin entrar en la formulación matemática (que la fuente que utilizo no explica) lo que controla la temperatura es, precisamente, hasta qué punto el modelo es más o menos aleatorio, hasta qué punto, por decirlo de alguna manera es más capaz de aportar respuestas originales. Cuando presenta valores bajos, las respuestas son más conservadoras y, es lo que normalmente querríamos para un análisis técnico o científico o para una automatización. Cuando presenta valores altos el modelo es más 'atrevido', más original y es lo que querríamos, por ejemplo, para generar historias creativas o un 'storytelling'.
En teoría, si fijamos esa temperatura a cero, el modelo deja de ser probabilista para convertirse en determinista, sin aleatoriedad.
Parámetros para acotar opciones
Hay otros dos parámetros que acotan un poco las opciones finales del modelo o, si se prefiere, su diversidad ¿Qué quiere decir esto?
Como comentaba más arriba, hacia el final del proceso, el modelo ofrece varios 'tokens' candidatos con un nivel de probabilidad y elije como resultado final, uno de esos tokens candidatos.
Pues bien, existen dos parámetros que controlan el número de tokens candidatos entre los que se puede elegir al final. El parámetro denominado 'top-k' acota en 'k' los token finales candidatos. Por ejemplo, si top-k se ajusta a 5, se elegiría sólo entre los cinco tokens más probables.
Con una filosofía parecida pero ligeramente diferente, tenemos el parámetro 'top-n' en que lo que se fija es un umbral de probabilidad acumulada, y al final se elige, el menor número de tokens, de entre los tokens de mayor probabilidad, tales que la suma de sus probabilidades supera el umbral establecido por el parámetro.
Ambos parámetros acotan el número de opciones posibles de cara a la elección final pero de forma tal que, cuanto mayor es su valor, mayor es la diversidad y la originalidad.
Parámetros para buscar la variedad
Finalmente, y quizá un poco menos conocidos, tenemos dos parámetros que actúan como penalizaciones pero que lo que buscan es fomentar la variedad. Es como cuando escribimos un texto literario y usamos sinónimos para evitar repetir constantemente la misma palabra. Aunque semántica y técnicamente, repetir constantemente la misma palabra es correcto, desde un punto de vista de discurso, queda poco elegante, poco artístico y, en casos extremos, poco natural.
Pues bien en esa línea, un primer parámetro es la penalización de frecuencia ('frequency penalty') que aplica una penalización a los tokens candidatos en función de la frecuencia con que han aparecido en el texto ya generado.
Otra estrategia parecida pero ligeramente diferente, se basa en el parámetro penalización de presencia ('presence penalty') que penaliza a los tokens que han aparecido una vez en el texto general, con independencia del número de veces que lo hayan hecho.
Alguna 'pre-conclusión'
Estos parámetros que hemos visto, ilustran cómo se gobierna el nivel de aleatoriedad, digamos 'externa', de los modelos. Pero esa ilustración no altera mis conclusiones del post que mencionaba al principio: los modelos, aunque externamente presentan un comportamiento probabilista, internamente son, en el fondo, deterministas.
Pero la cosa no acaba aquí
Sin embargo, tras la publicación de ese primer post sobre el determinismo, han llegado a mi nuevos análisis y nuevas perspectivas que podrían poner en cuestión el determinismo. Así que se impone reflexionar sobre ello y comentar las conclusiones en algún post próximo.
Artículos de este blog relacionados
- Sobre el determinismo y los modelos generativos
- Los algoritmos de Inteligencia Artificial sí saben explicarse








No hay comentarios:
Publicar un comentario