[Resumen de 100 modelos grandes] XLNet (Google)

XLNet

Bienvenido a suscribirse y leer [Modelo grande, PNL y algoritmo].

[Resumen de 100 modelos grandes] XLNet (Google)

Autor: Wang Jianing, el contenido de este artículo es original, enlace de almacén: https://github.com/wjn1996/LLMs-NLP-Algo

Suscríbase a la columna [Modelo grande , PNL y algoritmo] para obtener todos los datos acumulados por el bloguero durante muchos años, cerca de 200 artículos, 300 notas de descuento escritas por el propio bloguero y casi 100 Tarjetas de datos de modelos grandes Ayuda a la investigación, el estudio y la búsqueda de empleo de la PNL.


Tarjeta de datos de información básica modelo grande XLNet

número de serie gran nombre de modelo atribución Hora de almuerzo escala corpus de pre-entrenamiento Punto de referencia Modelo y Método de Entrenamiento fuente abierta papel modelo de dirección Informacion relevante
1 XLNet Google 2019-06 <1B Corpus previo al entrenamiento: Wikipedia y BookCorpus totalizan 13 GB.
Giga5 (16 GB), ClueWeb 2012-B, Rastreo común
GLUE, SuperGLUE, SQuAD, RACE y otros conjuntos de datos de NLU (1) Objetivo del modelo de lenguaje de clasificación: Suponiendo que el arreglo y la combinación es x4 -> x3 -> x1 -> x2, entonces al predecir x3, puede ver la información de x4 y enmascarar las dos palabras x1 y x2; cuando Cuando el método de disposición y combinación es x2 -> x4 -> x3 -> x1, al predecir x3, puede ver la información de x2 y x4, y la máscara dejará caer la palabra x1. No importa qué método de permutación y combinación se seleccione, el orden de las palabras en la entrada de la oración real no cambia. Solo a través del método de máscara se enmascara todo el contenido después de la posición que se va a predecir en la secuencia de permutación y combinación. que es equivalente al modelo de lenguaje autorregresivo, pero utiliza la información en el contexto.
(2) Autoatención de doble flujo: el flujo de contenido se refiere a la información visible de todas las palabras, incluido el contenido y la información de ubicación de la palabra misma; el flujo de consulta (query stream) en realidad puede entenderse como un flujo de ubicación, que solo contiene información de ubicación de palabras.
imagen.png
Github XLNet xlnet-grande-en-carcasa Controlar

El modelo XLNet fue lanzado conjuntamente por los equipos de CMU y Google Brain en la cumbre NIPS en octubre de 2019. Es otro modelo que encabezó la lista menos de un año después del modelo Bert. XLNet superó a Bert en un total de 20 tareas de PNL, y 18 de ellas lograron resultados SOTA en ese momento.
Antes de la aparición de XLNet, los dos campos de modelos de lenguaje preentrenados en el campo de la PNL eran los modelos AR y AE. Veamos primero la comparación de los dos modelos en la imagen a continuación.

Modelo AR VS Modelo AE
AR (LM autorregresivo) es un modelo de lenguaje autorregresivo. La tarea es predecir la siguiente palabra en función de la información de la palabra conocida en la oración. El representante típico es RNN/LSTM. Por ejemplo, para predecir la palabra "a" en la oración "Nueva York es una ciudad", debe usar "Nueva York es" para predecir, es decir, la palabra predicha tiene una relación de dependencia con la palabra anterior. La función objetivo del modelo AR es predecir la máxima verosimilitud de las siguientes palabras en función de las palabras que se encuentran delante de la oración, que tiene una expresión de fórmula matemática estricta.
AE (Auto-encoding LM) es el modelo de lenguaje de autocodificación. El representante típico es el modelo Bert. Su tarea es enmascarar aleatoriamente algunas palabras en la oración y volver a predecir estas palabras marcadas como [MASK] a través del contexto. . Por lo tanto, el modelo de Bert que agrega el llamado ruido a la entrada y restaura las palabras también se denomina modelo de codificador automático de eliminación de ruido. La función objetiva del modelo AE es predecir la probabilidad de máxima verosimilitud de la palabra [MASK] según el contexto de la oración. De la fórmula matemática, podemos encontrar que se usa el signo "≈", esto se debe a que el modelo de Bert asume que no hay relación entre todas las palabras [MASK], es decir, la información de otras [MASK] se pierde al predecir MASK , por lo que

