Attention Is All You Need — Vaswani et al. (2017)
La Atención es Todo lo que Necesitas — Vaswani et al. (2017)
Resumen
Los modelos dominantes de transducción de secuencias se basan en redes neuronales recurrentes o convolucionales complejas que incluyen un codificador y un decodificador. Los modelos de mejor rendimiento también conectan el codificador y el decodificador a través de un mecanismo de atención. Proponemos una nueva arquitectura de red simple, el Transformer, basada únicamente en mecanismos de atención, prescindiendo por completo de la recurrencia y las convoluciones. Los experimentos en dos tareas de traducción automática muestran que estos modelos son superiores en calidad, además de ser más paralelizables y requerir significativamente menos tiempo de entrenamiento. Nuestro modelo alcanza 28.4 BLEU en la tarea de traducción de inglés a alemán de WMT 2014, mejorando los mejores resultados existentes, incluyendo conjuntos, en más de 2 BLEU. En la tarea de traducción de inglés a francés de WMT 2014, nuestro modelo establece un nuevo state of art en BLEU de 41.8 para un solo modelo, después de entrenar durante 3.5 días en ocho GPUs, una fracción pequeña del costo de entrenamiento de los mejores modelos de la literatura. Demostramos que el Transformer se generaliza bien a otras tareas al aplicarlo con éxito al análisis de constituyentes en inglés, tanto con grandes como con limitados datos de entrenamiento.
1 Introducción
Las redes neuronales recurrentes, en particular la memoria de corto plazo a largo plazo [13] y las redes neuronales recurrentes con compuerta [7], se han establecido firmemente como enfoques de estado de la técnica en problemas de modelado y transducción de secuencias, como el modelado de lenguaje y la traducción automática [35, 2, 5]. Numerosos esfuerzos han continuado empujando los límites de los modelos de lenguaje recurrentes y las arquitecturas codificador-decodificador [38, 24, 15].
Los modelos recurrentes típicamente factorizan el cálculo a lo largo de las posiciones de los símbolos en las secuencias de entrada y salida. Alineando las posiciones con pasos en el tiempo de cálculo, generan una secuencia de estados ocultos h_t, como una función del estado oculto anterior h_ y la entrada para la posición t. Esta naturaleza inherentemente secuencial impide la paralelización dentro de los ejemplos de entrenamiento, lo que se vuelve crítico en longitudes de secuencia más largas, ya que las limitaciones de memoria restringen el agrupamiento entre ejemplos. Investigaciones recientes han logrado mejoras significativas en la eficiencia computacional mediante técnicas de factorización [21] y cálculo condicional [32], mientras que también mejoran el rendimiento del modelo en el caso de este último. Sin embargo, la restricción fundamental del cálculo secuencial permanece.
Los mecanismos de atención se han convertido en una parte integral de los modelos atractivos de modelado y transducción de secuencias en diversas tareas, permitiendo el modelado de dependencias sin considerar su distancia en las secuencias de entrada o salida [2, 19]. Sin embargo, en la mayoría de los casos [27], tales mecanismos de atención se utilizan en conjunto con una red recurrente.
En este trabajo proponemos el Transformer, una arquitectura de modelo que evita la recurrencia y en su lugar se basa completamente en un mecanismo de atención para establecer dependencias globales entre la entrada y la salida. El Transformer permite una paralelización significativamente mayor y puede alcanzar un nuevo estado del arte en calidad de traducción después de ser entrenado durante tan solo doce horas en ocho GPUs P100.
- Antecedentes
El objetivo de reducir el cómputo secuencial también forma la base del Extended Neural GPU [16], ByteNet [18] y ConvS2S [9], todos los cuales utilizan redes neuronales convolucionales como bloque básico, calculando representaciones ocultas en paralelo para todas las posiciones de entrada y salida. En estos modelos, el número de operaciones requeridas para relacionar señales de dos posiciones arbitrarias de entrada o salida crece con la distancia entre posiciones, linealmente para ConvS2S y logarítmicamente para ByteNet. Esto dificulta el aprendizaje de dependencias entre posiciones distantes [12]. En el Transformer esto se reduce a un número constante de operaciones, aunque a costa de una resolución efectiva reducida debido al promediado de posiciones ponderadas por atención, un efecto que contrarrestamos con la Atención Multi-Cabeza como se describe en la sección 3.2.
La atención propia (self-attention), a veces llamada intra-attention, es un mecanismo de atención que relaciona diferentes posiciones de una sola secuencia para calcular una representación de la secuencia. La atención propia se ha utilizado con éxito en una variedad de tareas, incluyendo comprensión de lectura, resumen abstractivo, implicación textual y aprendizaje de representaciones de oraciones independientes de la tarea [4, 27, 28, 22].
Las redes de memoria de extremo a extremo (end-to-end memory networks) se basan en un mecanismo de atención recurrente en lugar de recurrencia alineada con secuencias y han demostrado un buen desempeño en tareas de respuesta a preguntas en lenguaje simple y modelado de lenguaje [34].
Sin embargo, hasta donde sabemos, el Transformer es el primer modelo de transducción que se basa completamente en atención propia para calcular representaciones de su entrada y salida sin utilizar RNNs alineadas con secuencias o convolución. En las siguientes secciones, describiremos el Transformer, justificaremos la atención propia y discutiremos sus ventajas sobre modelos como [17, 18] y [9].
- Arquitectura del Modelo
Consulte el pie de figura
Figura 1: El Transformer - arquitectura del modelo.
La mayoría de los modelos competitivos de transducción de secuencias neuronales tienen una estructura codificador-decodificador [5, 2, 35]. Aquí, el codificador mapea una secuencia de entrada de representaciones de símbolos (x₁, ..., xₙ) a una secuencia de representaciones continuas 𝐳 = (z₁, ..., zₙ). Dado 𝐳, el decodificador genera entonces una secuencia de salida (y₁, ..., yₘ) de símbolos un elemento a la vez. En cada paso, el modelo es auto-regresivo [10], consumiendo los símbolos generados previamente como entrada adicional al generar el siguiente.
El Transformer sigue esta arquitectura general utilizando capas de auto-atención apiladas y capas completamente conectadas, tanto para el codificador como para el decodificador, mostradas en las mitades izquierda y derecha de la Figura 1, respectivamente.
3.1 Pilas del codificador y decodificador
Codificador:
El codificador está compuesto por una pila de N=6 capas idénticas. Cada capa tiene dos subcapas. La primera es un mecanismo de atención propia multi-cabeza, y la segunda es una red neuronal de avance completamente conectada y posicionalmente simple. Empleamos una conexión residual [11] alrededor de cada una de las dos subcapas, seguida de normalización de capa [1]. Es decir, la salida de cada subcapa es LayerNorm(x + Sublayer(x)), donde Sublayer(x) es la función implementada por la subcapa misma. Para facilitar estas conexiones residuales, todas las subcapas en el modelo, así como las capas de incrustación, producen salidas de dimensión d_modelo=512.
Decodificador:
El decodificador también está compuesto por una pila de N=6 capas idénticas. Además de las dos subcapas en cada capa del codificador, el decodificador inserta una tercera subcapa, que realiza atención multi-cabeza sobre la salida de la pila del codificador. Similar al codificador, empleamos conexiones residuales alrededor de cada una de las subcapas, seguidas de normalización de capa. También modificamos la subcapa de auto-atención en la pila del decodificador para evitar que las posiciones atiendan a posiciones subsiguientes. Este enmascaramiento, combinado con el hecho de que las incrustaciones de salida están desplazadas en una posición, asegura que las predicciones para la posición i solo puedan depender de las salidas conocidas en posiciones menores que i.
3.2 Atención
Una función de atención puede describirse como un mapeo de una consulta y un conjunto de pares clave-valor a una salida, donde la consulta, las claves, los valores y la salida son todos vectores. La salida se calcula como una suma ponderada de los valores, donde el peso asignado a cada valor se calcula mediante una función de compatibilidad de la consulta con la clave correspondiente.
3.2.1 Atención de producto escalar escalado
Llamamos a nuestra atención particular "Atención de Producto Escalar Escalado" (Figura 2). La entrada consiste en consultas y claves de dimensión d_k, y valores de dimensión d_v. Calculamos los productos escalares de la consulta con todas las claves, dividimos cada uno por √d_k, y aplicamos una función softmax para obtener los pesos asignados a los valores.
En la práctica, calculamos la función de atención en un conjunto de consultas simultáneamente, agrupadas en una matriz Q. Las claves y valores también se agrupan en matrices K y V. Calculamos la matriz de salidas como:
Atención
Las dos funciones de atención más comúnmente utilizadas son la atención aditiva [2] y la atención por producto punto (multiplicativa). La atención por producto punto es idéntica a nuestro algoritmo, excepto por el factor de escalado . La atención aditiva calcula la función de compatibilidad utilizando una red neuronal de avance con una sola capa oculta. Si bien ambas son similares en complejidad teórica, la atención por producto punto es mucho más rápida y eficiente en espacio en la práctica, ya que puede implementarse utilizando código altamente optimizado para multiplicación de matrices.
Para valores pequeños de , ambos mecanismos funcionan de manera similar, pero la atención aditiva supera a la atención por producto punto sin escalado para valores mayores de [3]. Sospechamos que para valores grandes de , los productos punto crecen en magnitud, llevando a la función softmax a regiones donde tiene gradientes extremadamente pequeños. Para contrarrestar este efecto, escalamos los productos punto por .
Atención Multi-Cabeza
En lugar de realizar una única función de atención con claves, valores y consultas de dimensión , encontramos beneficioso proyectar linealmente las consultas, claves y valores veces con diferentes proyecciones lineales aprendidas a dimensiones , y , respectivamente. En cada una de estas versiones proyectadas de consultas, claves y valores, realizamos la función de atención en paralelo, obteniendo valores de salida de dimensión . Estos se concatenan y se proyectan una vez más, dando como resultado los valores finales, como se muestra en la Figura 2.
La atención multi-cabeza permite al modelo atender conjuntamente a información de diferentes subespacios de representación en diferentes posiciones. Con una sola cabeza de atención, el promedio inhibe esto.
donde
Donde las proyecciones son matrices de parámetros , , y .
En este trabajo empleamos capas de atención paralelas, o cabezas. Para cada una de estas utilizamos . Debido a la dimensión reducida de cada cabeza, el costo computacional total es similar al de la atención de una sola cabeza con dimensionalidad completa.
Aplicaciones de la Atención en nuestro Modelo
El Transformer utiliza la atención multi-cabeza de tres maneras diferentes:
- En las capas de "atención codificador-decodificador", las consultas provienen de la capa anterior del decodificador, mientras que las claves y valores de memoria provienen de la salida del codificador. Esto permite que cada posición en el decodificador atienda a todas las posiciones en la secuencia de entrada. Este mecanismo replica los típicos mecanismos de atención codificador-decodificador en modelos de secuencia a secuencia como [38, 2, 9].
- El codificador contiene capas de atención propia. En una capa de atención propia, todas las claves, valores y consultas provienen del mismo lugar, en este caso, la salida de la capa anterior en el codificador. Cada posición en el codificador puede atender a todas las posiciones en la capa anterior del codificador.
- De manera similar, las capas de atención propia en el decodificador permiten que cada posición en el decodificador atienda a todas las posiciones en el decodificador hasta e incluyendo esa posición. Debemos prevenir el flujo de información hacia la izquierda en el decodificador para preservar la propiedad autorregresiva. Implementamos esto dentro de la atención de producto escalar escalado enmascarando (estableciendo a −∞) todos los valores en la entrada de la función softmax que correspondan a conexiones ilegales. Véase la Figura 2.
3.3 Redes neuronales feed-forward posicionales
Además de las subcapas de atención, cada una de las capas en nuestro codificador y decodificador contiene una red neuronal feed-forward completamente conectada, que se aplica a cada posición de forma separada e idéntica. Esta consiste en dos transformaciones lineales con una activación ReLU en medio.
FFN(x) = max(0, xW₁ + b₁)W₂ + b₂ (2)
Aunque las transformaciones lineales son las mismas en diferentes posiciones, utilizan parámetros distintos entre capas. Otra forma de describir esto es como dos convoluciones con tamaño de kernel 1. La dimensionalidad de entrada y salida es d_model = 512, y la capa interna tiene dimensionalidad d_ff = 2048.
3.4 Incrustaciones y función softmax
De manera similar a otros modelos de transducción de secuencias, utilizamos incrustaciones aprendidas para convertir los tokens de entrada y salida en vectores de dimensión d_model. También usamos la habitual transformación lineal aprendida y la función softmax para convertir la salida del decodificador en probabilidades predichas del siguiente token. En nuestro modelo, compartimos la misma matriz de pesos entre las dos capas de incrustación y la transformación lineal pre-softmax, similar a [30]. En las capas de incrustación, multiplicamos esos pesos por √d_model.
3.5 Codificaciones posicionales
Dado que nuestro modelo no contiene recurrencia ni convolución, para que el modelo pueda hacer uso del orden de la secuencia, debemos inyectar información sobre la posición relativa o absoluta de los tokens en la secuencia. Para ello, añadimos "codificaciones posicionales" a las incrustaciones de entrada en la base de las pilas del codificador y decodificador. Las codificaciones posicionales tienen la misma dimensión d_model que las incrustaciones, para que ambas puedan sumarse. Existen muchas opciones de codificaciones posicionales, aprendidas y fijas [9].
En este trabajo, utilizamos funciones seno y coseno de diferentes frecuencias:
donde pos es la posición e i es la dimensión. Es decir, cada dimensión de la codificación posicional corresponde a una sinusoide. Las longitudes de onda forman una progresión geométrica desde 2π hasta 10000⋅2π. Elegimos esta función porque planteamos la hipótesis de que permitiría al modelo aprender fácilmente a atender por posiciones relativas, ya que para cualquier desplazamiento fijo k, PE_pos+k puede representarse como una función lineal de PE_pos.
También experimentamos con el uso de incrustaciones posicionales aprendidas [9] y encontramos que ambas versiones produjeron resultados casi idénticos (ver fila (E) de la Tabla 3). Elegimos la versión sinusoidal porque puede permitir al modelo extrapolar a longitudes de secuencia mayores que las encontradas durante el entrenamiento.
4. ¿Por qué atención propia?
En esta sección comparamos varios aspectos de las capas de atención propia con las capas recurrentes y convolucionales comúnmente utilizadas para mapear una secuencia de longitud variable de representaciones simbólicas (x₁, ..., xₙ) a otra secuencia de igual longitud (z₁, ..., zₙ), con xᵢ, zᵢ ∈ ℝᵈ, como una capa oculta en un codificador o decodificador típico de transducción de secuencias. Para motivar nuestro uso de la atención propia, consideramos tres aspectos deseables.
Uno es la complejidad computacional total por capa. Otro es la cantidad de cálculo que puede paralelizarse, medida por el número mínimo de operaciones secuenciales requeridas.
El tercero es la longitud de la ruta entre dependencias de largo alcance en la red. Aprender dependencias de largo alcance es un desafío clave en muchas tareas de transducción de secuencias. Un factor clave que afecta la capacidad de aprender tales dependencias es la longitud de las rutas que las señales hacia adelante y hacia atrás deben recorrer en la red. Cuanto más cortas sean estas rutas entre cualquier combinación de posiciones en las secuencias de entrada y salida, más fácil será aprender dependencias de largo alcance [12]. Por lo tanto, también comparamos la longitud máxima de la ruta entre dos posiciones cualesquiera de entrada y salida en redes compuestas por los diferentes tipos de capas.
Tabla 1: Longitudes máximas de ruta, complejidad por capa y número mínimo de operaciones secuenciales para diferentes tipos de capas.
n es la longitud de la secuencia, d es la dimensión de la representación, k es el tamaño del núcleo de las convoluciones y r el tamaño del vecindario en la autoatención restringida.
| Tipo de Capa | Complejidad por Capa | Operaciones Secuenciales | Longitud Máxima de Ruta |
|---|---|---|---|
| Autoatención | O(n²⋅d) | O(1) | O(1) |
| Recurrente | O(n⋅d²) | O(n) | O(n) |
| Convolucional | O(k⋅n⋅d²) | O(1) | O(logₖ(n)) |
| Autoatención (restringida) | O(r⋅n⋅d) | O(1) | O(n/r) |
Como se observa en la Tabla 1, una capa de autoatención conecta todas las posiciones con un número constante de operaciones ejecutadas secuencialmente, mientras que una capa recurrente requiere O(n) operaciones secuenciales. En términos de complejidad computacional, las capas de autoatención son más rápidas que las capas recurrentes cuando la longitud de la secuencia n es menor que la dimensionalidad de la representación d, lo cual es el caso más común en las representaciones de oraciones utilizadas por modelos de última generación en traducción automática, como las representaciones de word-piece [38] y byte-pair [31]. Para mejorar el rendimiento computacional en tareas que involucran secuencias muy largas, la autoatención podría restringirse a considerar solo un vecindario de tamaño r en la secuencia de entrada centrado alrededor de la posición de salida respectiva. Esto aumentaría la longitud máxima de la ruta a O(n/r). Planeamos investigar este enfoque más a fondo en trabajos futuros.
Una sola capa convolucional con un núcleo de ancho k < n no conecta todos los pares de posiciones de entrada y salida. Para lograrlo se requiere una pila de O(n/k) capas convolucionales en el caso de núcleos contiguos, o O(logₖ(n)) en el caso de convoluciones dilatadas [18], lo que aumenta la longitud de las rutas más largas entre cualquier par de posiciones en la red. Las capas convolucionales son generalmente más costosas que las capas recurrentes, por un factor de k. Sin embargo, las convoluciones separables [6] reducen considerablemente la complejidad, a O(k⋅n⋅d + n⋅d²). Incluso con k = n, la complejidad de una convolución separable es igual a la combinación de una capa de autoatención y una capa de alimentación directa punto a punto, el enfoque que adoptamos en nuestro modelo.
Como beneficio adicional, la autoatención podría producir modelos más interpretables. Inspeccionamos las distribuciones de atención de nuestros modelos y presentamos y discutimos ejemplos en el apéndice. No solo las cabezas de atención individuales aprenden claramente a realizar diferentes tareas, muchas parecen exhibir un comportamiento relacionado con la estructura sintáctica y semántica de las oraciones.
5 Entrenamiento
Esta sección describe el régimen de entrenamiento para nuestros modelos.
5.1 Datos de entrenamiento y agrupamiento en lotes
Entrenamos con el conjunto de datos estándar WMT 2014 inglés-alemán, que consta de aproximadamente 4.5 millones de pares de oraciones. Las oraciones se codificaron usando codificación por pares de bytes [3], que tiene un vocabulario compartido fuente-objetivo de aproximadamente 37000 tokens. Para inglés-francés, usamos el conjunto de datos WMT 2014 inglés-francés significativamente más grande, que consta de 36 millones de oraciones, y dividimos los tokens en un vocabulario de 32000 subpalabras [38]. Los pares de oraciones se agruparon en lotes según la longitud aproximada de la secuencia. Cada lote de entrenamiento contenía un conjunto de pares de oraciones con aproximadamente 25000 tokens fuente y 25000 tokens objetivo.
5.2 Hardware y programación
Entrenamos nuestros modelos en una máquina con 8 GPUs NVIDIA P100. Para nuestros modelos base usando los hiperparámetros descritos a lo largo del artículo, cada paso de entrenamiento tomó aproximadamente 0.4 segundos. Entrenamos los modelos base durante un total de 100,000 pasos o 12 horas. Para nuestros modelos grandes (descritos en la última línea de la tabla 3), el tiempo por paso fue de 1.0 segundos. Los modelos grandes se entrenaron durante 300,000 pasos (3.5 días).
5.3 Optimizador
Utilizamos el optimizador Adam [20] con β₁=0.9, β₂=0.98 y ϵ=10⁻⁹. Variamos la tasa de aprendizaje durante el entrenamiento según la fórmula:
Esto corresponde a aumentar la tasa de aprendizaje linealmente durante los primeros warmup_steps pasos de entrenamiento, y disminuirla posteriormente proporcionalmente a la raíz cuadrada inversa del número de paso. Usamos warmup_steps=4000.
5.4 Regularización
Empleamos tres tipos de regularización durante el entrenamiento:
Dropout residual
Aplicamos dropout [33] a la salida de cada subcapa, antes de que se sume a la entrada de la subcapa y se normalice. Además, aplicamos dropout a las sumas de los embeddings y las codificaciones posicionales tanto en las pilas del codificador como del decodificador. Para el modelo base, usamos una tasa de P_drop=0.1.
Suavizado de etiquetas
Durante el entrenamiento, empleamos suavizado de etiquetas con valor ϵ_ls=0.1 [36]. Esto perjudica la perplejidad, ya que el modelo aprende a estar más inseguro, pero mejora la precisión y la puntuación BLEU.
6 Resultados
6.1 Traducción automática
Tabla 2: El Transformer logra mejores puntuaciones BLEU que los modelos anteriores del estado del arte en las pruebas newstest2014 de inglés-alemán e inglés-francés, con una fracción del costo de entrenamiento.
| Modelo | BLEU | Costo de entrenamiento (FLOPs) | |
|---|---|---|---|
| EN-DE | EN-FR | EN-DE | |
| ByteNet [18] | 23.75 | ||
| Deep-Att + PosUnk [39] | 39.2 | ||
| GNMT + RL [38] | 24.6 | 39.92 | 2.3⋅10¹⁹ |
| ConvS2S [9] | 25.16 | 40.46 | 9.6⋅10¹⁸ |
| MoE [32] | 26.03 | 40.56 | 2.0⋅10¹⁹ |
| Deep-Att + PosUnk Ensemble [39] | 40.4 | ||
| GNMT + RL Ensemble [38] | 26.30 | 41.16 | 1.8⋅10²⁰ |
| ConvS2S Ensemble [9] | 26.36 | 41.29 | 7.7⋅10¹⁹ |
| Transformer (modelo base) | 27.3 | 38.1 | 3.3⋅10¹⁸ |
| Transformer (big) | 28.4 | 41.8 | 2.3⋅10¹⁹ |
En la tarea de traducción inglés-alemán de WMT 2014, el modelo Transformer grande (Transformer (big) en la Tabla 2) supera a los mejores modelos reportados anteriormente (incluyendo ensembles) por más de 2.0 puntos BLEU, estableciendo un nuevo estado del arte con una puntuación BLEU de 28.4. La configuración de este modelo se enumera en la última línea de la Tabla 3. El entrenamiento tomó 3.5 días en 8 GPUs P100. Incluso nuestro modelo base supera todos los modelos y ensembles publicados anteriormente, con una fracción del costo de entrenamiento de cualquiera de los modelos competitivos.
En la tarea de traducción inglés-francés de WMT 2014, nuestro modelo grande alcanza una puntuación BLEU de 41.0, superando a todos los modelos individuales publicados anteriormente, con menos de 1/4 del costo de entrenamiento del modelo anterior del estado del arte. El modelo Transformer (big) entrenado para inglés-francés utilizó una tasa de dropout P_drop=0.1, en lugar de 0.3.
Para los modelos base, utilizamos un único modelo obtenido promediando los últimos 5 checkpoints, que se escribieron en intervalos de 10 minutos. Para los modelos grandes, promediamos los últimos 20 checkpoints. Utilizamos búsqueda por haz con un tamaño de haz de 4 y penalización de longitud α=0.6 [38]. Estos hiperparámetros se eligieron después de experimentar en el conjunto de desarrollo. Fijamos la longitud máxima de salida durante la inferencia a longitud de entrada + 50, pero terminamos antes cuando fue posible [38].
La Tabla 2 resume nuestros resultados y compara nuestra calidad de traducción y costos de entrenamiento con otras arquitecturas de modelos de la literatura. Estimamos el número de operaciones en punto flotante utilizadas para entrenar un modelo multiplicando el tiempo de entrenamiento, el número de GPUs utilizadas y una estimación de la capacidad sostenida de punto flotante de precisión simple de cada GPU².
²Utilizamos valores de 2.8, 3.7, 6.0 y 9.5 TFLOPS para K80, K40
6.2 Variaciones del modelo
Tabla 3: Variaciones en la arquitectura Transformer. Los valores no listados son idénticos a los del modelo base. Todas las métricas corresponden al conjunto de desarrollo de traducción inglés-alemán, newstest2013. Las perplejidades listadas son por pieza de palabra, según nuestra codificación de pares de bytes, y no deben compararse con perplejidades por palabra.
| N | dmodel | dff | h | dk | dv | Pdrop | ϵls | pasos de entrenamiento | PPL (dev) | BLEU (dev) | params (×106) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| base | 6 | 512 | 2048 | 8 | 64 | 64 | 0.1 | 0.1 | 100K | 4.92 | 25.8 |
| (A) | 1 | 512 | 512 | 5.29 | 24.9 | ||||||
| 4 | 128 | 128 | 5.00 | 25.5 | |||||||
| 16 | 32 | 32 | 4.91 | 25.8 | |||||||
| 32 | 16 | 16 | 5.01 | 25.4 | |||||||
| (B) | 16 | 5.16 | 25.1 | ||||||||
| 32 | 5.01 | 25.4 | |||||||||
| (C) | 2 | 6.11 | 23.7 | ||||||||
| 4 | 5.19 | 25.3 | |||||||||
| 8 | 4.88 | 25.5 | |||||||||
| 256 | 32 | 32 | 5.75 | 24.5 | |||||||
| 1024 | 128 | 128 | 4.66 | 26.0 | |||||||
| 1024 | 5.12 | 25.4 | |||||||||
| 4096 | 4.75 | 26.2 | |||||||||
| (D) | 0.0 | 5.77 | 24.6 | ||||||||
| 0.2 | 4.95 | 25.5 | |||||||||
| 0. |
6.3 Análisis de Constituyentes en Inglés
Tabla 4: El Transformer se generaliza bien para el análisis de constituyentes en inglés (Los resultados están en la Sección 23 de WSJ)
| Parser | Entrenamiento | WSJ 23 F1 |
|---|---|---|
| Vinyals & Kaiser et al. (2014) [37] | Solo WSJ, discriminativo | 88.3 |
| Petrov et al. (2006) [29] | Solo WSJ, discriminativo | 90.4 |
| Zhu et al. (2013) [40] | Solo WSJ, discriminativo | 90.4 |
| Dyer et al. (2016) [8] | Solo WSJ, discriminativo | 91.7 |
| Transformer (4 capas) | Solo WSJ, discriminativo | 91.3 |
| Zhu et al. (2013) [40] | Configuración semi-supervisada | 91.3 |
| Huang & Harper (2009) [14] | Configuración semi-supervisada | 91.3 |
| McClosky et al. (2006) [26] | Configuración semi-supervisada | 92.1 |
| Vinyals & Kaiser et al. (2014) [37] | Configuración semi-supervisada | 92.1 |
| Transformer (4 capas) | Configuración semi-supervisada | 92.7 |
| Luong et al. (2015) [23] | Multi-tarea | 93.0 |
| Dyer et al. (2016) [8] | Generativo | 93.3 |
Para evaluar si el Transformer puede generalizarse a otras tareas, realizamos experimentos en el análisis de constituyentes en inglés. Esta tarea presenta desafíos específicos: la salida está sujeta a fuertes restricciones estructurales y es significativamente más larga que la entrada. Además, los modelos de transducción de secuencias basados en RNN no han podido alcanzar resultados de estado del arte en regímenes de datos pequeños [37].
Entrenamos un Transformer de 4 capas con d_model = 1024 en la porción del Wall Street Journal (WSJ) del Penn Treebank [25], aproximadamente 40K oraciones de entrenamiento. También lo entrenamos en una configuración semi-supervisada, utilizando los corpus más grandes de alta confianza y BerkleyParser con aproximadamente 17M de oraciones [37]. Utilizamos un vocabulario de 16K tokens para el entrenamiento solo con WSJ y un vocabulario de 32K tokens para la configuración semi-supervisada.
Realizamos solo un pequeño número de experimentos para seleccionar el abandono, tanto en la atención como en los residuales (sección 5.4), las tasas de aprendizaje y el ancho de la viga en el conjunto de entrenamiento de desarrollo de la Sección 22, todos los demás parámetros permanecieron sin cambios respecto al modelo base de traducción de inglés a alemán. Durante la inferencia, aumentamos la longitud máxima de salida a la longitud de entrada + 300. Utilizamos un ancho de viga de 21 y α = 0.3 tanto para el entrenamiento solo con WSJ como para la configuración semi-supervisada.
Nuestros resultados en la Tabla 4 muestran que, a pesar de la falta de ajustes específicos para la tarea, nuestro modelo funciona sorprendentemente bien, obteniendo mejores resultados que todos los modelos reportados previamente, con la excepción de la Gramática de Redes Neuronales Recurrentes [8].
En contraste con los modelos de transducción de secuencias basados en RNN [37], el Transformer supera al BerkeleyParser [29] incluso cuando se entrena solo con el conjunto de entrenamiento de WSJ de 40K oraciones.
7 Conclusión
En este trabajo, presentamos el Transformer, el primer modelo de transducción de secuencias basado completamente en atención, reemplazando las capas recurrentes más comúnmente utilizadas en las arquitecturas codificador-decodificador con atención propia multi-cabeza.
Para tareas de traducción, el Transformer puede entrenarse significativamente más rápido que las arquitecturas basadas en capas recurrentes o convolucionales. Tanto en las tareas de traducción WMT 2014 de inglés a alemán como WMT 2014 de inglés a francés, logramos un nuevo estado del arte. En la primera tarea, nuestro mejor modelo supera incluso a todos los conjuntos reportados previamente.
Nos entusiasma el futuro de los modelos basados en mecanismos de atención y planeamos aplicarlos a otras tareas. Planeamos extender el Transformer a problemas que involucren modalidades de entrada y salida distintas al texto, e investigar mecanismos de atención locales y restringidos para manejar eficientemente entradas y salidas grandes como imágenes, audio y video. Hacer que la generación sea menos secuencial es otra de nuestras metas de investigación.
El código que utilizamos para entrenar y evaluar nuestros modelos está disponible en https://github.com/tensorflow/tensor2tensor.
Paper original: https://arxiv.org/abs/1706.03762
Newsletter
Subscribite al Newsletter
Un email semanal con un resumen de los últimos artículos.
También en Magacín
Leyes de escalabilidad para modelos de lenguaje neuronal — Kaplan et al. (2020)
Traducción al español de 'Scaling Laws for Neural Language Models' (Kaplan et al., 2020). Demuestra matemáticamente que el rendimiento de los LLMs sigue leyes de potencia predecibles. La base teórica de GPT-4, Claude y Gemini, explicada en español.
¿Cómo se manifiesta el fracaso? — Paul Christiano (2019)
Traducción al español de 'What Failure Looks Like' de Paul Christiano (2019). Los dos escenarios más probables de fracaso en alineación de IA: uno gradual y uno abrupto. El ensayo de referencia en seguridad de inteligencia artificial.
Software 2.0 — Andrej Karpathy (2017)
Traducción al español del ensayo 'Software 2.0' de Andrej Karpathy (2017). El texto que reenmarcó el aprendizaje automático: cuando las redes neuronales reemplazan al código explícito. Lectura esencial para entender la IA moderna.