Arquitectura Transformer

From Systems analysis Wiki
Jump to navigation Jump to search

La arquitectura Transformer es una arquitectura de red neuronal presentada en 2017 por investigadores de Google en el artículo «Attention Is All You Need»[1]. Revolucionó el campo del procesamiento del lenguaje natural (PLN) y se convirtió en la base de la mayoría de los grandes modelos de lenguaje (LLM) modernos, como BERT, GPT y Gemini. La innovación clave del Transformer es el mecanismo de autoatención (self‑attention), que permite al modelo ponderar la importancia de diferentes partes de los datos de entrada y procesar secuencias en paralelo, abandonando la recurrencia característica de las RNN y LSTM.

Contexto histórico y antecedentes

Hasta 2017, las arquitecturas dominantes para el procesamiento de datos secuenciales, como el texto, eran las redes neuronales recurrentes (RNN) y su variante mejorada, las redes de memoria a corto y largo plazo (LSTM).

Problemas de las RNN/LSTM abordados por el Transformer

  • Limitaciones del procesamiento secuencial: Las RNN y LSTM procesan los datos token por token, lo que impide el paralelismo dentro de la secuencia y ralentiza el entrenamiento con grandes volúmenes de datos.
  • Problema de desvanecimiento y explosión de gradientes: En secuencias largas, los gradientes propagados hacia atrás a través de muchos pasos pueden disminuir o crecer exponencialmente, lo que dificulta el aprendizaje de dependencias a largo plazo.
  • Dependencias a largo plazo: La información del inicio de una secuencia puede perderse hacia el final.

El enfoque del Transformer es un abandono total de la recurrencia en favor del mecanismo de atención. Proporciona una longitud de ruta de dependencia constante entre cualquier posición (O(1)), lo que facilita el modelado de dependencias a larga distancia, aunque la implementación básica de la autoatención tiene una complejidad computacional cuadrática con respecto a la longitud de la secuencia (O(n2))[1][2]. El problema del desvanecimiento/explosión de gradientes no «desaparece», sino que se mitiga mediante conexiones residuales, LayerNorm y el régimen de entrenamiento; en implementaciones modernas, a menudo se utiliza la variante Pre‑LayerNorm (Pre‑LN) por ser más estable durante el entrenamiento[3].

Arquitectura y componentes clave

La arquitectura original del Transformer consta de dos partes principales: el codificador (encoder) y el decodificador (decoder). Ambos componentes son pilas de capas idénticas (N=6 en el artículo original)[1].

  • Estructura de una capa del codificador: (1) autoatención multicabeza (MHA), (2) una red neuronal feed-forward posicional (FFN); cada subcapa está rodeada por una conexión residual y LayerNorm[1].
  • Estructura de una capa del decodificador: (1) autoatención enmascarada (una máscara causal impide el acceso a posiciones futuras), (2) atención cruzada (cross-attention) a las salidas del codificador, (3) FFN, también con conexiones residuales y LayerNorm[1].

Mecanismo de atención y autoatención (Self-Attention)

El mecanismo de atención calcula una suma ponderada de los vectores de valor (Value), donde los pesos se determinan por el grado de compatibilidad de las claves (Key) con las consultas (Query). En el Transformer se utiliza la atención de producto escalar escalado (Scaled Dot-Product Attention):

Attention(Q,K,V)=softmax(QKdk)V

Donde dk es la dimensionalidad de las claves/consultas; la división por dk evita la saturación de la función softmax[1]. Cuando Q, K y V se generan a partir de la misma secuencia, el mecanismo se denomina autoatención (self-attention).

Atención multicabeza (Multi-Head Attention)

En lugar de un único conjunto de matrices (WQ,WK,WV), se utilizan h «cabezas» de atención en paralelo, cada una de las cuales proyecta Q,K,V en subespacios de menor dimensión, calcula la atención de forma independiente, y luego los resultados se concatenan y se proyectan de nuevo[1]:

MultiHead(Q,K,V)=Concat(head1,,headh)WO,donde headi=Attention(QWiQ,KWiK,VWiV).

Variantes para acelerar la inferencia:

  • MQA (Multi‑Query Attention): todas las cabezas comparten una única clave/valor → se reduce significativamente el volumen y el tráfico de la caché KV durante la decodificación[4].
  • GQA (Grouped‑Query Attention): un compromiso entre MHA y MQA, donde varios grupos de cabezas comparten K/V; la calidad es similar a la de MHA con la velocidad de MQA[5].

Codificación posicional (Positional Encoding)

Dado que la autoatención es invariante al orden de los tokens, se añaden codificaciones posicionales a los embeddings de entrada.

  • Codificaciones sinusoidales originales (PE) de[1]:
PE(pos,2i)=sin(pos/100002i/dmodel),PE(pos,2i+1)=cos(pos/100002i/dmodel).
  • Variantes relativas/rotatorias modernas:
    • RoPE (Rotary Position Embeddings) codifica los desplazamientos relativos mediante la rotación de los vectores Q/K; se utiliza en varios LLM modernos[6].
    • ALiBi introduce una penalización lineal en las puntuaciones de atención, lo que mejora la extrapolación a longitudes mayores que las vistas durante el entrenamiento[7].

Redes feed-forward posicionales, conexiones residuales y normalización