Comparación de las ventajas y desventajas de los dos modelos lingüísticos

El proceso de entrenamiento del modelo AR es unidireccional. Solo puede predecir de adelante hacia atrás o de atrás hacia adelante, y no puede hacer un uso completo de la información de contexto, por lo que el rendimiento del modelo no puede mejorarse más. La ventaja es que la tarea de generación es de izquierda a derecha, lo que coincide muy bien con la estructura del modelo AR, por lo que el rendimiento del modelo AR en la tarea de generación es aún mejor. La ventaja del modelo AE es el entrenamiento bidireccional, y el contenido del contexto se considera completamente al predecir. La desventaja es que, por un lado, se hace una suposición independiente, en base a [MASK] las palabras son independientes entre sí, por lo que la función objetivo es un cálculo aproximado. Por otro lado, la etiqueta [MASK] se introduce en la etapa de preentrenamiento, pero esta etiqueta no existe en la etapa de ajuste fino, lo que genera diferencias entre las dos etapas.

mejora del modelo

Dirección de mejora

Al combinar las ventajas y desventajas del modelo AR y el modelo AE, esperamos que el modelo mejorado no solo tenga la capacidad de generar, sino que también pueda entrenarse en dos direcciones y pueda evitar la discrepancia entre el entrenamiento previo y el ajuste fino. De aquí se derivan dos ideas de mejora. El primero se basa en el modelo Bert para la mejora, y el segundo se basa en el modelo LM. La propuesta de XLNet es más para mejorar la capacidad de generación del modelo, por lo que la dirección de mejora final se basa en el modelo LM y permite que el modelo tenga la capacidad de entrenamiento bidireccional.

Mejora 1 - Permutación Permutación

Basándose en la idea de NADE (estimación de distribución autorregresiva neuronal), el método de permutación y combinación se introduce en el modelo XLNet, para que el modelo AR también pueda aprender información contextual. La idea de permutación y combinación es que, para una secuencia de longitud n, se puede codificar el orden de cada palabra, y se puede obtener un total de n! tipos de permutación y combinación de orden de factorización (Factorization order). Para dar un ejemplo simple, si el orden original de una oración es x=x1x2x3x4, después de barajar aleatoriamente, uno de los ordenamientos se selecciona como x1 -> x4 -> x2 -> x3, entonces la probabilidad de predecir la tercera posición del se puede usar la palabra x3 La fórmula se expresa como p(x) = p(x3|x1,x4,x2) p(x2|x1,x4) p(x4|x1), donde p(x3|x1,x4,x2 ) significa lo primero conocido La probabilidad de que la palabra sea x1, la segunda palabra sea x2, y la cuarta palabra sea x4, la tercera palabra sea x3. De esta forma, aunque la posición de x4 está detrás de x3, la información posterior se puede usar al predecir x3, es decir, se puede usar la información de contexto.
Como se muestra en la figura a continuación, el primer arreglo y combinación es x4 -> x3 -> x1 -> x2, luego al predecir x3, puede ver la información de x4 y enmascarar las dos palabras x1 y x2; el segundo La permutación y el método de combinación es x2 -> x4 -> x3 -> x1 Al predecir x3, puede ver la información de x2 y x4, y la máscara dejará caer la palabra x1. No importa qué método de permutación y combinación se seleccione, el orden de las palabras en la entrada de oraciones no cambia en esencia. Es solo a través del método de máscara que todo el contenido después de la posición que necesita ser predicha en la secuencia de permutación y combinación es enmascarado, lo que equivale a usar un lenguaje autorregresivo El método de entrenamiento del modelo, pero al mismo tiempo utiliza la información en el contexto.

Diagrama de orden de factorización
La función objetivo del modelo de lenguaje de permutaciones y combinaciones se puede expresar mediante la siguiente fórmula: donde ZT representa el conjunto de todas las permutaciones y combinaciones, y z representa la selección de una de las permutaciones y combinaciones, es decir, bajo la condición de que el Se conocen los contenidos de las posiciones t-1 anteriores de la permutación y la combinación. Prediga la probabilidad máxima de que la palabra en la posición t sea XZT.

