LLM: ¿Cuál es un modelo grande de lenguaje?

Una tecnología más reciente, los modelos de lenguaje grandes (LLM), predicen un token o una secuencia de tokens, a veces muchos párrafos de tokens previstos. Recuerda que un token puede ser una palabra, una subpalabra (un subconjunto de una palabra) o incluso un solo carácter. Los LLM hacen predicciones mucho mejores que los modelos de lenguaje de n-gramas o las redes neuronales recurrentes por los siguientes motivos:

  • Los LLM contienen muchos más parámetros que los modelos recurrentes.
  • Los LLMs recopilan mucho más contexto.

En esta sección, se presenta la arquitectura más exitosa y ampliamente utilizada para compilar LLM: el transformador.

¿Qué es un transformador?

Los transformadores son la arquitectura de vanguardia para una amplia variedad de aplicaciones de modelos de lenguaje, como la traducción:

Figura 1: La entrada es: I am a good dog. Un traductor basado en Transformer transforma esa entrada en el resultado: Je suis un bon chien, que es la misma oración traducida al francés.
Figura 1: Una aplicación basada en Transformer que traduce del inglés al francés.

 

Los transformadores completos constan de un codificador y un decodificador:

  • Un codificador convierte el texto de entrada en una representación intermedia. Un codificador es una red neuronal enorme.
  • Un decodificador convierte esa representación intermedia en texto útil. Un decodificador también es una red neuronal enorme.

Por ejemplo, en un traductor:

  • El codificador procesa el texto de entrada (por ejemplo, una oración en inglés) en una representación intermedia.
  • El decodificador convierte esa representación intermedia en texto de salida (por ejemplo, la oración equivalente en francés).
Figura 2: El traductor basado en Transformer comienza con un codificador, que genera una representación intermedia de una oración en inglés. Un decodificador convierte esa representación intermedia en una oración de salida en francés.
Figura 2: Un Transformer completo contiene un codificador y un decodificador.

 

En este módulo, nos enfocamos en los transformadores completos, que contienen un codificador y un decodificador. Sin embargo, también existen arquitecturas solo de codificador y solo de decodificador:

  • Las arquitecturas de solo codificador asignan el texto de entrada a una representación intermedia (a menudo, una capa de incorporación). Estos son algunos casos de uso de las arquitecturas de solo codificador:
    • Predecir cualquier token en la secuencia de entrada (que es el rol convencional de los modelos de lenguaje)
    • Crear una incorporación sofisticada, que podría servir como entrada para otro sistema, como un clasificador.
  • Las arquitecturas de solo decodificador generan tokens nuevos a partir del texto que ya se generó. Los modelos de solo decodificador suelen destacarse en la generación de secuencias. Los modelos modernos de solo decodificador pueden usar su poder de generación para crear continuaciones de historias de diálogo y otras indicaciones.

¿Qué es la autoatención?

Para mejorar el contexto, los transformadores dependen en gran medida de un concepto llamado atención automática. En efecto, en nombre de cada token de entrada, la autoatención hace la siguiente pregunta:

"¿Cuánto afecta cada otro token de entrada la interpretación de este token?"

El "yo" en "autoatención" se refiere a la secuencia de entrada. Algunos mecanismos de atención ponderan las relaciones de los tokens de entrada con los tokens en una secuencia de salida, como una traducción, o con los tokens de alguna otra secuencia. Sin embargo, la autoatención solo pondera la importancia de las relaciones entre los tokens en la secuencia de entrada.

Para simplificar, supongamos que cada token es una palabra y que el contexto completo es solo una oración. Considera la siguiente oración:

The animal didn't cross the street because it was too tired.

La oración anterior contiene once palabras. Cada una de las once palabras presta atención a las otras diez y se pregunta cuánto le importa cada una de ellas. Por ejemplo, observa que la oración contiene el pronombre it. Los pronombres suelen ser ambiguos. Por lo general, el pronombre it hace referencia a un sustantivo o una frase nominal reciente, pero en la oración del ejemplo, ¿a qué sustantivo reciente hace referencia it, al animal o a la calle?

El mecanismo de autoatención determina la relevancia de cada palabra cercana para el pronombre it. En la Figura 3, se muestran los resultados: cuanto más azul sea la línea, más importante es esa palabra para el pronombre it. Es decir, animal es más importante que calle para el pronombre it.