Cada capa del codificador y decodificador, además de la atención, contiene una red neuronal feed-forward posicional (FFN):

FFN(x)=max(0,xW1+b1)W2+b2.

Alrededor de cada subcapa se utilizan conexiones residuales (residual connections) y normalización de capa (Layer Normalization): LayerNorm(x+Sublayer(x)). En la versión original se aplicaba la variante Post-LN[1]; en los LLM modernos, se suele utilizar Pre-LN para una mayor estabilidad en el entrenamiento y una menor dependencia de un largo período de calentamiento (warm-up)[3].

Evolución y variantes modernas

Los métodos anteriores, basados en redes neuronales recurrentes (RNN) y sus variantes avanzadas como LSTM, procesaban el texto de forma secuencial, un token a la vez. Aunque este enfoque se correspondía intuitivamente con la estructura del lenguaje, creaba una limitación significativa: dificultaba los cálculos en paralelo y complicaba la detección de dependencias entre elementos distantes en el texto. En 2017, un grupo de investigadores de Google presentó un artículo titulado «Attention Is All You Need». En él, describieron una nueva arquitectura: el «Transformer». Este modelo fue el primero en abandonar por completo el uso de redes neuronales recurrentes, sustituyéndolas por un mecanismo de «atención» (attention). La principal innovación fue que el mecanismo de atención permitía al Transformer evaluar la importancia de cada palabra en la secuencia de entrada para generar la palabra correspondiente en la salida. Al mismo tiempo, el modelo podía procesar todas las palabras simultáneamente. Esta capacidad de procesamiento en paralelo hizo posible entrenar modelos mucho más grandes con enormes cantidades de datos. Como resultado, surgieron los grandes modelos de lenguaje (LLM) modernos.

La arquitectura Transformer ha servido de base para numerosos modelos, que pueden clasificarse convencionalmente en tres categorías.

1. Modelos de solo codificador (Encoder‑only)

  • Ejemplo: BERT (y RoBERTa, ALBERT)[8].
  • Principio: preentrenamiento en la tarea de modelado de lenguaje enmascarado (MLM) con contexto bidireccional.
  • Aplicación: tareas de comprensión (clasificación, NER, etc.).

2. Modelos de solo decodificador (Decoder‑only)

  • Ejemplo: la serie GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
  • Principio: modelado de lenguaje causal (CLM), es decir, la predicción del siguiente token; se aplica una máscara causal a la atención[1].
  • Aplicación: generación de texto, diálogos, código.

3. Modelos de codificador-decodificador (Encoder‑decoder)

  • Ejemplo: el Transformer original, T5, BART[1][12].
  • Principio: el codificador construye una representación de la entrada, y el decodificador genera la salida utilizando atención cruzada (cross-attention) sobre las características del codificador[1].
  • Aplicación: tareas seq2seq (traducción, resumen, etc.).

4. Arquitecturas multimodales y alternativas

  • Vision Transformer (ViT): una adaptación para imágenes (dividiéndolas en parches)[13]; Swin Transformer: un modelo jerárquico con ventanas desplazadas (shifted windows)[14].
  • Alternativas para secuencias largas:
    • Mamba: modelos de espacio de estados selectivos (SSM) con complejidad lineal[15].
    • RWKV: una arquitectura similar a una RNN con entrenamiento paralelizable y complejidad de inferencia lineal[16].
    • Híbridos (por ejemplo, Jamba): alternan bloques de Transformer y Mamba; a veces se complementan con MoE[17].

Técnicas de entrenamiento y optimización

La eficacia del Transformer está estrechamente ligada a las técnicas de entrenamiento y a la infraestructura.

  • Estrategias de preentrenamiento: CLM y MLM; también objetivos contrastivos y de eliminación de ruido (denoising) (ELECTRA, T5)[12].
  • Técnicas de ajuste fino (Fine‑tuning):
    • Ajuste fino completo de todos los parámetros.
    • Ajuste fino eficiente en parámetros (PEFT): LoRA introduce adaptadores de bajo rango mientras mantiene congelados los pesos del modelo base[18].
  • Alineación del comportamiento: RLHF (aprendizaje por refuerzo a partir de retroalimentación humana)[19].
  • Optimizaciones de sistema para la inferencia: PagedAttention/vLLM aumenta el rendimiento (throughput) del servicio mediante una gestión paginada de la caché KV; es especialmente útil para secuencias largas y lotes grandes[20].

Enlaces externos

Bibliografía

  • Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  • Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI Technical Report.
  • Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  • Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. arXiv:1910.10683.
  • Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.
  • Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. arXiv:2103.14030.
  • Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  • Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  • Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  • Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  • Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need (MQA). arXiv:1911.02150.
  • Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  • Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention (vLLM). arXiv:2309.06180.
  • Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  • Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  • Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  • Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  • Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.

Referencias

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  2. Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  3. 3.0 3.1 Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  4. Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need. arXiv:1911.02150.
  5. Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  6. Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  7. Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  8. Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  9. Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI.
  10. Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  11. Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  12. 12.0 12.1 Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. JMLR. arXiv:1910.10683.
  13. Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. ICLR. arXiv:2010.11929.
  14. Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV. arXiv:2103.14030.
  15. Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  16. Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  17. Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  18. Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  19. Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
  20. Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention. arXiv:2309.06180.