Función objetivo PLM
En el entrenamiento real, considerando que las oraciones son muy largas, el número n! de permutaciones y combinaciones será muy grande Si cada combinación se entrena una vez, la cantidad de cálculo requerida es enorme. Por lo tanto, para una oración, solo se muestrea una forma de permutación y combinación para el entrenamiento. En otra oración, no es necesario predecir todas las posiciones. XLNet usa un método de predicción parcial, es decir, si la posición es predicha por las palabras anteriores, la eficiencia del entrenamiento no es alta debido a la limitada información de contexto disponible. Por lo tanto, solo las palabras cuyas posiciones están en el último 1/K se seleccionan para la predicción, de modo que se usan más palabras de contexto y el entrenamiento converge más rápido. El valor de K es generalmente 6~7 (14%~16%), que es similar a la máscara del modelo Bert que deja caer el 15% de las palabras.

Mejora 2 - Mecanismo de atención de dos flujos Atención de dos flujos

Después de adoptar el método de permutación y combinación, es equivalente a usar información de contexto para predecir el contenido de estas palabras de máscara enmascarando algunas palabras en la oración, lo que es equivalente a combinar las ventajas del modelo de lenguaje y Bert. Sin embargo, si solo se usa el método de permutación, habrá un problema. En una secuencia de permutación y combinación, se sabe que las palabras de posición t-1 anteriores predicen la siguiente palabra de posición, entonces la probabilidad de probabilidad es la misma para la misma palabra verdadera. value. , no tiene nada que ver con la posición de la verdad fundamental en el orden de la oración original.
Para dar un ejemplo simple, en la oración "Amo mucho a China", la secuencia original se expresa como [1, 2, 3, 4, 5]. Si el orden barajado es z = [2, 4, 1, xxx, xxx], es decir, se conocen las tres palabras "amor", "muy" y "yo", entonces cuando se predice que la siguiente palabra será " China", independientemente de si está en la posición 3 o en la posición 5 en el orden original, su probabilidad predicha es la misma, es decir, es equivalente a "Me encanta mucho China". Obviamente, la probabilidad de colocar "China" después de "amor" es mayor.
Esto se mejora aún más.Para el objetivo predicho, además de conocer las palabras en la posición anterior, también es necesario agregar la información de posición del objetivo. Por ejemplo, en la secuencia de disposición y combinación x3 -> x2 -> x4 -> x1 en la figura a continuación, al predecir x4, necesita conocer la posición y el contenido de x3 y x2 (indicado por una línea sólida en la figura a continuación ), y también necesita saber la posición de x4 (en la figura a continuación indicada por una línea de puntos), pero no puede exponer el contenido de x4 por adelantado. Por esta razón, XLNet presenta un método de mecanismo de autoatención de flujo dual, donde el flujo dual se refiere al flujo de contenido y al flujo de consulta, respectivamente. El flujo de contenido significa que toda la información de una palabra es visible, incluido el contenido y la información de ubicación de la palabra misma; el flujo de consulta en realidad puede entenderse como un flujo de ubicación, que solo contiene la información de ubicación de la palabra.

En términos de implementación específica, cuando el flujo de contenido realiza la autoatención, Q obtiene toda la información de la ubicación actual (expresada por h(m-1)), y K y V obtienen toda la información de todas las ubicaciones (como se muestra en la figura a). Cuando el flujo de consultas realiza la autoatención, Q obtiene la información de posición de la posición actual (expresada por g(m-1)), y K y V obtienen toda la información de otras posiciones (como se muestra en la Figura b).

Content-stream y Query-stream
XLNet usa dos tipos de flujos juntos y calcula el flujo de contenido h(m-1) y el flujo de consulta g(m-1) para cada posición de cada capa. Cuando se necesita predecir una palabra en cierta posición, solo se usa la codificación oculta de g(m-1) en esta posición; de lo contrario, si la palabra en cierta posición es información conocida, entonces h(m-1) es utilizado en esta posición) codificación oculta. El proceso de formación completo se muestra en la siguiente figura.

Máscaras de trabajo conjunto y atención de dos flujos
En función de lo anterior, la función de objetivo optimizada de XLNet agrega información sobre la posición prevista.En la siguiente fórmula, zt representa la posición del objetivo previsto. Este método también se denomina predicción consciente del objetivo.

Función objetivo optimizada PLM

Mejora 3 - Basándose en la idea de Transformer-XL

