Módulo transformersParte 1 de 3
Mecanismos de Atención
Entendiendo la revolución de los Transformers
⚡ Transformers
La arquitectura que revolucionó el mundo. Desde Attention Is All You Need, el mecanismo de atención ha permitido escalar modelos a niveles nunca antes vistos.
¿Por qué son especiales?
A diferencia de las redes recurrentes (RNNs), los Transformers procesan toda la secuencia en paralelo y usan atención para que cada palabra "mire" a las demás sin importar la distancia espacial.
1. El Mecanismo de Atención
La atención es básicamente un sistema de búsqueda: tienes una Query (lo que buscas), Keys (etiquetas de lo que hay) y Values (el contenido real).
Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V
attention_head.py
1import torch
2import torch.nn.functional as F
3
4def self_attention(q, k, v):
5 # d_k es la dimensión de las llaves
6 d_k = q.size(-1)
7 # Scores de similitud
8 scores = torch.matmul(q, k.transpose(-2, -1)) / (d_k**0.5)
9 # Pesos (probabilidades)
10 weights = F.softmax(scores, dim=-1)
11 # Salida contextualizada
12 return torch.matmul(weights, v)2. Decoder-Only (GPT)
Modelos como GPT solo usan el bloque "Decoder". Su secreto es el Masked Self-Attention, que impide que el modelo haga "trampa" mirando palabras que aún no han ocurrido en la secuencia temporal.
Multi-Head
Tener múltiples cabezas permite al modelo aprender diferentes relaciones (gramática, contexto, sentimientos) en paralelo.
Positional Encodings
Como procesamos todo en paralelo, necesitamos inyectar información sobre el orden de las palabras mediante funciones senoidales.