Figura 3: La relevancia de cada una de las once palabras de la oración:
            'El animal no cruzó la calle porque estaba demasiado cansado'
            para el pronombre “it”. La palabra “animal” es la más relevante para el pronombre “it”.
Figura 3: Autoatención para el pronombre it. De Transformer: Una novedosa arquitectura de red neuronal para la comprensión del lenguaje.

 

Por el contrario, supongamos que la última palabra de la oración cambia de la siguiente manera:

The animal didn't cross the street because it was too wide.

En esta oración revisada, con suerte, la autoatención clasificaría calle como más relevante que animal para el pronombre it.

Algunos mecanismos de autoatención son bidireccionales, lo que significa que calculan las puntuaciones de relevancia para los tokens que preceden y siguen a la palabra a la que se le presta atención. Por ejemplo, en la Figura 3, observa que se examinan las palabras a ambos lados de it. Por lo tanto, un mecanismo de autoatención bidireccional puede recopilar contexto de las palabras a ambos lados de la palabra a la que se le presta atención. Por el contrario, un mecanismo de autoatención unidireccional solo puede recopilar contexto de las palabras a un lado de la palabra a la que se le presta atención. La autoatención bidireccional es especialmente útil para generar representaciones de secuencias completas, mientras que las aplicaciones que generan secuencias token por token requieren autoatención unidireccional. Por este motivo, los codificadores usan autoatención bidireccional, mientras que los decodificadores usan unidireccional.

¿Qué es la autoatención multicabezal?

Por lo general, cada capa de autoatención consta de varios grupos de autoatención. El resultado de una capa es una operación matemática (por ejemplo, el promedio ponderado o el producto punto) del resultado de los diferentes encabezados.

Dado que cada capa de autoatención se inicializa con valores aleatorios, diferentes cabezas pueden aprender diferentes relaciones entre cada palabra a la que se le presta atención y las palabras cercanas. Por ejemplo, la capa de autoatención que se describió en la sección anterior se enfocó en determinar a qué sustantivo se refería el pronombre it. Sin embargo, otras capas de autoatención podrían aprender la relevancia gramatical de cada palabra para todas las demás, o bien aprender otras interacciones.

La autoatención obliga a cada palabra del contexto a aprender la relevancia de todas las demás palabras del contexto. Por lo tanto, es tentador proclamar que este es un problema de O(N2), en el que:

  • N es la cantidad de tokens en el contexto.

Como si la Big O anterior no fuera lo suficientemente perturbadora, los transformadores contienen varias capas de autoatención y varios encabezados de autoatención por capa de autoatención, por lo que Big O es en realidad lo siguiente:

O(N2 · S · D)

Donde:

  • S es la cantidad de capas de autoatención.
  • D es la cantidad de cabezas por capa.

Es probable que nunca entrenes un LLM desde cero. El entrenamiento de un LLM de nivel industrial requiere enormes cantidades de experiencia en AA, recursos de procesamiento y tiempo. De cualquier manera, hiciste clic en el ícono para obtener más información, por lo que te debemos una explicación.

El ingrediente principal para compilar un LLM es una cantidad fenomenal de datos de entrenamiento (texto), que suelen estar algo filtrados. La primera fase de entrenamiento suele ser una forma de aprendizaje no supervisado en esos datos de entrenamiento. Específicamente, el modelo se entrena en predicciones enmascaradas, lo que significa que ciertos tokens en los datos de entrenamiento se ocultan de forma intencional. Para entrenarse, el modelo intenta predecir esos tokens faltantes. Por ejemplo, supongamos que la siguiente oración forma parte de los datos de entrenamiento:

The residents of the sleepy town weren't prepared for what came next.

Se quitan los tokens aleatorios, por ejemplo:

The ___ of the sleepy town weren't prepared for ___ came next.

Un LLM es solo una red neuronal, por lo que la pérdida (la cantidad de tokens enmascarados que el modelo consideró correctamente) guía el grado en que la propagación inversa actualiza los valores de los parámetros.

Un modelo basado en Transformer entrenado para predecir los datos faltantes aprende gradualmente a detectar patrones y estructuras de orden superior en los datos para obtener pistas sobre el token faltante. Considera el siguiente ejemplo de instancia enmascarada:

Oranges are traditionally ___ by hand. Once clipped from a tree, __ don't ripen.

