Connect with us

IA 101

¿Qué son las Redes Neurales Transformer?

mm

Redes Neurales Transformer Descritas

Transformers son un tipo de modelo de aprendizaje automático que se especializa en procesar e interpretar datos secuenciales, lo que los hace óptimos para tareas de procesamiento de lenguaje natural. Para comprender mejor qué es un modelo de aprendizaje automático de transformador y cómo operan, echemos un vistazo más cercano a los modelos de transformador y los mecanismos que los impulsan.

Este artículo cubrirá:

  • Modelos de Secuencia a Secuencia
  • La Arquitectura de la Red Neuronal Transformer
  • El Mecanismo de Atención
  • Diferencias entre Transformadores y RNNs/LSTMs

Modelos de Secuencia a Secuencia

Los modelos de secuencia a secuencia son un tipo de modelo de NLP que se utilizan para convertir secuencias de un tipo en una secuencia de otro tipo. Hay varios tipos de modelos de secuencia a secuencia, como Redes Neurales Recurrentes y Memoria de Corto y Largo Plazo (LSTM).

Los modelos de secuencia a secuencia tradicionales como RNNs y LSTMs no son el enfoque de este artículo, pero es necesario entenderlos para apreciar cómo operan los modelos de transformador y por qué son superiores a los modelos de secuencia a secuencia tradicionales.

En resumen, los modelos de RNN y LSTM consisten en redes de codificador y decodificador que analizan los datos de entrada en varios pasos de tiempo. La red de codificador es responsable de formar una representación codificada de las palabras en los datos de entrada. En cada paso de tiempo, la red de codificador toma una secuencia de entrada y un estado oculto del paso de tiempo anterior en la serie. Los valores del estado oculto se actualizan a medida que los datos proceden a través de la red, hasta el último paso de tiempo, donde se genera un “vector de contexto”. El vector de contexto se pasa luego a la red de decodificador, que se utiliza para generar una secuencia de destino prediciendo la palabra más probable que se empareja con la palabra de entrada para los respectivos pasos de tiempo.

Estos modelos se pueden ampliar mediante el uso de un “mecanismo de atención”. Un mecanismo de atención define qué partes del vector de entrada la red debe enfocar para generar la salida correcta. En otras palabras, un mecanismo de atención permite que el modelo de transformador procese una palabra de entrada mientras también presta atención a la información relevante contenida en las otras palabras de entrada. Los mecanismos de atención también ocultan las palabras que no contienen información relevante.

Arquitectura de la Red Neuronal Transformer

Entraremos en más detalles sobre el mecanismo de atención más adelante, pero por ahora echemos un vistazo a la arquitectura de una red neuronal de transformador a un nivel más alto.

En general, una red neuronal de transformador se ve algo así:

Aunque esta estructura general puede cambiar entre redes, las piezas básicas permanecerán las mismas: codificaciones posicionales, vectores de palabras, mecanismo de atención, red neuronal de alimentación hacia adelante.

Codificaciones Posicionales y Vectores de Palabras

Una red neuronal de transformador opera tomando una secuencia de entradas y convirtiéndolas en dos secuencias. La transformación produce una secuencia de incrustaciones de vectores de palabras y codificaciones posicionales.

Las incrustaciones de vectores de palabras son solo el texto representado en un formato numérico que la red neuronal puede procesar. Mientras que las codificaciones posicionales son representaciones vectorizadas que contienen información sobre la posición de la palabra actual en la oración de entrada, en relación con otras palabras.

Otros modelos de red neuronal basados en texto como RNNs y LSTMs utilizan vectores para representar las palabras en los datos de entrada. Estas incrustaciones de vectores asignan palabras a valores constantes, pero esto es limitante porque las palabras se pueden utilizar en diferentes contextos. Una red de transformador resuelve este problema haciendo que los valores de las palabras sean más flexibles, utilizando funciones sinusoidales para permitir que los vectores de palabras tomen valores diferentes dependiendo de la posición de la palabra en la oración.

Esto permite que el modelo de red neuronal preserve la información sobre la posición relativa de las palabras de entrada, incluso después de que los vectores pasen a través de las capas de la red de transformador.

Las codificaciones posicionales y las incrustaciones de vectores de palabras se suman y luego se pasan a las redes de codificador y decodificador. Aunque las redes neuronales de transformador utilizan esquemas de codificador/decodificador al igual que RNNs y LSTMs, una de las principales diferencias entre ellos es que todos los datos de entrada se alimentan a la red al mismo tiempo, mientras que en RNNs/LSTMs, los datos se pasan secuencialmente.

Las redes de codificador son responsables de convertir las entradas en representaciones que la red puede aprender, mientras que las redes de decodificador hacen lo contrario y convierten las codificaciones en una distribución de probabilidad utilizada para generar las palabras más probables en la oración de salida. Es crucial que tanto las redes de codificador como de decodificador tengan un mecanismo de atención.

