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.