Duración estimada de este módulo: 2 - 2.5 horas
Objetivo: Entender cómo se ensamblan los bloques del Transformer para formar arquitecturas completas, y por qué modelos como BERT y GPT, aunque comparten la misma base, se usan para tareas radicalmente distintas.
El artículo "Attention Is All You Need" (2017) no presentó solo un mecanismo de atención. Presentó una arquitectura completa diseñada originalmente para tareas de traducción automática.
Esta arquitectura tiene dos componentes principales:
🔹 Analogía útil:
Imagina un intérprete simultáneo en una conferencia.
- El encoder es como su oído y cerebro: escucha y comprende completamente la oración del orador.
- El decoder es como su boca: genera la traducción palabra por palabra, basándose en lo que entendió, y además, ¡se corrige sobre la marcha si se equivoca!
El encoder es una pila de capas idénticas (por ejemplo, 6 u 8 capas en el Transformer original). Cada capa tiene dos subcapas principales:
Multi-Head Self-Attention:
Cada palabra atiende a todas las demás palabras de la misma oración. Esto permite que cada palabra se "redefina" en función de su contexto global.
Feed-Forward Neural Network (FFN):
Una red neuronal simple (pero poderosa) que se aplica a cada palabra de forma independiente. Sirve para transformar no linealmente la representación de cada palabra.
Además, cada subcapa está envuelta en:
🔹 Resultado final del Encoder:
Una representación contextualizada de cada palabra en la oración de entrada. Esta representación captura no solo el significado de la palabra, sino también su relación con todas las demás.
El decoder también es una pila de capas idénticas, pero con tres subcapas en lugar de dos:
Masked Multi-Head Self-Attention:
Aquí está la gran diferencia. El decoder también aplica auto-atención, pero con una máscara (mask) que impide que cada palabra "mire al futuro".
Si está generando la palabra 3, solo puede atender a las palabras 1 y 2. ¡No puede hacer trampa mirando la 4!
Esto es esencial para la generación de texto, porque en el mundo real, cuando escribes o hablas, no sabes qué palabra dirás después.
Multi-Head Cross-Attention:
Aquí, el decoder "mira" la salida del encoder. Las Queries vienen del decoder; las Keys y Values vienen del encoder.
Esto permite que cada palabra que el decoder está generando pueda "preguntarle" al encoder: "¿qué parte de la oración original es relevante para lo que quiero decir ahora?"
Feed-Forward Neural Network (FFN):
Igual que en el encoder.
También usa conexiones residuales y normalización de capa.
Imagina que estás cocinando un plato nuevo (generando texto).
El encoder es como un crítico gastronómico que ya probó todos los ingredientes (las palabras de entrada) y te da un informe detallado: "El ajo está bien, pero le falta acidez; el tomate es dulce, combínalo con algo ácido".
El decoder es como tú, el chef, que vas agregando ingredientes uno por uno (palabra por palabra).
¡Y así, paso a paso, generas un plato coherente y delicioso!
Con el tiempo, los investigadores se dieron cuenta de que no siempre necesitaban ambas partes.
BERT (Bidirectional Encoder Representations from Transformers) fue lanzado por Google en 2018 y causó una revolución.
🔹 Innovación clave:
Entrenamiento bidireccional. A diferencia de las RNNs o GPT (que solo miran hacia atrás), BERT puede ver todo el contexto al mismo tiempo.
🔹 Tarea de entrenamiento:
"Masked Language Modeling" — oculta palabras aleatorias en una oración y pide al modelo que las adivine usando el contexto de izquierda y derecha.
Ejemplo:
"El [MASK] saltó sobre la cerca." → El modelo aprende que "gato", "perro", "conejo" son buenas predicciones.
🔹 Resultado:
Representaciones extremadamente ricas del lenguaje, ideales para tareas de comprensión.
GPT (Generative Pre-trained Transformer), lanzado por OpenAI, toma el camino opuesto.
🔹 Innovación clave:
Entrenamiento autoregresivo. Predice la siguiente palabra en una secuencia, solo con el contexto anterior.
Ejemplo:
"El gato saltó sobre la..." → predice "cerca", "mesa", "cama", etc.
🔹 Tarea de entrenamiento:
"Language Modeling" — simplemente, predecir la siguiente palabra, una y otra vez, en miles de millones de textos.
🔹 Resultado:
Modelos increíblemente fluidos para generar texto, mantener coherencia a largo plazo y seguir instrucciones.
BERT (Encoder-only):
Entrada: [El] [gato] [saltó] [sobre] [la] [cerca]
Procesamiento: TODAS las palabras se procesan juntas.
Atención: Cada palabra puede ver a TODAS las demás (bidireccional).
Salida: Vector contextualizado para CADA palabra → ideal para clasificar o extraer.
GPT (Decoder-only):
Generación: Empieza con <start>, luego genera una palabra a la vez.
Paso 1: <start> → genera "El"
Paso 2: <start> + "El" → genera "gato"
Paso 3: <start> + "El" + "gato" → genera "saltó"
...
Atención: En cada paso, solo puede ver lo anterior (causal/masked).
Salida: Una secuencia generada → ideal para crear texto nuevo.
Porque no siempre es necesario… ¡y es más costoso!
Es como elegir herramientas:
Piensa en tres tareas distintas de PLN. Para cada una, decide si usarías un modelo tipo BERT (encoder-only), GPT (decoder-only) o T5 (encoder-decoder). Justifica tu elección.
Ejemplo:
Tarea: "Extraer el nombre de la persona mencionada en un artículo de prensa."
Elección: BERT → porque es una tarea de extracción/comprehensión, no de generación.
Transformer Original (Traducción):
[Entrada: "Hello world"] → ENCODER → [Representaciones] → DECODER → [Salida: "Hola mundo"]
BERT (Clasificación de sentimiento):
[Entrada: "Me encantó la película"] → ENCODER → [Vector CLS] → Clasificador → "POSITIVO"
GPT (Generación de texto):
<start> → DECODER → "Hoy" → DECODER → "es" → DECODER → "un" → DECODER → "gran" → ... → "día."
El Transformer no es un modelo, sino una familia de arquitecturas.
- El encoder es el "analista": entiende profundamente el texto de entrada.
- El decoder es el "creador": genera texto nuevo, paso a paso, con conciencia del pasado.
- Juntos, son un "traductor perfecto".
BERT y GPT son dos caras de la misma moneda: una para comprender, otra para crear. Y su popularidad no es casualidad: cada uno está optimizado para su propósito.
Ahora que entendemos la arquitectura, ¡es hora de poner las manos en el código! En el próximo módulo, aprenderemos a usar modelos Transformer reales con Hugging Face, sin necesidad de entender cada peso o neurona. Cargaremos un modelo, le daremos texto, y obtendremos respuestas… ¡como si fuera magia (pero ya sabemos que no lo es)!