“Attention is all you need”: La investigación que revolucionó la Inteligencia Artificial con los Transformers (Parte 2)
Vamos a centrarnos ahora en los Transformer. A diferencia de las arquitecturas anteriores como las Redes Neuronales Recurrentes (RNN) y las Convolucionales (CNN), recordemos que los Transformers no procesan secuencias de texto de manera secuencial (como ya hemos comentado en la primera parte de este artículo). En cambio, utilizan una estructura que permite procesar toda la secuencia de entrada simultáneamente, lo que se traduce en una mayor eficiencia y capacidad para manejar dependencias a larga distancia.
Ahora vamos a ver cómo funciona un Transformer partiendo su arquitectura básica. Voy a intentar resumirlo de la forma más sencilla basándome en la arquitectura del artículo y que podéis ver en la imagen anterior.
Estructura del Transformer
Inputs (Entradas):
- Las entradas son las palabras o subpalabras que han sido convertidas en vectores mediante procesos de tokenización y posteriormente transformadas a incrustaciones (embeddings). Estos embeddings contienen la información semántica de las palabras en un formato que el modelo puede procesar.
Positional Encoding (Codificación Posicional):
- Debido a que los Transformers no procesan secuencias de manera secuencial, necesitan una manera de tener en cuenta el orden de las palabras. La codificación posicional añade información sobre la posición relativa o absoluta de los tokens en la secuencia. Esto se suma a los embeddings de entrada para que el modelo pueda preservar el concepto de orden de las palabras.
Multi-Head Attention (Atención de Cabezas Múltiples):
- Es un mecanismo que permite al modelo centrarse en diferentes partes de la secuencia de entrada para cada ‘cabeza’ de atención. Cada cabeza aprende a atender a diferentes partes de la secuencia, lo que permite al modelo capturar varios aspectos del contexto y las relaciones entre palabras.
Add & Norm (Adición y Normalización):
- Después de la atención de múltiples cabezas, se suma la entrada original a la salida de la atención (conexiones residuales), y luego se normaliza. Esto ayuda a estabilizar los valores numéricos a través de la red, facilitando el aprendizaje y manteniendo la información original a lo largo del procesamiento.
Feed Forward (Red de Alimentación Directa):
- Cada posición en la salida de la atención pasa por una red de alimentación directa que consiste en dos capas lineales con una activación no lineal entre ellas. Esto permite al modelo realizar transformaciones adicionales a los datos.
Nx:
- Indica que los bloques de “Multi-Head Attention” y “Feed Forward” con sus respectivas “Add & Norm” se repiten N veces. Esto significa que el modelo tiene N capas de codificación que pueden aprender patrones más complejos y relaciones a distintos niveles.
Output Embedding (Incrustación de Salida) y
- Similar a las entradas, las salidas son procesadas por embeddings y codificación posicional. Sin embargo, en el lado de la salida, las palabras se desplazan hacia la derecha para garantizar que la predicción para una posición dada solo pueda depender de las palabras conocidas anteriormente en la secuencia.
Masked Multi-Head Attention
- Es similar a la atención de múltiples cabezas, pero evita que el modelo vea las partes futuras de la secuencia durante el entrenamiento. Esto se hace típicamente en tareas de predicción secuencial como la generación de texto.
Linear (Lineal):
- Una capa lineal es una capa de red neuronal que realiza una transformación lineal. En el contexto del Transformer, esta capa lineal suele convertir la representación de alta dimensión de la red en una representación del tamaño del vocabulario.
Softmax:
- La función Softmax se utiliza en la última capa de la red para convertir los logits (salidas de la capa lineal) en probabilidades. La salida es un vector de probabilidades que indica la probabilidad de cada palabra siguiente en la secuencia.
Output Probabilities (Probabilidades de Salida):
- Es el vector final de probabilidades generado por la capa Softmax. Cada elemento del vector representa la probabilidad de que una palabra específica del vocabulario sea la siguiente en la secuencia.
Después de estas definiciones y explicaciones, simplificando un poco el proceso, vamos a ver cómo se analiza por ejemplo la frase “El gato está en el tejado” cuando pasa por cada uno de los elementos de la arquitectura:
Y aquí tenéis otra tabla donde simulamos los valores para ver un poco más en detalle el proceso con los valores generados en cada operación:
Conclusión
Autor:
Contactar con Fran Ramírez en MyPublicInbox |
Powered by WPeMatico