talón ¿Qué son las redes neuronales de transformadores? - Unite.AI
Contáctanos
Clase magistral de IA:

AI 101

¿Qué son las redes neuronales de transformadores?

mm
Actualizado on

Descripción de las redes neuronales de transformadores

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 del lenguaje natural. Para comprender mejor qué es un transformador de aprendizaje automático y cómo funciona, echemos un vistazo más de cerca a los modelos de transformadores y los mecanismos que los impulsan.

Este artículo cubrirá:

  • Modelos de secuencia a secuencia
  • La arquitectura de la red neuronal del transformador
  • El mecanismo de atención
  • Diferencias entre transformadores y RNN/LSTM

Modelos de secuencia a secuencia

Los modelos de secuencia a secuencia son un tipo de modelo 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, tales como Red neuronal recurrente modelos y Memoria a corto plazo (LSTM) .

Los modelos tradicionales de secuencia a secuencia como RNN y LSTMS no son el enfoque de este artículo, pero es necesario comprenderlos para apreciar cómo funcionan los modelos de transformadores y por qué son superiores a los modelos tradicionales de secuencia a secuencia.

En resumen, los modelos RNN y LSTM constan de redes de codificadores y decodificadores que analizan datos de entrada en varios pasos de tiempo. El modelo 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 del codificador toma una secuencia de entrada y un estado oculto del paso de tiempo anterior de la serie. Los valores del estado oculto se actualizan a medida que los datos avanzan a través de la red, hasta el último paso de tiempo, donde se genera un "vector de contexto". Luego, el vector de contexto se pasa a la red decodificadora, que se utiliza para generar una secuencia objetivo prediciendo la palabra más probable que se empareja con la palabra de entrada para los respectivos pasos de tiempo.

Estos modelos se pueden aumentar mediante el uso de un "mecanismo de atención”. Un mecanismo de atención define en qué partes del vector de entrada debe enfocarse la red para generar la salida adecuada. Para decirlo de otra manera, 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 palabras que no contienen información relevante.

Transformador Arquitectura de red neuronal

Veremos el mecanismo de atención con más detalle más adelante, pero por ahora echemos un vistazo a la arquitectura de una red neuronal transformadora en un nivel superior.

En general, una red neuronal transformadora se parece a lo siguiente:

Si bien esta estructura general puede cambiar entre redes, las piezas centrales seguirán siendo las mismas: codificaciones posicionales, vectores de palabras, mecanismo de atención, red neuronal de avance.

Codificaciones posicionales y vectores de palabras

Un transformador de redes neuronales opera tomando una secuencia de entradas y convirtiendo estas entradas en otras dos secuencias. El transformador produce una secuencia de incrustaciones de vectores de palabras y codificaciones posicionales.

Incrustaciones de vectores de palabras son solo el texto representado en un formato numérico que la red neuronal puede procesar. Mientras tanto, 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 redes neuronales basados ​​en texto, como RNN y LSTM, usan 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 usar en diferentes contextos. Una red de transformadores 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 diferentes valores dependiendo de la posición de la palabra en la oración.

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

Las codificaciones posicionales y las incrustaciones de vectores de palabras se suman y luego se pasan a las redes de codificador y decodificador. Si bien las redes neuronales de transformadores usan esquemas de codificador/descodificador como RNN y LSTM, una diferencia importante entre ellos es que todos los datos de entrada se alimentan a la red al mismo tiempo, mientras que en RNN/LSTM, los datos se pasan secuencialmente.

Las redes de codificadores son responsables de convertir las entradas en representaciones de las que la red puede aprender, mientras que las redes de decodificadores 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. Fundamentalmente, tanto las redes del codificador como las del decodificador tienen un mecanismo de atención.

Debido a que las GPU son capaces de realizar procesamiento en paralelo, se utilizan múltiples 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, denominada atención de "múltiples cabezas", 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 tienen las redes de transformadores sobre RNN y LSTM.

El mecanismo de atención

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

Descartar todo menos 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 una secuencia de entrada, el rendimiento del modelo se degradará al utilizar este método. Esto se debe a que se vuelve 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 intermedios del codificador para construir vectores de contexto para el decodificador.

El mecanismo de atención define la importancia de otros tokens de entrada para el modelo cuando se crean codificaciones para cualquier token dado. Por ejemplo, “eso” es un pronombre general, a menudo usado para referirse a animales cuando se desconoce su sexo. Un mecanismo de atención permitiría que un modelo de transformador determine que en el contexto actual "eso" 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 usar de tres maneras diferentes: codificador a decodificador, solo codificador, solo decodificador.

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

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

  1. Cálculo de una puntuación para todos los estados del codificador.
  2. Cálculo de los pesos de atención
  3. Vectores de contexto de computación
  4. Actualización del vector de contexto con salida de paso de tiempo anterior
  5. Generación de salida con decodificador

El primer paso es hacer que el decodificador calcule una puntuación para todos los estados del codificador. Esto se hace entrenando la red del decodificador, que es una red neuronal básica de avance. Cuando el decodificador se entrena en la primera palabra de la secuencia de entrada, todavía no se ha creado ningún estado interno/oculto, por lo que el último estado del codificador se usa normalmente como el estado anterior del decodificador.

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

Una vez que se han calculado los pesos de atención, se debe calcular el vector de contexto. Esto se hace multiplicando los pesos de atención y el estado oculto juntos para cada paso de tiempo.

Una vez que se calcula el vector de contexto, se usa 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 una salida anterior a la que referirse en el primer paso de tiempo, a menudo se usa en su lugar un token especial de "inicio".

Diferencias entre transformadores y RNN/LSTM

Veamos rápidamente algunas de las diferencias entre RNN y LSTM.

Los RNN procesan las entradas secuencialmente, mientras que las palabras de entrada mantienen y modifican un vector de estado oculto a medida que se mueven a través de la red. Los estados ocultos de un RNN suelen contener muy poca información relevante con respecto a las entradas anteriores. Las nuevas entradas a menudo sobrescriben el estado actual, lo que provoca la pérdida de información y degrada el rendimiento con el tiempo.

Por el contrario, los modelos de transformadores procesan toda la secuencia de entrada a la vez. El mecanismo de atención permite que cada palabra de salida sea informada por cada entrada y estado oculto, lo que hace que la red sea más confiable para textos largos.

Los LSTM son una versión modificada de los RNN, ajustados para manejar secuencias de entrada más largas. La arquitectura LSTM utiliza una estructura llamada "puertas", con "puertas de entrada", "puertas de salida" y "puertas de olvido". El diseño cerrado se ocupa de la pérdida de información común a los modelos RNN. Los datos todavía se procesan secuencialmente, y el diseño recurrente de la arquitectura hace que los modelos LSTM sean difíciles de entrenar usando computación paralela, lo que hace que el tiempo de entrenamiento sea más largo en general.

Los ingenieros de LSTM agregaban con frecuencia mecanismos de atención a la red, que se sabía que mejoraban el rendimiento del modelo. Sin embargo, finalmente se descubrió que el mecanismo de atención por sí solo mejoraba la precisión. Este descubrimiento condujo a la creación de redes de transformadores que utilizaban mecanismos de atención y computación paralela gracias a las GPU.