Una breve introducción al modelo BART

Tabla de contenido

1. Resumen

2. Expansión profunda

2.1 Tarea previa al entrenamiento

2.2 Ajuste fino del modelo


1. Resumen

El modelo BART (transformadores bidireccionales y autorregresivos) utiliza una estructura estándar de secuencia a secuencia basada en transformadores. La principal diferencia es que el ReLU en la estructura original se reemplaza por la función de activación GeLU (unidades lineales de error gaussiano), y los parámetros se inicializan según la distribución normal. BART combina un codificador de transformador bidireccional y un decodificador de transformador autorregresivo unidireccional. Es un codificador automático de eliminación de ruido típico (codificador automático de eliminación de ruido) mediante el entrenamiento previo de la reconstrucción de eliminación de ruido del texto de entrada que contiene ruido . La estructura básica del modelo BART se muestra en la siguiente figura.
El proceso de precapacitación de BART se puede resumir en las siguientes dos etapas. Primero, se introduce ruido en el texto de entrada y el texto codificado se codifica con un codificador bidireccional; luego, el texto original se reconstruye con un decodificador autorregresivo unidireccional. Cabe señalar que la representación de la última capa oculta del codificador se utilizará como "memoria" para participar en el cálculo de cada capa del decodificador. El modelo BART tiene en cuenta varias formas diferentes de introducir ruido, incluidas las máscaras de palabras utilizadas por el modelo BERT. Cabe señalar que el modelo BERT predice de forma independiente las palabras de la posición de la máscara, mientras que el modelo BART se genera secuencialmente por medios autorregresivos .   Más allá de eso, el modelo BART también es aplicable a cualquier otra forma de ruido de texto.

2. Expansión profunda

2.1 Tarea previa al entrenamiento

El modelo BART considera los siguientes cinco métodos de introducción de ruido:
(1) Máscara de palabra . Similar al modelo BERT, muestree aleatoriamente una parte de las palabras en el texto de entrada y reemplácelas con etiquetas de máscara (como [MASK]);
(2) Eliminación de palabras . Pruebe aleatoriamente algunas palabras y elimínelas. Para lidiar con este tipo de ruido, el modelo no solo necesita predecir las palabras que faltan, sino que también necesita determinar la ubicación de las palabras que faltan;
(3) Transformación de arreglo de oraciones . Divida el texto de entrada en varias oraciones en función de los puntos y cambie aleatoriamente el orden de las oraciones. Para restaurar el orden de las oraciones, el modelo necesita tener cierta comprensión de la semántica de todo el texto de entrada;
(4) Transformación de rotación de documentos . Selecciona aleatoriamente una palabra en el texto de entrada y rota el documento para comenzar con esa palabra. Para reconstruir el texto original, el modelo necesita encontrar el comienzo del texto original del texto alterado;
(5) Relleno de texto . Muestrear aleatoriamente varios fragmentos de texto y la longitud de los fragmentos se muestrea de acuerdo con la distribución de Poisson (λ=3). Reemplace cada fragmento de texto con un solo token de máscara. Cuando la longitud del segmento es 0, significa insertar un marcador de máscara. Para eliminar dicho ruido, se requiere que el modelo tenga la capacidad de predecir la longitud de los segmentos de texto que faltan.
La siguiente figura resume los cinco tipos de ruido:

Se puede ver que las tareas de pre-entrenamiento incluyen no solo tareas a nivel de palabra, sino también tareas de eliminación de ruido a nivel de oración y de documento. Estas tareas funcionan de manera diferente para diferentes tareas posteriores. Los experimentos muestran que los modelos preentrenados basados ​​en tareas de relleno de texto generalmente funcionan mejor en tareas posteriores, y agregar permutación de oraciones y tareas de eliminación de ruido sobre esta base puede brindar una pequeña mejora adicional. A continuación, demuestre la capacidad de relleno de texto del modelo BART con un código específico. Aquí usamos el modelo BART previamente entrenado (bart-base) lanzado por Facebook y la interfaz de llamada BartForConditionalGeneration proporcionada por la biblioteca de transformadores. El código específico es el siguiente:
from transformers import BartTokenizer, BartForConditionalGeneration
model = BartForConditionalGeneration.from_pretrained('facebook/bart-base')
tokenizer = BartTokenizer.from_pretrained("facebook/bart-base")
input = "UN Chief Says There Is <mask> in Syria"
batch = tokenizer(input, return_tensors = 'pt')
output_ids = model.generate(input_ids=batch['input_ids'], attention_mask = batch['attention_mask'])
output = tokenizer.batch_decode(output_ids, skip_special_tokens = True)
print(output)

