Claude Shannon y el juego de adivinar la siguiente letra
En 1951 Claude Shannon publicó un experimento que se puede repetir en la cocina de casa. Le enseñaba a una persona un texto que no conocía, letra a letra, y le pedía que adivinase la siguiente. La mayoría de las veces acertaba a la primera. Con esos aciertos calculó que el inglés escrito es mucho más previsible de lo que parece, porque buena parte de cada letra ya viene decidida por las anteriores. Los modelos de lenguaje que hay detrás de ChatGPT, Gemini o Claude se entrenan en esa misma tarea, predecir el trozo de texto que viene, a otra escala y con piezas que no son letras.
Este es el segundo capítulo de la serie sobre la historia de la IA del blog. El primero, sobre Walter Pitts y la neurona artificial de 1943, iba de cómo calcular con neuronas. Este va de algo que parece más modesto: medir cuánto se puede adivinar de un texto.
Un inglés fabricado contando letras
Shannon estuvo en los Laboratorios Bell de 1941 a 1972, según la necrológica que publicó el MIT en 2001. Allí escribió «A Mathematical Theory of Communication», que salió en dos entregas del Bell System Technical Journal en julio y octubre de 1948, volumen 27, páginas 379 a 423 y 623 a 656 (hay una copia en la web de Harvard). Es el artículo que enseña a medir la información en dígitos binarios. Shannon los llama bits y cuenta que la palabra se la sugirió J. W. Tukey.
Para medir un idioma necesitaba saber cuánto de lo que escribimos es libre y cuánto viene obligado, y para verlo fabricó inglés falso con cada vez más estadística dentro. En el orden cero todas las letras y el espacio tienen la misma probabilidad. En el primero cada letra sale con su frecuencia real, la E con un 12 % y la W con un 2 %, pero sin mirar a la vecina. En el segundo cada letra depende de la anterior, y en el tercero de las dos anteriores. Luego saltó a palabras: primero sueltas, con su frecuencia, y después cada una según la que va delante.
Lo hizo casi a mano. Las dos primeras muestras salieron de un libro de números aleatorios. Para las demás abría un libro por cualquier página, escogía una letra, abría otra página y leía hasta encontrar esa letra, y apuntaba la que venía detrás. Él mismo escribe que el siguiente nivel ya daba un trabajo enorme. En la última muestra, la de palabras encadenadas de dos en dos, Shannon señala diez seguidas que pasarían en una frase normal: «attack on an English writer that the character of this».
Con el texto del Quijote que distribuye Project Gutenberg se puede repetir el ejercicio en español, con un ordenador en vez de un libro. Quitando tildes y signos quedan 27 letras, ñ incluida, más el espacio. Eligiendo cada letra solo por su frecuencia sale esto:
RR TAALDDS NNAZRSGE OLIPOSE L OÑA PUAPQUIBV QAOOOROTICPOSRAOELA RERL
Y eligiéndola según las dos anteriores, como en el tercer orden de Shannon:
AMBRESTANAS SICIER ESPARIERES LA PORQUITOR TO NUBRA CO Y DEL NASTIDE MIRLE OS HABALLENDIO
HABALLENDIO no existe, pero la segunda línea ya no parece de otro idioma.
De estas cuentas sacó Shannon que el inglés, mirando hasta unas ocho letras hacia atrás, tiene una redundancia de más o menos el 50 %. Dicho a su manera, la mitad de lo que escribimos lo decide la estructura del idioma. Y añade, cosa que me encanta, que con una redundancia del 50 % los crucigramas grandes son posibles por poco, y que si fuera del 33 % se podrían hacer crucigramas en tres dimensiones.
El juego de 1951
El segundo artículo es «Prediction and Entropy of Printed English», en el mismo Bell System Technical Journal, volumen 30, enero de 1951, páginas 50 a 64 (hay una copia en la web de Princeton). La idea nueva fue dejar las tablas y aprovechar lo que sabe cualquiera que habla un idioma, las palabras, los modismos, los tópicos y la gramática que nos dejan cazar una errata o terminar la frase de otro.
El método es sencillo. Se escoge un pasaje que la persona no conozca y se le pide la primera letra. Si acierta, se le dice y pasa a la siguiente. Si falla, se le da la letra correcta y sigue. El espacio cuenta como una letra más, así que el alfabeto tiene 27 símbolos. En un pasaje de 129 letras, la persona acertó 89 a la primera, un 69 %. Los fallos se amontonaban al principio de las palabras y de las sílabas, donde el pensamiento tiene más caminos por los que tirar.
En la segunda versión del juego la persona sigue adivinando hasta dar con la letra, y se apunta en qué intento acertó. El ejemplo que publica empieza con «There is no reverse on a motorcycle» (no hay marcha atrás en una moto) y sigue con un amigo que lo descubrió de forma bastante aparatosa el otro día. De 102 símbolos, 79 salieron al primer intento, 8 al segundo y 3 al tercero. Solo ocho necesitaron más de cinco.
Esa fila de números parece más pobre que el texto, pero Shannon sostiene que lleva la misma información. Si tuvieras un gemelo idéntico de la persona que adivinó, idéntico en lo matemático y no solo en lo biológico, como precisa él, le darías los números y el gemelo reconstruiría el texto adivinando igual. En el artículo lo dibuja como un sistema de comunicación con un predictor igual en cada punta, que solo transmite la fila de números. Quien predice bien puede comprimir.
Juntando estos juegos con un análisis del predictor ideal, Shannon acotó la información del inglés literario corriente. Con hasta 100 letras de contexto queda entre 0,6 y 1,3 bits por letra, del orden de un bit, y la redundancia sube a alrededor del 75 %. El artículo agradece la ayuda con los experimentos a B. M. Oliver y a la señora Mary E. Shannon, su mujer. Según el MIT, Shannon conoció en los Laboratorios Bell a Mary Elizabeth Moore, Betty, analista numérica, y se casó con ella en 1949. Quién hacía de adivino, el artículo no lo dice.
Juégalo con una frase en español
Hacen falta dos personas, papel y una frase que solo conozca una de ellas. Las tildes no cuentan y el espacio sí, así que en español juegas con 28 símbolos, uno más que Shannon por la ñ. Quien adivina dice una letra. Quien tiene la frase contesta sí o no, y al acertar apunta en qué intento fue. Al final cuentas cuántas salieron a la primera.
La tabla de abajo es una partida resuelta con la frase de Shannon pasada al español, «LAS MOTOS NO TIENEN MARCHA ATRAS». Aquí no adivina una persona sino una regla de contar, la misma idea del tercer orden de 1948. Antes de cada letra, la regla ordena las letras y el espacio según cuántas veces aparecen en el Quijote detrás de las dos letras anteriores, con las que nunca aparecen ahí al final, y prueba en ese orden. La cifra de intentos es el puesto que ocupaba la letra buena en esa lista.
| Posición | Letra | Intentos | ¿A la primera? |
|---|---|---|---|
| 1 | L | 3 | No |
| 2 | A | 1 | Sí |
| 3 | S | 2 | No |
| 4 | (espacio) | 1 | Sí |
| 5 | M | 10 | No |
| 6 | O | 5 | No |
| 7 | T | 13 | No |
| 8 | O | 4 | No |
| 9 | S | 3 | No |
| 10 | (espacio) | 1 | Sí |
| 11 | N | 13 | No |
| 12 | O | 1 | Sí |
| 13 | (espacio) | 1 | Sí |
| 14 | T | 11 | No |
| 15 | I | 5 | No |
| 16 | E | 1 | Sí |
| 17 | N | 1 | Sí |
| 18 | E | 5 | No |
| 19 | N | 5 | No |
| 20 | (espacio) | 1 | Sí |
| 21 | M | 10 | No |
| 22 | A | 1 | Sí |
| 23 | R | 5 | No |
| 24 | C | 14 | No |
| 25 | H | 6 | No |
| 26 | A | 2 | No |
| 27 | (espacio) | 2 | No |
| 28 | A | 10 | No |
| 29 | T | 15 | No |
| 30 | R | 4 | No |
| 31 | A | 1 | Sí |
| 32 | S | 2 | No |
La regla acierta 10 de 32 a la primera, menos de un tercio. Acierta cuatro de los cinco espacios, y también las letras que el idioma deja cantadas, como la O de NO o la E de TIENEN. Y se estrella al empezar cada palabra. La M de MOTOS y la de MARCHA las encuentra en el décimo intento, y la T de TIENEN en el undécimo. Es lo que vio Shannon en 1951, más exagerado, porque la regla solo ve dos letras y no sabe de qué va la frase.
Juégala con alguien y apunta sus intentos al lado de los de la tabla. La persona del artículo de Shannon acertó 79 de 102 a la primera, pero cuántas salgan depende de la frase y de quién adivine, y no hay un número bueno. Lo que suele repetirse es el sitio de los fallos, al empezar palabra.
De letras a tokens
Un modelo de lenguaje juega a una versión de esto. El artículo de OpenAI que presentó GPT-2 en 2019 lo explica en su apartado de método. Como el lenguaje va en orden, la probabilidad de un texto entero se descompone en la probabilidad de cada pieza sabiendo las anteriores. Entrenar el modelo consiste en que acierte cada vez mejor esa pieza siguiente.
La pieza no es una letra ni siempre una palabra. Se llama token y sale de un método de troceo, el BPE que Sennrich y sus coautores aplicaron a la traducción automática en 2015, que guarda enteras las secuencias frecuentes y parte en trozos las raras. Con la biblioteca tiktoken de OpenAI se ve enseguida. El troceador de GPT-2, de 50.257 piezas, deja «No hay mal que por bien no venga» en 11 tokens, con «bien» partido en dos y «venga» en tres. El que la tabla de modelos de esa biblioteca asigna a GPT-4o tiene unas 200.000 piezas y la deja en 8, una por palabra.
Lo que cambia es la escala. Donde la persona de Shannon tenía cien letras de contexto, GPT-2 ya miraba 1.024 tokens hacia atrás. Y en vez de una lista de intentos ordenada, el modelo da una probabilidad a cada pieza de su vocabulario. Esas probabilidades no salen de una tabla de recuento como la del Quijote, sino de una red neuronal, la descendiente lejana de la neurona de 1943, ajustada con cantidades de texto que Shannon no habría podido abrir por ninguna página.
Tampoco hay que estirarlo. Un asistente no se queda en ese entrenamiento, y después se ajusta con ejemplos y valoraciones de personas para que siga instrucciones, como describe el trabajo de OpenAI sobre InstructGPT de 2022. Al escribir, eso sí, sigue sacando el texto pieza a pieza. Yo no creo que «solo predice la siguiente palabra» sirva para despacharlos, ni para lo contrario. Shannon ya lo dejó ver en 1951. Para predecir bien la letra siguiente, su adivino tiraba de todo lo que sabía del idioma.
Shannon midió cuánto se puede adivinar de un texto. Por los mismos años, Alan Turing se hacía otra pregunta, si una máquina puede pensar y cómo lo sabríamos. Por ahí sigue la serie.
Deja un comentario