El entrenamiento extenso en grandes cantidades de ejemplos enmascarados permite que un LLM aprenda que “cosechar” o “recoger” son coincidencias de alta probabilidad para el primer token y “naranjas” o “ellos” son buenas opciones para el segundo token.

Un paso de entrenamiento adicional opcional llamado ajuste de instrucciones puede mejorar la capacidad de un LLM para seguir instrucciones.

¿Por qué los transformadores son tan grandes?

Los transformadores contienen cientos de miles de millones o incluso billones de parámetros. En general, en este curso, se recomendó crear modelos con una cantidad menor de parámetros en lugar de aquellos con una cantidad mayor. Después de todo, un modelo con una menor cantidad de parámetros usa menos recursos para realizar predicciones que un modelo con una mayor cantidad de parámetros. Sin embargo, las investigaciones demuestran que los transformadores con más parámetros superan de forma coherente a los transformadores con menos parámetros.

Pero ¿cómo genera texto un LLM?

Ya viste cómo los investigadores entrenan los LLM para predecir una o dos palabras que faltan, y es posible que no te impresionen. Después de todo, predecir una o dos palabras es, en esencia, la función de autocompletar integrada en varios software de texto, correo electrónico y creación de contenido. Es posible que te preguntes cómo los LLM pueden generar oraciones, párrafos o haikus sobre el arbitraje.

De hecho, los LLM son, en esencia, mecanismos de autocompletar que pueden predecir (completar) automáticamente miles de tokens. Por ejemplo, considera una oración seguida de una oración enmascarada:

My dog, Max, knows how to perform many traditional dog tricks.
___ (masked sentence)

Un LLM puede generar probabilidades para la oración enmascarada, incluidas las siguientes:

Probabilidad Palabras
3.1% Por ejemplo, puede sentarse, quedarse y voltearse.
2.9% Por ejemplo, sabe cómo sentarse, quedarse quieto y voltearse.

Un LLM lo suficientemente grande puede generar probabilidades para párrafos y ensayos completos. Puedes considerar las preguntas de un usuario a un LLM como la oración “dada”, seguida de una máscara imaginaria. Por ejemplo:

User's question: What is the easiest trick to teach a dog?
LLM's response:  ___

El LLM genera probabilidades para varias respuestas posibles.

Como otro ejemplo, un LLM entrenado en una gran cantidad de "problemas matemáticos expresados en palabras" puede dar la apariencia de realizar un razonamiento matemático sofisticado. Sin embargo, esos LLM básicamente solo completan automáticamente una instrucción de problema de palabras.

Beneficios de los LLM

Los LLM pueden generar texto claro y fácil de entender para una amplia variedad de públicos objetivo. Los LLM pueden hacer predicciones sobre tareas para las que se entrenaron de forma explícita. Algunos investigadores afirman que los LLM también pueden realizar predicciones para entradas en las que no se entrenaron de forma explícita, pero otros investigadores refutaron esta afirmación.

Problemas con los LLM

Entrenar un LLM implica muchos problemas, incluidos los siguientes:

  • Recopilar un conjunto de entrenamiento enorme
  • Consumen varios meses y enormes recursos de procesamiento y electricidad.
  • Solucionar desafíos de paralelismo.

El uso de LLM para inferir predicciones causa los siguientes problemas:

  • Los LLMs hallucinan, lo que significa que sus predicciones suelen contener errores.
  • Los LLM consumen enormes cantidades de recursos de procesamiento y electricidad. El entrenamiento de LLM en conjuntos de datos más grandes suele reducir la cantidad de recursos necesarios para la inferencia, aunque los conjuntos de entrenamiento más grandes incurren en más recursos de entrenamiento.
  • Al igual que todos los modelos de AA, los LLM pueden mostrar todo tipo de sesgos.

Ejercicio: Comprueba tu comprensión

Supongamos que un transformador se entrena en mil millones de documentos, incluidos miles de documentos que contienen al menos una instancia de la palabra elefante. ¿Cuáles de las siguientes afirmaciones son probablemente verdaderas?
El transformador asociará la palabra elefante con varios idioms que contengan la palabra elefante.
El transformador aprenderá gradualmente a ignorar cualquier uso sarcástico o irónico de la palabra elefante en los datos de entrenamiento.
Árboles de acacia, una parte importante de la dieta de un elefante, ganarán gradualmente una puntuación alta de autoatención con la palabra elefante.