![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Hola lectores, estoy emocionado de que me acompañen mientras nos sumergimos en el fascinante mundo de los modelos de lenguajes grandes (LLM). El desarrollo de los LLM ha captado el interés de personas de diversos campos. Si eres nuevo en este tema, estás en el lugar correcto. En este blog, exploraremos los transformadores, sus componentes, cómo funcionan y mucho más.
¿Listo para comenzar? ¡Vamos a sumergirnos!
Los modelos Transformer son un tipo de modelo de red neuronal de aprendizaje profundo que se utilizan ampliamente en tareas de procesamiento del lenguaje natural (PLN). Los modelos de transformadores son expertos en aprender el contexto de los datos de entrada dados como una secuencia y generar nuevos datos a partir de ellos. En los últimos años, los transformadores se han utilizado como modelos de referencia en muchos modelos de lenguajes grandes (LLM) .
La arquitectura del transformador se presentó en junio de 2017 en el artículo " La atención es todo lo que necesitas ". Después de la introducción de los transformadores, el campo de la PNL ha evolucionado drásticamente en torno a la arquitectura de los transformadores. Muchos modelos de lenguaje grande (LLM) y modelos previamente entrenados se lanzaron con un transformador como columna vertebral. Veamos un breve repaso a la evolución de los transformadores en el campo de la PNL.
En junio de 2018, se introdujo el primer GPT (Transformadores generativos preentrenados) basado en transformadores. Más tarde, ese mismo año, se lanzó BERT (Representaciones de codificador bidireccional de transformadores). En febrero de 2019, OpenAI lanzó la versión avanzada de GPT, es decir, GPT-2 . Ese mismo año, se implementaron muchos modelos previamente entrenados, como XLM y RoBERTa , lo que hizo que el campo de la PNL fuera aún más competitivo.
A partir del año 2020, el campo de la PNL experimentó un auge con el lanzamiento de muchos modelos nuevos previamente entrenados. El crecimiento de estos modelos dependió en gran medida de la arquitectura del transformador. Los anteriores son sólo algunos ejemplos de la lista, mientras que, en escenarios del mundo real, incluso hay muchos modelos desarrollados sobre la arquitectura del transformador.
Antes de explorar la estructura de los transformadores, primero comprendamos algunos conceptos básicos.
El preentrenamiento es un acto de entrenar un modelo de aprendizaje automático (ML) desde cero. El procedimiento de entrenamiento comienza inicialmente aleatorizando los pesos del modelo. Durante esta fase, se introduce un corpus masivo de datos en el modelo para su aprendizaje. Normalmente, esta fase de formación es costosa y requiere mucho tiempo.
El ajuste fino es un procedimiento de capacitación que se lleva a cabo en un modelo previamente entrenado con información específica del dominio. Los modelos previamente entrenados han adquirido un amplio conocimiento, lo que los hace menos adecuados para dominios específicos. Durante este proceso, el modelo previamente entrenado se vuelve a entrenar, pero con un costo reducido ya que ya ha aprendido algunos conceptos.
Para realizar ajustes en un modelo previamente entrenado, empleamos la técnica de aprendizaje por transferencia. El aprendizaje por transferencia es un método de aprendizaje automático en el que un modelo aplica el conocimiento aprendido en un caso de uso para predecir inferencias en otro caso de uso.
Un codificador en un transformador toma la secuencia de datos como entrada y genera una secuencia de vectores para la secuencia de entrada dada. Los modelos de codificador logran esto utilizando las capas de autoatención presentes en ellos. Analizaremos estas capas de autoatención con más detalle más adelante.
Con frecuencia se describe que estos modelos tienen atención "bidireccional" y a menudo se los denomina modelos de codificación automática. Los modelos de codificador se emplean principalmente en la clasificación de oraciones y el reconocimiento de entidades nombradas (NER).
Los modelos de solo codificador son modelos de transformador que solo tienen codificadores en su arquitectura. Son muy eficientes en casos de uso como la clasificación de texto, donde el modelo apunta a comprender la representación subyacente del texto.
Un decodificador en un transformador toma una secuencia de vectores como entrada y produce una secuencia de tokens de salida. Estos tokens de salida son las palabras del texto generado. Al igual que los codificadores, los decodificadores también utilizan muchas capas de autoatención. El entrenamiento previo de los modelos decodificadores generalmente gira en torno a predecir la siguiente palabra de la oración. Estos modelos son los más adecuados para tareas que implican la generación de texto.
Los modelos de solo decodificador son modelos de transformador que solo tienen decodificadores en su arquitectura. Son muy eficientes en la generación de texto. Los decodificadores están especializados en generar tokens de salida (texto). La traducción automática y el resumen de texto son algunos de los casos de uso en los que sobresalen los modelos exclusivamente decodificadores.
Las capas de autoatención en el transformador permiten que el modelo aprenda las dependencias de largo alcance entre las palabras en el texto de entrada.
En otras palabras, esta capa le indicará al modelo que preste más atención a palabras específicas en el texto de entrada dado.
El modelo hace esto calculando la puntuación de similitud entre pares de texto en la secuencia de entrada. Luego, la capa usa esta puntuación para calcular los pesos del vector de entrada. La salida de estas capas son los vectores de entrada ponderados.
Ahora que tiene una idea sobre los conceptos básicos de codificadores, decodificadores y capas de atención, profundicemos en la arquitectura de los transformadores.
La estructura de un modelo de transformador se parece a la imagen que se muestra a continuación.
Los codificadores se colocan en el lado izquierdo y los decodificadores en el lado derecho. Los codificadores aceptan la secuencia de texto como entrada y producen una secuencia de vectores como salida, que se envían como entrada a los decodificadores. Los decodificadores generarán una secuencia de tokens de salida. Los codificadores están repletos de capas de autoatención.
Cada capa toma un vector de entrada y devuelve un vector de entrada ponderado basado en el mecanismo de autoatención, que ya comentamos. La suma ponderada es el resultado de la capa de autoatención.
El decodificador también contiene una pila de capas de autoatención y una red neuronal recurrente (RNN). Las capas de autoatención funcionan de la misma manera que los codificadores, pero el RNN asumirá la responsabilidad de convertir la suma ponderada de vectores en tokens de salida. Por lo tanto, ya debería estar claro que el RNN acepta los vectores ponderados como entrada y genera los tokens de salida como salida. En palabras simples, los tokens de salida son las palabras presentes en la oración de salida.
Para comprender los transformadores a nivel de código, le agradecería que echara un vistazo a esta implementación de Transformers en PyTorch .
Los transformadores han revolucionado el campo de la Inteligencia Artificial (IA) y el Procesamiento del Lenguaje Natural (PNL) al sobresalir en el manejo de grandes cantidades de datos. Modelos líderes como BERT de Google y la serie GPT de OpenAI muestran su efecto transformador en los motores de búsqueda y la generación de texto.
En consecuencia, se han vuelto esenciales en el aprendizaje automático moderno, superando los límites de la IA y creando nuevas oportunidades para el progreso tecnológico. Como resultado, se han vuelto indispensables en el aprendizaje automático moderno, ampliando los límites de la IA y abriendo nuevas vías en los avances tecnológicos.
¡Feliz aprendizaje!
Consulte los otros artículos de esta serie sobre modelos de lenguajes grandes (LLM):