Ilustrado con Gatitos 🐱
Basado en The Illustrated Transformer de Jay Alammar
pero con más 🐱 y menos matemáticas intimidantes
Primero, veamos el Transformer como una caja negra mágica.
Entra un gatito en inglés, sale un gatito en español.
Es como un traductor gatuno superinteligente. Pero a diferencia de traductores antiguos que leían palabra por palabra, este puede ver TODAS las palabras al mismo tiempo.
🐱 Imagina que el gatito puede ver toda la oración de un vistazo, en lugar de leer letra por letra.
Dentro de la caja hay dos equipos de gatitos trabajando juntos.
El equipo que ENTIENDE
El equipo que GENERA
Cada capa entiende algo más profundo. Es como si el primer gatito entendiera las palabras, el segundo la gramática, el tercero el contexto, y así sucesivamente hasta entender completamente el significado.
Los gatitos no entienden texto, solo números.
Necesitamos convertir cada palabra en una lista de 512 números.
Este es el truco mágico que hace al Transformer especial.
Cada palabra puede "mirar" a todas las demás para entender mejor su contexto.
🐱 El modelo entiende que "ÉL" se refiere a "gato" porque puede ver toda la oración y encontrar conexiones!
Query de "ÉL" × Key de "gato" = Score alto! 🎯
Query de "ÉL" × Key de "calle" = Score bajo 😐
La representación de "ÉL" ahora incluye
70% de "gato" + 15% de "cansado" + ...
🎉 "ÉL" ahora "sabe" que es un gato!
Imagina que cada palabra es un gatito en una fiesta 🎉
"¿Qué información estoy buscando?"
El gatito "ÉL" pregunta: "¿A quién me refiero?"
Q = embedding × WQ
"¿Qué información tengo para ofrecer?"
El gatito "gato" responde: "Soy un sustantivo masculino!"
K = embedding × WK
"Este es mi contenido real si me eliges"
El gatito "gato" dice: "Aquí está toda mi info de 🐱"
V = embedding × WV
En lugar de UN gatito mirando, tenemos 8 gatitos especialistas
mirando diferentes aspectos al mismo tiempo!
Busca el sujeto → 🐱 gato
Busca la acción → comió
Busca emoción → hambre
Es como tener 8 gatitos expertos en diferentes temas. Uno sabe de gramática, otro de emociones, otro de referencias... ¡Juntos entienden TODO! 🎯
El Transformer procesa todo en paralelo, pero necesita saber
el orden de las palabras. ¡"Gato come ratón" ≠ "Ratón come gato"!
Sin posición, el modelo ve:
= Bolsa de palabras sin orden
Con posición, el modelo ve:
= Secuencia ordenada ✨
PE(pos, 2i) = sin(pos / 10000^(2i/512))
PE(pos, 2i+1) = cos(pos / 10000^(2i/512))
Imagina que cada gatito tiene un collar con número. Así aunque todos corran en paralelo, sabemos quién va primero, segundo, tercero... ¡El orden importa para contar la historia!
Ya entendimos el input. Ahora el Decoder genera la salida
palabra por palabra, usando el contexto del Encoder.
El decoder solo puede ver palabras anteriores
| El | gato | se | sienta | |
| El | ✅ | 🚫 | 🚫 | 🚫 |
| gato | ✅ | ✅ | 🚫 | 🚫 |
| se | ✅ | ✅ | ✅ | 🚫 |
| sienta | ✅ | ✅ | ✅ | ✅ |
🐱 Cuando generamos "se", solo podemos ver "El gato", NO "sienta"
El decoder mira al encoder para obtener contexto
🐱 Para generar "gato" en español, el decoder mira principalmente "cat" en inglés
Calculamos probabilidades para TODAS las palabras del vocabulario
Cada palabra puede ver a todas las demás
Preguntar, buscar, obtener info
8 perspectivas diferentes
El orden sí importa
No ver el futuro al generar
Decoder consulta al Encoder