Fundamentos de la IA
ÂŋQuÃĐ son las Redes Neuronales Transformer?
Redes Neuronales Transformer DescripciÃģn
Transformadores son un tipo de modelo de aprendizaje automÃĄtico que se especializa en procesar y interpretar datos secuenciales, lo que los hace Ãģptimos para tareas de procesamiento de lenguaje natural. Para comprender mejor quÃĐ es un transformador de aprendizaje automÃĄtico y cÃģmo operan, echemos un vistazo mÃĄs cercano a los modelos de transformadores y los mecanismos que los impulsan.
Este artÃculo cubrirÃĄ:
- Modelos de Secuencia a Secuencia
- 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 lenguaje natural que se utilizan para convertir secuencias de un tipo en secuencias de otro tipo. Hay varios tipos de modelos de secuencia a secuencia, como Redes Neuronales Recurrentes y Memoria Larga Corta (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 transformadores y por quÃĐ son superiores a los modelos de secuencia a secuencia tradicionales.
En resumen, los modelos 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 pasan por 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 pueden ser mejorados mediante el uso de un âmecanismo de atenciÃģnâ. Un mecanismo de atenciÃģn define quÃĐ partes de la secuencia de entrada la red debe enfocarse 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 transformer a un nivel mÃĄs alto.
En general, una red neuronal transformer se ve algo asÃ:

Aunque esta estructura general puede cambiar entre redes, las piezas bÃĄsicas permanecerÃĄn las mismas: codificaciones posicionales, vectores de palabra, mecanismo de atenciÃģn, red neuronal de alimentaciÃģn directa.
Codificaciones Posicionales y Vectores de Palabra
Una red neuronal transformer opera tomando una secuencia de entradas y convirtiÃĐndolas en dos secuencias. La red neuronal transformer produce una secuencia de incrustaciones de vectores de palabra y codificaciones posicionales.
Las incrustaciones de vectores de palabra 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 las 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 pueden usarse en diferentes contextos. Una red neuronal transformer resuelve este problema haciendo que los valores de las palabras sean mÃĄs flexibles, utilizando funciones sinusoidales para permitir que los vectores de palabra 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 por las capas de la red neuronal transformer.
Las codificaciones posicionales y las incrustaciones de vectores de palabra se suman y luego se pasan a las redes de codificador y decodificador. Aunque las redes neuronales transformer utilizan esquemas de codificador/decodificador al igual que RNNs y LSTMs, una de las principales diferencias entre ellos es que toda la secuencia de entrada se alimenta 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 las de decodificador tengan un mecanismo de atenciÃģn.
Dado 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 neuronales transformer tienen sobre RNNs y LSTMs.
El Mecanismo de AtenciÃģn
El mecanismo de atenciÃģn es la parte mÃĄs importante de una red neuronal transformer. 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 RNN o LSTM tÃpico. Los modelos de secuencia a secuencia tradicionales descartan todos los estados intermedios y utilizan solo el estado/contexto 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 la longitud de una secuencia de entrada aumenta, el rendimiento del modelo se degrada al utilizar este mÃĐtodo. Esto se debe a que se vuelve muy 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 del codificador intermedios para construir vectores de contexto para el decodificador.
El mecanismo de atenciÃģn define quÃĐ tan importante es cada token de entrada para el modelo cuando se crean las codificaciones para cualquier token dado. Por ejemplo, âelloâ 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 âelloâ 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, codificador-solo, decodificador-solo.
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 codificador-solo y decodificador-solo 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:
- Calcular una puntuaciÃģn para todos los estados del codificador.
- Calcular los pesos de atenciÃģn
- Calcular los vectores de contexto
- Actualizar el vector de contexto con la salida del paso de tiempo anterior
- 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 directa 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, 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.
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. Dado que el decodificador no tiene una 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.
Los RNNs procesan las entradas secuencialmente, mientras que un vector de estado oculto se mantiene y altera por las palabras de entrada a medida que pasan por la red. Los estados ocultos de un RNN tÃpicamente contienen 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.
Los LSTMs son una versiÃģn modificada de RNNs, ajustada 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 con puertas maneja la pÃĐrdida de informaciÃģn comÚn a los modelos RNN. Los datos aÚn se procesan secuencialmente, y el diseÃąo recurrente hace que los modelos 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 LSTMs a menudo agregaban mecanismos de atenciÃģn a la red, lo que se sabÃa que mejoraba el rendimiento del modelo. Sin embargo, eventualmente se descubriÃģ que el mecanismo de atenciÃģn solo mejoraba la precisiÃģn. Este descubrimiento llevÃģ a la creaciÃģn de redes neuronales transformer que utilizaban mecanismos de atenciÃģn y computaciÃģn paralela gracias a las GPU.












