LLMs: grados de libertad en la generación de texto

Me he entretenido dibujando

que representa gráficamente los grados de libertad de un LLM según va generando texto. Brevemente, he arrancado con

Never in the history of

y he dejado que mi LLM fuese construyendo

Never in the history of “The Bachelor” has a contestant been so hated by the viewing public.

The “Bachelor” franchise has had its share of villains, but the one who has

mientras registraba el vector de probabilidades en cada iteración, es decir, el vector que permite que el LLM elija, por ejemplo, villains en lugar de maples, vikings or frenchmen.

El LLM en cuestión usa +50k tokens distintos y a todos ellos, en cada iteración, les asigna una probabilidad. Para medir los grados de libertad he contado el mínimo subconjunto cuya probabilidad agregada excede cierto umbral. Esos son los números que aparecen en el gráfico. (Y sí, ya sé que hay muchas otras opciones).

Es evidente cómo el of después de share, el ciere de las comillas, el public tras viewing y alguna otra son casi obligatorias. O que tras el The con el que se abre la segunda frase, casi cualquier cosa puede ocurrir y el LLM puede tirar casi por donde le dé la gana. Etc.

Obivamente, dado que la intersección de lo cierto, lo interesante y lo no obvio es prácticamente nula, hoy me he limitado a regalar a mis lectores dos cosas:

  • Una historieta que cumple dos de las tres condiciones anteriores: lo que aquí se ha aprendido no debería sorprender a nadie.
  • El código completo de lo que he hecho, por si a alguien le sirve de provecho.