9. Sobre las arquitecturas Transformers y los modelos de lenguaje
De redes neuronales y recurrentes a Transformers
Las redes neuronales (NN) suelen procesar el lenguaje generando representaciones en espacio vectoriales de longitud fija o variable. Después de comenzar con representaciones de palabras individuales o incluso fragmentos de palabras, agregan información de las palabras circundantes para determinar el significado de una parte determinada del lenguaje en contexto.
De igual manera, las redes recurrentes (RNN) se han convertido en los últimos años en la arquitectura de red típica para las tareas de traducción, procesando el lenguaje secuencialmente al leer una palabra a la vez, esto obliga a los RNN a realizar múltiples pasos para tomar decisiones que dependen de palabras muy alejadas entre sí. Experimentos recientes demuestran que cuantos más pasos requieren las decisiones, más difícil es para una RNN aprender a tomar esas decisiones. La naturaleza secuencial de las RNN también hace que sea más difícil aprovechar al máximo los dispositivos computacionales modernos y rápidos, como las TPU y las GPU, que se destacan en el procesamiento paralelo y no secuencial.
Transformer es un modelo presentado por Google en el paper: Attention is All You Need
en 2017. Su funcionamiento principal se basa en mecanismos de atención:
es decir, inspirado en las redes recurrentes y sus mecanismos de
atención. Se puede considerar como una evolución de la arquitectura seq2seq.
El modelo es más rápido de entrenar y actualmente es utilizado no solo
en tareas de secuencia a secuencia, sino también para el modelado del
lenguaje y como entornos de pre-entrenamiento.
Transformer introdujo un nuevo paradigma de modelado, a diferencia de los modelos predecesores en los que el procesamiento dentro del codificador y el decodificador se realizaba con recurrencia o convoluciones, Transformer opera usando solo mecanismos de atención.
Intuitivamente, el modelo se compone exactamente de los dos grandes bloques que forman los autoencoder. En el codificador, los tokens se comunican entre sí y actualizan sus representaciones. En el decodificador, un token de destino primero mira los tokens de destino generados previamente, luego la fuente y finalmente actualiza su representación. Esto sucede en varios procesos, generalmente 6 capas. Algunos componentes importantes de Transformers son:
- Bloques feed-forward: Después de mirar los demás tokens mediante el mecanismo de atención, el modelo utiliza este bloque para tomarse un momento, "pensar" y procesar la información nueva.
- Conexiones residuales: Las conexiones residuales agregan la entrada de un bloque a su salida, de esta forma, los gradientes sobre las entradas fluirán no solo indirectamente a través del bloque, sino también directamente a través de la suma.
- Capa de normalización: Normaliza de forma independiente la representación vectorial de cada ejemplo por batches. Esto se hace para mejorar el flujo de información a la siguiente capa. La normalización de capas mejora la estabilidad de la convergencia así como la calidad.
- Codificador posicional: Dado que el Transfomer no posee un proceso de recurrencia o convolución, desconoce el orden de los tokens de entrada, por lo tanto se debe dar a conocer las posiciones de forma explicita mediante los valores de token y posicional.
Modelos de lenguaje
Se sabe que el objetivo principal del procesamiento de lenguaje natural es conseguir que las máquinas comprendan textos tanto estructurados como no estructurados y extraigan la información relevante. Se centra básicamente en el análisis de las comunicaciones humanas y en concreto el lenguaje. Por esta razón, el uso de modelos de lenguaje (MdeL) ayudan a completar la tarea principal de PLN.
Un MdeL puede considerarse como una recopilación de información asociada con un vocabulario especifico que ayuda a predecir palabras. Estadísticamente hablando, un MdeL asigna una probabilidad a una secuencia de palabras mediante una distribución de probabilidad.
El aprendizaje por transferencia de conocimiento es un elemento muy útil en MdeL ya que ayudan a ampliar los limites de comprensión y generación de lenguaje mediante procesos de pre-entrenamiento y ajuste fino. La aplicación de Transformers da lugar a que esta tarea se vuelva tendencia por su fácil integración con mecanismos de atención. Todas estas herramientas consiguen resolver problemas relacionados al lenguaje como lo son:
- Conversacional,
- Preguntas y respuestas,
- Etiquetado de palabras,
- Análisis de sentimientos,
- Resumido de textos,
- Traducción,
- Corrección de escritura,
- Predicción de palabras,
- Comprensión lectora de máquina.
Las ultimas mejoras de MdeL parecen estar impulsadas no solo por los aumentos masivos en la capacidad de computo sino también por el descubrimiento de formas ingeniosas de aligerar los modelos manteniendo un alto rendimiento. Los más recientes MdeL lanzados por grandes empresas de tecnología demuestran un crecimiento exponencial con respecto al numero de parámetros necesarios en su entrenamiento, como se puede ver en la siguiente gráfica:
Acerca de GPT-2
GPT-2 (Generative pre-trained Transformer v2), es un MdeL creado a principios del 2019 por el equipo de OpenAI que demuestra que los modelos entrenados previamente se pueden usar para resolver tareas posteriores sin modificar la arquitectura. Este modelo consta de 1500 millones de parámetros el cual ha sido entrenado con una base de datos masiva de 45 millones de páginas web, El modelo genera texto coherente y logra resultados competitivos en una amplia variedad de tareas.
Pre-entrenamiento y ajuste fino
Generalmente, los MdeL en combinación con Transformers requieren de dos fases para trabajar en conjunto:
- Pre-entrenamiento: Consiste en aprender la estructura general del lenguaje, así como un conocimiento base del significado de las palabras. Este suele ser un método de aprendizaje no supervisado con cantidades masivas de datos
- Ajuste fino (Fine-tuning): Se puede considerar como un re-entrenamiento con el objetivo de afinar el modelo, tanto sus hiperparámetros como sus pesos. Esta fase se realiza sobre un modelo previamente entrenado. El ajuste fino es básicamente un método de aprendizaje supervisado el cual hace uso de datos en cantidades relativamente pequeñas a comparación de un pre-entrenamiento.





Comentarios
Publicar un comentario