Sabemos que la ventaja de Transformer sobre el modelo RNN radica en el problema de la dependencia a larga distancia, pero la desventaja es que requiere mucha memoria. Si la longitud de un fragmento de texto de entrada es N, la autoatención dentro del Transformador se calcula entre dos o dos palabras, lo que requiere N cálculos cuadrados. Por lo tanto, el problema de la complejidad del espacio de Transformer es más prominente y es necesario considerar la distribución de la memoria a diferentes máquinas. Antes de que apareciera Transformer-XL, la solución era dividir el texto largo en varios textos cortos de igual longitud y entrenarlos por separado. Aunque resuelve el problema de la cantidad de cálculo, también rompe la conexión entre textos breves.
La solución propuesta por Transformer-XL es dividir el texto largo en varios segmentos, y cada segmento se conecta en serie a través del método RNN para aprender la relación entre ellos. La siguiente figura muestra las mejoras realizadas sobre la base de la estructura del modelo Transformer. Primero, hay dos segmentos t y segmento t + 1 que se han dividido. La etapa de entrada es incrustación de palabras + incrustación posicional y salida a la primera capa del codificador. bloquear. Para el segmento t, la salida de estado oculto de cada capa del bloque codificador, por un lado, se usa como entrada de la siguiente capa del bloque codificador y, por otro lado, se emite como la información de "Memoria" del segmento t a la misma capa del bloque codificador del segmento t + 1. Cada segmento se concatena con la salida de estado oculto del bloque codificador de la misma capa, y cada capa repite la misma operación, para realizar la asociación de información entre dos segmentos, y al mismo tiempo, la memoria requerida para el cálculo también se reduce considerablemente.

Mecanismo de recurrencia de segmento

Mejora 4 - Codificación posicional relativa

Después de dividir el texto largo en varios segmentos, surge otro problema. Usando el método de codificación de posición absoluta de Transformer, la misma codificación de posición de cada segmento es la misma, lo que da como resultado el orden indistinguible de la misma posición entre los segmentos. Por lo tanto, Transformer-XL también necesita introducir la codificación de posición relativa.
Cuando se utiliza la codificación de posición absoluta, la puntuación de atención de Transformer se puede descomponer en la forma de la figura de la izquierda a continuación. Entre ellos, i y j representan las posiciones de consulta y clave respectivamente, E representa la incrustación de palabras y U representa la codificación posicional, por lo que, de hecho, la siguiente fórmula se descompone en 4 polinomios por (Exi+Ui)WqWk(Exj+Uj) según a la ley multiplicativa distributiva de. Se puede encontrar que (a) el ítem se trata de la correlación entre dos vectores de palabras, (b) el ítem se trata de la correlación entre el vector de palabras de una posición y el código de posición de otra posición, y (d) el ítem se trata de la correlación entre dos vectores de palabras Correlación entre códigos de posición.

Puntuación de atención de la codificación posicional absoluta y relativa
Para reemplazar la codificación posicional absoluta con la codificación posicional relativa, se realizaron 3 mejoras a la fórmula de descomposición original (expresada en la fórmula de la derecha):

  1. Cambie todos los elementos Uj a Ri-j de manera uniforme, es decir, reemplace la representación de posición absoluta de Key con la representación de posición relativa entre Key y query;
  2. Dado que la representación de la posición absoluta de la tecla se reemplazó por una representación de la posición relativa, la representación de la posición absoluta Ui de la consulta no tiene sentido, por lo que las dos Ui solo deben representarse mediante un parámetro de aprendizaje u y v, respectivamente.
  3. Tanto la incrustación de palabras como la codificación posicional en Transformer utilizan la misma transformación lineal. Por lo tanto, para un mayor refinamiento, se pueden usar dos transformaciones lineales diferentes para las dos codificaciones, y el elemento Wk se puede dividir en Wk,E y Wk,R.

Después de adoptar la nueva definición de parámetro, cada ítem tiene un significado más intuitivo: (a) el ítem es una representación completamente dependiente del contenido, (b) el ítem es un sesgo de posición dependiente del contenido, © representación del contenido global del ítem, (d) los ítems son contenido global sesgos

Mejora 5 - Codificación de segmento relativo