Debido a que las GPU son capaces de procesamiento paralelo, se utilizan varios mecanismos de atención en paralelo, calculando la información relevante para todas las palabras de entrada. Esta capacidad de prestar atención a varias palabras al mismo tiempo, llamada “atención multi-cabeza”, ayuda a la red neuronal a aprender el contexto de una palabra dentro de una oración, y es una de las principales ventajas que las redes de transformador tienen sobre RNNs y LSTMs.

El Mecanismo de Atención

El mecanismo de atención es la parte más importante de una red de transformador. El mecanismo de atención es lo que permite a los modelos de transformador ir más allá del límite de atención de un modelo RNN o LSTM típico. Los modelos de secuencia a secuencia tradicionales descartan todos los estados intermedios y utilizan solo el estado/contexto vector final cuando se inicializa la red de decodificador para generar predicciones sobre una secuencia de entrada.

Descartar todo excepto el vector de contexto final funciona bien cuando las secuencias de entrada son bastante pequeñas. Sin embargo, a medida que aumenta la longitud de la secuencia de entrada, el rendimiento del modelo se degrada al utilizar este método. Esto se debe a que es bastante difícil resumir una secuencia de entrada larga como un solo vector. La solución es aumentar la “atención” del modelo y utilizar los estados de codificador intermedios para construir vectores de contexto para el decodificador.

El mecanismo de atención define cuán importante son otros tokens de entrada para el modelo cuando se crean codificaciones para un token determinado. Por ejemplo, “it” es un pronombre general, a menudo utilizado para referirse a animales cuando su sexo no es conocido. Un mecanismo de atención permitiría que un modelo de transformador determinara que en el contexto actual “it” se refiere a una ardilla, porque puede examinar todas las palabras relevantes en la oración de entrada.

Un mecanismo de atención se puede utilizar de tres maneras diferentes: codificador-decodificador, solo codificador, solo decodificador.

La atención codificador-decodificador permite que el decodificador considere las secuencias de entrada al generar una salida, mientras que los mecanismos de atención solo codificador y solo decodificador permiten que las redes consideren todas las partes de las secuencias anteriores y actuales, respectivamente.

La construcción de un mecanismo de atención se puede dividir en cinco pasos:

  1. Calcular una puntuación para todos los estados del codificador.
  2. Calcular los pesos de atención
  3. Calcular vectores de contexto
  4. Actualizar el vector de contexto con la salida del paso de tiempo anterior
  5. Generar la salida con el decodificador

El primer paso es que el decodificador calcule una puntuación para todos los estados del codificador. Esto se hace entrenando la red de decodificador, que es una red neuronal de alimentación hacia adelante básica. Cuando el decodificador se entrena en la primera palabra de la secuencia de entrada, no se ha creado ningún estado interno/oculto, por lo que el estado final del codificador se utiliza típicamente como el estado anterior del decodificador.

Para calcular los pesos de atención, se utiliza una función softmax para generar una distribución de probabilidad para los pesos de atención.

Una vez calculados los pesos de atención, es necesario calcular el vector de contexto. Esto se hace multiplicando los pesos de atención y el estado oculto juntos para cada paso de tiempo.

Después de calcular el vector de contexto, se utiliza junto con la palabra generada en el paso de tiempo anterior para generar la siguiente palabra en la secuencia de salida. Debido a que el decodificador no tiene ninguna salida anterior a la que referirse en el primer paso de tiempo, a menudo se utiliza un token “inicio” especial en su lugar.

Diferencias entre Transformadores y RNNs/LSTMs

Cubriremos rápidamente algunas de las diferencias entre RNNs y LSTMs.

Las RNNs procesan las entradas secuencialmente, mientras que un vector de estado oculto se mantiene y altera por las palabras de entrada a medida que avanzan a través de la red. Los estados ocultos de una RNN suelen contener muy poca información relevante sobre las entradas anteriores. Las nuevas entradas a menudo sobrescriben el estado actual, lo que causa pérdida de información y degrada el rendimiento con el tiempo.

En contraste, los modelos de transformador procesan la secuencia de entrada completa al mismo tiempo. El mecanismo de atención permite que cada palabra de salida esté informada por cada palabra de entrada y estado oculto, lo que hace que la red sea más confiable para textos largos.

Las LSTMs son versiones modificadas de RNNs, ajustadas para manejar secuencias de entrada más largas. La arquitectura de LSTM utiliza una estructura llamada “puertas”, con “puertas de entrada”, “puertas de salida” y “puertas de olvido”. El diseño con puertas maneja la pérdida de información común a los modelos de RNN. Los datos aún se procesan secuencialmente, y el diseño recurrente de la arquitectura hace que los modelos de LSTM sean difíciles de entrenar utilizando computación paralela, lo que hace que el tiempo de entrenamiento sea más largo en general.

Los ingenieros de LSTM a menudo agregaban mecanismos de atención a la red, lo que se sabía que mejoraba el rendimiento del modelo. Sin embargo, finalmente se descubrió que el mecanismo de atención solo mejoraba la precisión. Este descubrimiento llevó a la creación de redes de transformador que utilizaban mecanismos de atención y computación paralela gracias a las GPU.

Bloguero y programador con especialidades en Machine Learning y Deep Learning temas. Daniel espera ayudar a otros a utilizar el poder de la IA para el bien social.