Comprensión de los modelos de lenguaje SoTA (BERT, RoBERTA, ALBERT, ELECTRA)

Hola a todos,

¡Hay un montón de modelos de lenguaje hoy en día! Muchos de los cuales tienen su forma única de aprender representaciones de lenguaje «autosupervisadas» que pueden ser utilizadas por otras tareas posteriores.

En este artículo, decidí resumir las tendencias actuales y compartir algunas ideas clave para unir todos estos enfoques novedosos. 😃 (Créditos de diapositivas: Delvin et. al. Stanford CS224n)

Problema: Representaciones de palabras atómicas/sin contexto

Comenzamos con enfoques libres de contexto como word2vec, incrustaciones de guantes en mi publicación anterior. El inconveniente de estos enfoques es que no tienen en cuenta el contexto sintáctico. por ejemplo, «abrir un banco cuenta «v/s» en el río banco«. La palabra banco tiene diferentes significados dependiendo del contexto en el que se use la palabra.

Solución #1: Representaciones de palabras contextuales

Con ELMo la comunidad comenzó a construir modelos de lenguaje de secuencia hacia adelante (de izquierda a derecha) y hacia atrás (de derecha a izquierda), y usó incrustaciones extraídas de ambos (concatenados) estos modelos como incrustaciones pre-entrenadas para tareas de modelado posteriores como clasificación (sentimiento, etc.)

Posible inconveniente:

ELMo puede considerarse un «modelo bidireccional débil» ya que entrenaron 2 modelos separados aquí.

Solución #2: Representaciones contextuales verdaderamente bidireccionales

Para resolver el inconveniente del enfoque «débilmente bidireccional» y el cuello de botella de información que viene con los enfoques LSTM/recurrentes, se desarrolló la arquitectura Transformer. Los transformadores, a diferencia de LSTM/RNN, son una red completamente realimentada. Aquí hay un breve resumen de la arquitectura:

Consejo: Si es nuevo en los transformadores pero está familiarizado con Vanilla Multi-Layer Perceptron (MLP) o las redes neuronales totalmente conectadas. Puede pensar en los transformadores como similares a MLP/NN estándar con campanas y silbatos elegantes además de eso.

Pero, ¿qué hace que el transformador sea mucho más efectivo?

2 ideas clave:

1. Cada palabra tiene la oportunidad de aprender una representación con respecto a cualquier otra palabra (Verdaderamente bidireccional) en la oración (piense en cada palabra como una característica dada como entrada a una red completamente conectada). Para desarrollar aún más esta idea, consideremos el transformador como una red completamente conectada con 1 capa oculta, como se muestra a continuación:

Si x1 y x5 son 2 palabras/tokens de mi ejemplo anterior (en el río banco), ahora x1 tiene acceso a x5 sin importar la distancia entre x1 y x5 (la palabra en puede aprender una representación dependiendo del contexto provisto por la palabra banco)

2. Esencialmente, dado que cada capa se puede representar como un multiplicación de matrices grandes (cálculo paralelo) sobre una multiplicación por token que ocurre en un LSTM, el transformador es mucho más rápido que un LSTM.

Problema con los modelos bidireccionales:

Pero, ¿se supone que los modelos de lenguaje (LM) modelan P(w_t+1/w_1..w_t)? ¿Cómo aprende algo el modelo si le expones todas las palabras?

BERT desarrolla esta idea utilizando transformadores para aprender Modelado de lenguaje enmascarado (MLM) y traduce la tarea a P (w_masked/w_1..wt)

Compensación: en MLM, podría estar enmascarando y prediciendo ~ 15% de palabras en la oración. Sin embargo, en LM de izquierda a derecha está prediciendo el 100% de las palabras en la oración (mayor eficiencia de muestra).

Hay algunos cambios en la entrada al modelo con respecto al enfoque anterior basado en LSTM. La entrada ahora tiene 3 incrustaciones:

1. Incorporaciones de tokens – (Igual que las incorporaciones introducidas en el modelo LSTM)

2. Embebidos de segmento

  • Simplemente le dice al modelo a qué oración pertenece este token, por ejemplo, «Oración A: El hombre fue a comprar leche. Oración B: La tienda estaba cerrada».

3. Colocar incrustaciones –

  • Se puede pensar como un número simbólico, por ejemplo, The – 0, man – 1 y así sucesivamente.

Importante tener en cuenta:

BERT es un modelo enorme (110M de parámetros ~1 GB de tamaño de archivo). Muy bien, ¿cómo lo hacemos mejor?

Los estudios han demostrado que modelos excesivamente parametrizados son efectivos en el aprendizaje de los matices del lenguaje mejor. Esto se puede demostrar con el siguiente gráfico:

El gráfico afirma

«Cuanto más grande es el LM, mejor es»

Esta será parte de nuestra motivación a medida que analicemos los avances sobre el modelo BERT:

Examinaremos 4 modelos que han mejorado fundamentalmente las ideas que presentamos para el modelo BERT.

1. ROBERTA

La idea central era entrenar el mismo modelo BERT durante más tiempo (más épocas) y con más datos. Los resultados de la evaluación muestran que funciona mejor que el modelo BERT estándar que vimos anteriormente.

2. XLNet

XLNet introdujo esta idea de incrustaciones de posición relativa en lugar de incrustaciones de posición estática que vimos anteriormente. Estos comienzan como relaciones lineales y se combinan en capas más profundas para aprender una función de atención no lineal.

Además, en lugar de ir solo de izquierda a derecha, XLNet introdujo esta idea de modelado de lenguaje de permutación (PLM) que nos permite permutar aleatoriamente el orden de cada oración de entrenamiento como se muestra en la figura. Todavía está prediciendo una palabra «ENMASCARADA» a la vez dada alguna permutación de la entrada. Esto nos da una eficiencia de muestra mucho mejor.

3. ALBERTO

La idea aquí era reducir el sobreajuste al factorizar la capa de incrustación de entrada. Como ejemplo, si el tamaño del vocabulario es 100k y el tamaño oculto es 1024. El modelo podría tener dificultades para generalizar directamente en este espacio vectorial de alta dimensión especialmente para palabras raras. En su lugar, ALBERT propone una técnica de factorización que primero aprende una dimensión oculta bastante pequeña (128) por palabra y luego aprende una función separada para proyectar esto a la dimensión oculta del transformador de 1024.

Para reducir aún más el número de parámetros, ALBERT propone compartir todos los parámetros entre las capas de transformadores denominadas Intercambio de parámetros entre capas (Las 12 capas de BERT comparten los mismos parámetros). Esto tiene un costo de velocidad durante el entrenamiento, como se muestra en la tabla.

4. ELECTRA

ELECTRA introduce la idea de utilizar un discriminador para poder evaluar la calidad del modelo de lenguaje generativo. Esto ayuda al modelo de lenguaje (generador) a aprender mejores representaciones del lenguaje para ayudar a confundir al discriminador como un objetivo de optimización.

¡Espero que hayas disfrutado esta publicación! Mantente sintonizado para más. ✌

Créditos de las diapositivas: Jacob Delvin, Google Language AI

¿Que te ha parecido?

Deja un comentario