Modelo de transformador ¿Qué es un modelo de transformador?
Un modelo de transformador es un tipo de arquitectura de red neuronal diseñada para manejar datos secuenciales, como texto, pero también se puede aplicar a otros tipos de datos. A diferencia de modelos anteriores como las RNN (redes neuronales recurrentes), los transformadores pueden procesar secuencias enteras de manera simultánea, por lo que son más rápidos y eficientes. En el ámbito de la IA generativa, los transformadores han revolucionado tareas como la generación, la traducción y la resumen de texto.
- Transformadores frente a RNN
- ¿Cómo funcionan los modelos de transformador?
- ¿Cómo funcionan los modelos de transformador? - Parte 2
- Conviértete en partner de HPE
¿En qué se diferencian los transformadores y las RNN?
Las principales diferencias entre los transformadores y las redes neuronales recurrentes (RNN) radican en sus arquitecturas, sus mecanismos de procesamiento de los datos y su eficacia en el manejo de las dependencias de largo alcance en datos secuenciales.
1. Procesamiento secuencial frente a procesamiento en paralelo
RNN: procesan secuencias de entrada de elemento en elemento, utilizando la salida del paso anterior para informar el siguiente. Esto hace que las RNN sean inherentemente secuenciales, lo que significa que no pueden llevar a cabo tareas de computación paralela con facilidad.
Transformadores: utilizan un mecanismo llamado autoatención, lo que les permite tener una visión global y simultánea de toda la secuencia. Esto permite que los transformadores procesen diferentes partes de la secuencia en paralelo, lo que genera tiempos de entrenamiento mucho más rápidos, especialmente para secuencias largas.
2. Manejo de dependencias de largo alcance
RNN: las dependencias de largo alcance les resultan complejas debido al problema del gradiente que desaparece/explota. La información de etapas anteriores de la secuencia puede desvanecerse a medida que se propaga en el tiempo, lo que dificulta que las RNN retengan un contexto importante en secuencias largas.
Transformadores: utilizan la autoatención para computar las relaciones entre todas las palabras de la secuencia simultáneamente, lo que les permite modelar dependencias de largo alcance de manera más efectiva. El mecanismo de atención conecta directamente palabras distantes sin necesidad de procesamiento paso a paso.
3. Arquitectura
RNN: La arquitectura es recurrente, lo que significa que la red tiene bucles que mantienen un "estado oculto" que transporta información de pasos de tiempo anteriores. Se desarrollaron variantes como LSTM (memoria a corto/largo plazo) y GRU (unidades recurrentes cerradas) para mitigar los problemas con las RNN tradicionales, pero la naturaleza secuencial permanece.
Transformadores: constan de capas de autoatención multicéfala y redes neuronales feedforward o de propagación hacia adelante, sin ninguna estructura recurrente. No existe el concepto de un estado oculto que se transmite de un paso de tiempo al siguiente, ya que el mecanismo de autoatención permite conexiones directas entre dos posiciones cualesquiera en la secuencia.
4. Eficiencia del entrenamiento
RNN: dado que las RNN procesan datos de forma secuencial, generalmente son más lentas de entrenar. La paralelización es difícil porque cada paso de tiempo depende del anterior.
Transformadores: debido a sus capacidades de procesamiento paralelo, los transformadores se pueden entrenar de manera más eficiente, especialmente en hardware moderno como GPU y TPU. Pueden manejar grandes conjuntos de datos y secuencias largas con mayor eficiencia de computación.
5. Complejidad de computación y memoria
RNN: tienen menores requisitos de memoria ya que procesan un paso de tiempo a la vez. Sin embargo, su naturaleza secuencial limita su capacidad para manejar secuencias muy largas de manera eficiente.
Transformadores: requieren significativamente más memoria, en especial durante el entrenamiento, porque almacenan ponderaciones de atención entre todos los pares de tokens. Su complejidad de computación crece cuadráticamente con la longitud de la secuencia debido al mecanismo de atención.
6. Casos de uso
RNN: se utilizaban tradicionalmente para tareas como reconocimiento de voz, modelado de lenguaje y pronóstico de series temporales. Las LSTM y GRU solían emplearse para tareas que requerían la memoria de secuencias largas.
Transformadores: predominantes en tareas como el procesamiento del lenguaje natural (PLN), la traducción automática, la generación de texto, entre muchas otras. Modelos como BERT, GPT y T5 se basan en la arquitectura del transformador, que ha establecido nuevos puntos de referencia de rendimiento en una amplia gama de tareas de procesamiento del lenguaje natural.
¿Cómo funcionan los modelos de transformador?
Los transformadores funcionan utilizando una combinación de mecanismos de autoatención, codificación posicional y redes feedforward o de propagación hacia adelante. La arquitectura les permite procesar datos secuenciales de manera eficiente y capturar dependencias de largo alcance entre diferentes partes de la entrada. A continuación, se muestra un desglose detallado de cómo funcionan los transformadores:
1. Incrustación de entrada y codificación posicional
Incrustaciones de entrada: en los transformadores, la entrada (como una secuencia de palabras en una oración) se convierte primero en incrustaciones, que son vectores densos de tamaño fijo. Estas incrustaciones representan el significado semántico de los tokens (palabras o subpalabras).
Codificación posicional: dado que la arquitectura del transformador no tiene un mecanismo integrado para capturar el orden de la secuencia (a diferencia de las RNN), se agregan codificaciones posicionales a las incrustaciones de entrada. Estas codificaciones inyectan información sobre la posición de cada token en la secuencia. A menudo son funciones sinusoidales o incrustaciones aprendidas que varían según las posiciones.
Esto permite que el modelo comprenda las posiciones relativas y absolutas de los tokens.
2. Mecanismo de autoatención
El mecanismo de autoatención es el componente central de los transformadores. Permite que el modelo pondere la importancia de cada token en relación con todos los demás tokens en la secuencia de entrada. Para cada token, la autoatención determina a qué otros tokens debe prestar atención.
¿Cómo funcionan los modelos de transformador?
Cómo funciona la autoatención:
1. Transformación de entrada: para cada token en la secuencia de entrada, el modelo computa tres vectores: Consulta (Q), Clave (K) y Valor (V), todos derivados de las incrustaciones de tokens. Estos vectores se aprenden a través de transformaciones lineales.
- Consulta (Q): determina cuánto enfoque poner en otros tokens.
- Clave (K): representa el contenido de los otros tokens en los que se enfocará.
- Valor (V): contiene la información que se extraerá o pasará a través del mecanismo de atención.
2. Puntuaciones de atención: las puntuaciones de atención entre tokens se computan como el producto escalar entre la Consulta de un token y la Clave de otro. Esto mide hasta qué punto es relevante o se muestra «atento» un token respecto a otro.
Las puntuaciones se escalan mediante la raíz cuadrada de la dimensión del vector clave dkd_kdk para estabilizar los gradientes.
3. Suma ponderada: las puntuaciones de atención se pasan a través de una función softmax, para convertirlos en probabilidades que suman 1. Estas puntuaciones se utilizan para ponderar los vectores de Valor, obteniéndose una suma ponderada que refleja la importancia de cada token en relación con los demás.
Atención multicéfala:
en lugar de utilizar un único mecanismo de autoatención, el transformador utiliza una atención multicéfala. Se crean varios conjuntos de vectores de Consulta, Clave y Valor (cada conjunto es una «cabeza» de atención), y cada cabeza atiende a diferentes aspectos de la entrada. Los resultados de todas las cabezas de atención se concatenan y se pasan a través de una capa lineal.
Esto permite que el modelo capture simultáneamente diferentes tipos de relaciones entre tokens.
3. Redes neuronales feedforward o de propagación hacia adelante
Después del mecanismo de autoatención, cada representación de token se pasa a través de una red neuronal feedforward o de propagación hacia adelante (FFN). Normalmente se trata de una red neuronal de dos capas con una función de activación ReLU. La FFN se aplica independientemente a cada posición y se comparte el mismo conjunto de ponderaciones entre todas las posiciones.
arduino
Copiar código
\[
\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2
\]
La FFN permite una mayor transformación de las representaciones de tokens e introduce una no linealidad, lo cual mejora la expresividad del modelo.
4. Conexiones residuales y normalización de capas
Para estabilizar el entrenamiento y ayudar con el flujo de gradiente, se utilizan conexiones residuales (también llamadas conexiones de salto) en torno a las capas de autoatención y de propagación hacia adelante. Esto significa que la entrada de cada subcapa se agrega a la salida de esa subcapa antes de pasar a la siguiente.
Cada conexión residual va seguida de una normalización de capa, que normaliza la salida para reducir el desplazamiento de covariables internas y mejorar la estabilidad del entrenamiento.
5. Arquitectura de codificador y decodificador
La arquitectura del transformador original consta de dos componentes principales: codificador y decodificador. Sin embargo, algunos modelos, como BERT, solo utilizan el codificador, mientras que otros, como GPT, solo utilizan el decodificador.
Codificador:
El codificador se compone de varias capas idénticas (normalmente entre 6 y 12). Cada capa tiene dos componentes principales:
- Autoatención multicéfala
- Red neuronal feedforward o de propagación hacia adelante
El codificador recibe la secuencia de entrada y la procesa a través de cada capa, generando una salida que codifica los tokens de entrada con el contexto de otros tokens en la secuencia.
Decodificador:
El decodificador también consta de múltiples capas idénticas, con un mecanismo adicional:
autoatención multicéfala enmascarada: evita que los tokens presten atención a tokens futuros en la secuencia (importante en tareas autorregresivas como la generación de texto).
El decodificador también incluye capas de atención cruzada que toman la salida del codificador como entrada adicional para guiar el proceso de generación.
6. Salida (para modelos de lenguaje)
Para tareas como el modelado de lenguaje o la traducción automática, el decodificador produce una secuencia de salida token por token. En la capa final, la salida del decodificador se pasa a través de una función softmax para generar probabilidades sobre el vocabulario, lo que permite que el modelo prediga el próximo token o genere traducciones.
7. Objetivos del entrenamiento
Modelado de lenguaje enmascarado (MLM): se utiliza en modelos como BERT, donde se enmascaran tokens aleatorios en la secuencia de entrada y se entrena el modelo para predecirlos.
Modelado de lenguaje causal (CLM): se utiliza en modelos como GPT, donde el modelo predice el siguiente token en la secuencia basándose en los tokens anteriores.
Objetivos Seq2Seq: se utiliza en tareas como la traducción automática, donde el modelo aprende a asignar secuencias de entrada a secuencias de salida (por ejemplo, traducir una oración del inglés al francés).
Conviértete en partner de HPE
HPE proporciona productos y servicios para ayudar con la creación, implementación y ejecución de un modelo multimodal.
HPE Cray XD670
Acelera el rendimiento de la inteligencia artificial con HPE Cray XD670. Obtén más información sobre cómo puedes entrenar los LLM, el PLN o los modelos multimodales para tu empresa con la supercomputación.
HPE Generative AI Implementation Services
HPE Machine Learning Development Software
¿En qué se diferencian los transformadores y las RNN?
Característica | RNN (incluidas LSTM y GRU) | Transformadores |
---|---|---|
Método de procesamiento | Secuencial | Paralelo |
Manejo de secuencias largas | No maneja bien dependencias de largo alcance | Destaca gracias a la autoatención |
Arquitectura | Estados recurrentes y ocultos | Autoatención multicéfala |
Eficiencia del entrenamiento | Lento, más difícil de realizar paralelismo de modelos | Más rápido, mayor capacidad para paralelismo de modelos |
Eficiencia de la memoria | Requisitos de memoria menores | Alto uso de memoria |
Aplicaciones comunes | Series temporales, primeras tareas de procesamiento del lenguaje natural | Procesamiento del lenguaje natural, traducción, generación de textos, etc. |
Resumen de los componentes del transformador:
Componente | Descripción |
---|---|
Incrustaciones de entrada | Convierte tokens en vectores de tamaño fijo. |
Codificación posicional | Agrega información sobre las posiciones de los tokens en la secuencia. |
Autoatención | Calcula las puntuaciones de atención entre todos los tokens para capturar dependencias. |
Atención multicéfala | Utiliza múltiples cabezas de atención para capturar diferentes relaciones. |
Red neuronal feedforward o de propagación hacia adelante | Aplica transformaciones no lineales a representaciones de tokens. |
Conexiones residuales | Ayuda a estabilizar el entrenamiento y mejora el flujo de gradiente. |
Codificador | Procesa la secuencia de entrada y genera representaciones contextuales. |
Diferentes tipos de transformadores:
¿Cuáles son los diferentes tipos de transformadores?
Estos modelos de transformadores gozan de una adopción generalizada en todos los sectores para aplicaciones comerciales, incluido el servicio de atención al cliente, la generación de contenido, la traducción, los asistentes virtuales, los sistemas de recomendación, etc.
Tipo de modelo | Modelos notables | Principales características | Aplicaciones |
---|---|---|---|
Basado en codificador | BERT, RoBERTa, XLNet, ELECTRA | Centrado en la comprensión del texto (clasificación, NER, etc.) | Tareas de procesamiento del lenguaje natural que requieren comprensión de textos |
Basado en decodificador | GPT (1, 2, 3, 4), CTRL, OPT | Optimizado para tareas generativas (generación de texto, diálogo) | Generación de texto, IA conversacional |
Codificador-Decodificador | T5, BART, mT5, Pegasus | Combina comprensión y generación (traducción automática, sintetización) | Sintetización, traducción, respuesta a preguntas |
Multimodal | CLIP, DALL·E, FLAVA | Maneja múltiples tipos de datos (texto + imagen) | Generación de imágenes, tareas de texto-imágenes |