# 输出:['UN Chief Says There Is No War in Syria']
En este ejemplo, la marca de máscara (<máscara>) en el texto de entrada se rellena con "No a la guerra", lo cual es razonable en la estructura de la oración y la semántica.

2.2 Ajuste fino del modelo

El modelo BART preentrenado tiene capacidades de representación y generación de texto, por lo que es adecuado para diferentes tipos de tareas posteriores, como la comprensión del idioma y la generación de texto. Para diferentes tareas, el modelo BART se ajusta de diferentes maneras.
(1) Clasificación de secuencias y etiquetado de secuencias . Para las tareas de clasificación de secuencias (como la clasificación de sentimientos de texto), el codificador y el decodificador del modelo BART usan la misma entrada, y el estado de la capa oculta en el momento final del decodificador se representa como una representación vectorial del texto de entrada y la entrada a el clasificador lineal multicategoría Luego use los datos etiquetados de la tarea para ajustar los parámetros del modelo. Similar a la etiqueta [CLS] del modelo BERT, el modelo BART agrega una etiqueta especial en el último momento del decodificador y usa el estado de la capa oculta de la etiqueta como representación de texto, de modo que se puede utilizar el estado completo del decodificador. .
De manera similar, para la tarea de etiquetado de secuencias, el codificador y el decodificador usan la misma entrada. En este momento, el estado de la capa oculta del decodificador en cada momento se usará como una representación vectorial de la palabra en ese momento para la predicción de categorías.
(2) Generación de texto . El modelo BART se puede usar directamente para tareas de generación de texto condicional, como la respuesta a preguntas abstractas y el resumen abstracto. En estas tareas, la entrada del codificador es el texto de entrada como condición, y el decodificador genera el texto de destino correspondiente de forma autorregresiva.
(3) Traducción automática . Cuando se usa para tareas de traducción automática, el modelo BART no se puede ajustar directamente debido a los diferentes conjuntos de vocabulario que se usan en los idiomas de origen y de destino. Por lo tanto, los investigadores proponen reemplazar la capa de representación de entrada (capa de incrustación) del codificador del modelo BART con un pequeño codificador de transformador, que se utiliza para mapear el vocabulario en el idioma de origen al espacio de representación de entrada del idioma de destino, a fin de adaptar la predicción del modelo BART Entorno de entrenamiento (ver Figura 8-25). Dado que los parámetros del codificador de idioma de origen recién introducido se inicializan aleatoriamente y la mayoría de los demás parámetros del modelo BART se han entrenado previamente, el uso del mismo optimizador para entrenar ambos al mismo tiempo provocará "pasos inconsistentes" y es posible que no ser capaz de obtener efectivo. Por lo tanto, los investigadores dividieron el proceso de entrenamiento en dos pasos. En primer lugar, la mayoría de los parámetros del modelo BART son fijos y solo se entrenan el codificador del idioma de origen, el vector de posición del modelo BART y la matriz de proyección de entrada de autoatención de la primera capa del codificador preentrenado BART; luego, un Se realiza una pequeña cantidad de entrenamiento iterativo en todos los parámetros.

Vale la pena señalar que, aunque el modelo BART está diseñado para generar tareas, también se desempeña muy bien en tareas discriminativas, incluso a la par de RoBERTa. Para obtener más detalles sobre el modelo BART y su desempeño en tareas relacionadas, los lectores interesados ​​deben consultar la literatura por sí mismos, y este artículo no se ampliará.

 

Supongo que te gusta

Origin blog.csdn.net/weixin_45684362/article/details/130161755
Recomendado
Clasificación