Para la tarea de par de oraciones, la estructura de entrada de BERT es [CLS, oración A, SEP, oración B, SEP], debido a que es necesario distinguir dos oraciones, Bert introduce el método de codificación de segmento absoluto, la parte delante de la oración [ CLS, frase A, SEP] es el segmento A, codificado con el valor 0; la parte posterior a la frase es el segmento B, codificado con el valor 1.
Basándose en la idea de la codificación posicional relativa, XLNet adopta el método de codificación de segmento relativo, es decir, los segmentos no se codifican de forma independiente, sino que se codifican de acuerdo con la relación relativa entre los segmentos. Al calcular la atención, si dos posiciones i, j pertenecen al mismo segmento, entonces el código se toma uniformemente como sij=s+; si dos posiciones i, j pertenecen a segmentos diferentes, entonces el código se toma uniformemente como sij=s-. Al calcular la atención entre i y j, se agrega un componente aij al puntaje de atención convencional: aij=(qi+b)Tsij, donde qi es el vector de consulta de la posición i, y b es el desplazamiento.
Después de la introducción del método de codificación de segmentos relativos, la representación de relaciones entre segmentos es más generalizada, y las tareas posteriores no se limitan a tareas de pares de oraciones, sino que también son aplicables a tareas de múltiples segmentos.

resultados de la prueba

Bajo la condición del mismo tamaño de parámetro del modelo y escala de datos, el rendimiento de XLNet superó casi por completo a Bert. Tomando los dos modelos de XLNet-Large y BERT-Large como ejemplo para comparar, para las tareas de comprensión de lectura SQuAD y RACE, la mejora del rendimiento de XLNet es la más evidente, con una mejora de la puntuación media de 2 puntos. Para la prueba de rendimiento en la serie de tareas GLUE, XLNet también tiene una mejora de puntaje promedio de 1 punto en comparación con BERT.

Comparación justa entre BERT y XLNet
Dado que XLNet utiliza múltiples métodos de mejora de modelos, para comprender mejor cuánto contribuye cada mejora a la mejora del rendimiento, el documento realizó los siguientes experimentos de ablación. En primer lugar, encontramos que después de eliminar el mecanismo de caché (elemento de memoria), las puntuaciones del modelo en todas las tareas fueron las que más disminuyeron (disminución promedio de 0,6). El segundo es eliminar la función de entrenamiento bidireccional, y la caída de puntaje promedio es 0.4. Después de eliminar la función de predicción basada en intervalos, la puntuación se reduce en un promedio de 0,3. Finalmente, se agregó la tarea NSP al modelo XLNet y se encontró que, excepto por una ligera mejora en la tarea RACE, los resultados en el resto de las tareas fueron todos peores.

Resultado de la prueba de ablación XLNet

Resumir

Desde una perspectiva macro, XLNet ha logrado un nuevo avance sobre los hombros del gigante BERT, combinando orgánicamente el modelo AR y el entrenamiento bidireccional. Desde un punto de vista microscópico, varios métodos de mejora introducidos por XLNet tienen sus propias fortalezas: Permutación LM permite que el modelo de lenguaje haga un uso completo de la información contextual durante el entrenamiento; La codificación de dos flujos distingue la atención del objetivo de predicción y la no predicción objetivo muy bien El cálculo hace que los resultados sean más prácticos y más razonables, Transformer-XL reduce en gran medida la memoria informática y resuelve el problema de la dependencia del modelo a larga distancia, y la codificación posicional relativa evita efectivamente el conflicto posicional entre los dos segmentos . Además, los resultados basados ​​en AR de XLNet coinciden inherentemente con la generación de tareas de NLP, por lo que XLNet inevitablemente promoverá la aparición de modelos mejorados en los campos de resumen de texto, traducción automática y sistemas de respuesta a preguntas.



Texto original: https://zhuanlan.zhihu.com/p/477860047

  El blog registra el ritmo de aprendizaje y comparte la última tecnología. Muchas gracias por leer. Este blog se actualizará continuamente, esperando ayudarlo técnicamente.


【Modelo grande, PNL y algoritmo】Columna

Cerca de 200 artículos y 300 notas de descuento escritas por blogueros . Suscríbase a esta columna [Modelo grande, PNL y algoritmo] , o vaya a https://github.com/wjn1996/LLMs-NLP-Algo para obtener la siguiente información:

  • Aprendizaje automático y conceptos básicos de aprendizaje profundo y productos secos avanzados (notas, PPT, código)
  • Conceptos básicos de PNL y productos secos avanzados (notas, PPT, código)
  • Un conjunto completo de sistemas de modelos grandes: base de modelo de lenguaje preentrenado, entrenamiento previo de conocimiento, descripción general de modelos grandes, entrenamiento y optimización de modelos grandes, ajuste de modelos grandes, reproducción y aplicación similar a ChatGPT, etc.;
  • Preguntas de pincel de algoritmo de Dachang;

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_36426650/article/details/131743860
Recomendado
Clasificación