4  ¿Qué son los LLMs de todos modos?

Como mencioné antes, hay términos que se usan más o menos indistintamente cuando se habla de LLMs en la educación superior. A veces las personas se refieren a ellos como “IA” o “Inteligencia Artificial”. Otras veces, las personas se refieren a esto como “genIA” o “Inteligencia Artificial generativa”. Usualmente, estos términos se hacen en referencia a LLMs o “modelos de lenguaje extensos”, que son un tipo de genIA, que es un tipo de IA.

No voy a describir los aspectos técnicos de los LLMs aquí, pero exploraremos las características y componentes principales de los LLMs para entender mejor su alcance y limitaciones, así como valorar sus salidas.

Los Modelos de Lenguaje Extensos se especializan en generar texto siguiendo un prompt. Esta generación de texto se basa en una combinación de modelos matemáticos -y estadísticos- que están entrenados con datos, cargas y cargas de datos. Pero antes de sumergirnos en las partes móviles de los LLMs, verifiquemos un predecesor de los LLMs modernos.

4.1 Texto predictivo

Todos hemos usado corrección automática o algún tipo de asistencia de texto predictivo en nuestros teléfonos, correo electrónico, o incluso tu editor de texto favorito. Estas herramientas se han vuelto ubicuas en dispositivos y plataformas.

Una de las primeras versiones del texto predictivo se basa en un concepto matemático y estadístico llamado cadenas de Markov. En resumen, un sistema presenta la propiedad de Markov si su estado actual está determinado solo por su estado anterior. En referencia a la predicción de texto, esto significa que sugerir la siguiente palabra en un texto solo requiere conocimiento de la palabra actual (anterior).

Esta propiedad puede parecer muy simplista y quizás no útil. Sin embargo, es impresionante la cantidad de tecnologías modernas que se basan en esta simple suposición. La propiedad de Markov hace que los sistemas sean ligeros, lo que significa que no se necesitan muchos recursos para implementarlos.

A grandes rasgos, las cadenas de Markov describen sistemas que tienen un número finito de estados posibles. Estos sistemas transicionan de un estado a otro en cada paso de tiempo. Se permite permanecer en el estado actual. Las transiciones ocurren según ciertas probabilidades. Gran parte del trabajo práctico se centra en describir y calcular con precisión estas probabilidades.

Por ejemplo, para nuestro modelo simple de texto predictivo, el sistema descrito es un texto (ensayo, sms, correo electrónico, etc.) como una secuencia de palabras. Nuestra cadena de Markov tiene como objetivo describir la transición de una palabra a la siguiente. Para esto, necesitamos conocer la probabilidad de pasar de una palabra específica a la siguiente. Si en mi texto está la palabra “Yo”, hay una alta probabilidad de que la siguiente palabra sea “soy” y una baja probabilidad de que la siguiente palabra sea “Yo” de nuevo.

Encontrar estas probabilidades puede ser desafiante y no estándar. Similar a diferentes chefs teniendo diferentes recetas para el mismo plato, diferentes implementaciones de cadenas de Markov podrían calcular o estimar probabilidades de diferentes maneras.

Una forma común de estimar probabilidades para texto predictivo (como antes) es usar conteos de frecuencia en corpus de referencia (textos de referencia). La idea principal es contar con qué frecuencia la palabra “soy” sigue a la palabra “Yo” en una colección de textos de referencia y compararlo con el número total de pares de palabras que tienen “Yo” como la primera palabra.

Nota que esto depende del corpus de referencia. Si nuestro texto de referencia fueran las letras de la canción de Avril Lavigne “I’m with you”, la palabra “am” no aparece como un posible seguimiento de la palabra “I”, ¡sin embargo la palabra “I” sí!

4.2 Conocimiento y predicción

Solo confiar en la palabra anterior para predecir la siguiente palabra puede sentirse excesivamente simplista. Nota que la misma idea de las cadenas de Markov puede aplicarse para bigramas (pares de palabras) en lugar de palabras individuales. Podemos estimar probabilidades de cuál es la siguiente palabra dado las dos palabras anteriores. En general, es posible extender esta idea a n-gramas, secuencias de \(n\) palabras, como la entrada para predecir la siguiente palabra.

Como esperaríamos, tomar más palabras que solo la anterior lleva a mejores resultados en texto predictivo. El precio a pagar no es solo ahora hacer seguimiento de una secuencia más larga de palabras para predicciones, sino también considerar más combinaciones posibles al estimar las probabilidades de transición.

Ampliar la ventana de contexto para un sistema predictivo requiere más atención a la estimación de las probabilidades de transición. Estas probabilidades pueden entonces considerarse como el conocimiento que el sistema tiene con respecto a ciertos corpus. El sistema predictivo emerge con dos componentes importantes: a) el conocimiento que tiene, y b) la capacidad de predecir la siguiente palabra dada una entrada.

Cada uno de estos componentes tiene diferentes estrategias y algoritmos involucrados que pueden diferir de implementación a implementación, pero la esencia es aproximadamente la misma:

  • El conocimiento está representado por la definición de probabilidades.
  • La predicción se obtiene mediante secuencias de entrada de palabras, interpretando probabilidades e introduciendo elecciones aleatorias.

Nota que la probabilidad y la aleatoriedad son partes importantes del sistema. Hay algunas razones teóricas y prácticas para esto, pero uno de los puntos principales para nosotros es la naturaleza estocástica intrínseca del texto predictivo.

4.3 Modelos de Lenguaje Extensos

Nota que la descripción anterior no toma en cuenta la gramática del idioma. Este enfoque infiere la estructura del lenguaje del corpus de referencia -también conocido como los datos de entrenamiento.

Hay diferentes modelos de lenguaje usados por lingüistas y científicos de la computación que tienen fortalezas y debilidades dependiendo de sus casos de uso. Es importante notar que los LLMs son un tipo especial de modelos de lenguaje que surgieron como un tipo de mejora de nuestro sistema simple de texto predictivo.

Además de las diferencias técnicas matemáticas, podemos enfocarnos en cómo los LLMs definen su conocimiento y predicen las siguientes palabras.

A diferencia de nuestro sistema de texto predictivo de antes, los LLMs se llaman modelos de lenguaje extensos debido a la cantidad de datos de entrenamiento. Antes, podríamos tener las letras de una canción, algunas páginas de Wikipedia, o un libro como posibles corpus para estimar probabilidades de transición. En el caso de los LLMs, los datos de entrenamiento alcanzan el nivel de toda la internet. Sí, toda la internet. Más allá de esto, muchos de los LLMs actuales están entrenados en conjuntos de datos que incluyen todos los libros digitalizados, música, películas, etc. Ha habido múltiples demandas por derechos de autor abordando el uso no autorizado de material con derechos de autor en el entrenamiento de algunos de los modelos más grandes.

En el lado de la predicción, una de las diferencias más relevantes de nuestro ejemplo anterior es la ventana de contexto dinámico usada para predecir palabras. El principio principal sigue siendo el mismo: dada una secuencia de palabras, cuál es la palabra más probable que sigue. Sin embargo, los LLMs toman la secuencia completa de palabras dada en un prompt en oposición a solo una ventana de contexto fija. Esto permanece cierto cuando se hacen prompts de seguimiento. Ahora, los LLMs no solo toman la nueva solicitud como la ventana de contexto, sino también el prompt inicial, junto con la salida que él mismo produjo sobre ello.

Una nota técnica: Los LLMs no están entrenados en palabras sino en tokens. Estos pueden ser palabras, fragmentos de palabras, signos de puntuación, símbolos matemáticos, símbolos e instrucciones de codificación, etc. Por ejemplo, al escribir “7x8=” el LLM predecirá que el seguimiento más probable es un “5” y luego un “6”.

4.4 Entrenamiento

Usar toda la internet para entrenar un LLM requiere, no solo muchos datos, sino también mucha computación. Aunque los detalles matemáticos específicos de entrenar un LLM y estimar probabilidades de transición en una cadena de Markov son diferentes, el principio central sigue siendo el mismo: necesitamos representar conocimiento sobre cómo predecir la siguiente palabra dada una secuencia de palabras anteriores. Este conocimiento está representado por números que serán almacenados y se conocen como los parámetros del modelo. Al momento de escribir este documento, los modelos actuales varían entre unas pocas decenas de miles de millones hasta más de un billón de parámetros (\(10^9-10^{12}\)).

Todos estos números son el resultado de resolver o estimar ecuaciones matemáticas basadas en la tokenización de los datos de entrenamiento. Esto significa, primero, limpiar y dividir los datos de entrenamiento en una secuencia de tokens. Para incorporar modelos matemáticos basados en estos tokens, se necesita representar estos tokens como números -más específicamente como vectores-, que pueden pensarse como arreglos de números.

Este proceso se llama codificación. Podemos pensar en la codificación como un diccionario matemático que equipara cada token con un vector diferente. ¿Pero cómo se construye este diccionario?

El desafío es hacer este diccionario lo más útil posible. Esto significa que estos números deben representar tokens y cómo interactúan entre sí de una manera útil. Una estrategia inicial abordando este problema fue tener un diccionario universal que pueda usarse para todo tipo de modelo de lenguaje. Sin embargo, un problema práctico ocurre con palabras polisémicas como “Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo.” Aquí, los humanos son capaces de entender el significado de tal oración debido a que la palabra buffalo cambia de significado dependiendo de la posición en la oración. Para permitir esta flexibilidad, los LLMs no asumen una codificación dada para una palabra, sino que calculan la codificación para cada palabra en la secuencia, permitiendo que sea diferente en diferentes lugares. Esto permite que el contexto se actualice a medida que se incluye más información en el texto.

Esto es importante no solo para palabras que pueden tener múltiples significados, sino también que pueden cambiar de significado dependiendo de otras palabras:

  • Nunca
  • Nunca mejor.

La capacidad de cambiar la codificación de tokens dependiendo del contexto se conoce como auto-codificación. Esto se agrega a la computación necesaria para entrenar LLMs.

Después de la etapa de auto-codificación, la mayoría de los LLMs tienen una combinación de redes neuronales que se usan para calcular posibles tokens siguientes. En términos simples, las redes neuronales son funciones matemáticas que dependen de ciertos parámetros. Los parámetros se determinan minimizando el error entre los tokens predichos y los tokens reales presentes en los datos de entrenamiento.

Estas son tareas computacionales altamente intensivas debido al número de parámetros (entre \(10^9\) y \(10^{12}\)). Para esto, se usan varios computadores (centros de datos) donde el proceso de entrenamiento toma algunos meses de computaciones sin parar.

En este momento, algunos de los modelos más nuevos tomaron entre 1.5 a 3 meses de entrenamiento, usando entre 10,000 y 25,000 GPUs (unidad de procesamiento gráfico, que son especialmente eficientes en multiplicación de matrices), gastando un estimado de 5GWh - 60GWh de energía. Para referencia, esto sería el equivalente al consumo anual de electricidad de un pueblo pequeño con 50,000 hogares. Una vez que la etapa de entrenamiento se completa, el consumo de energía disminuye y es comparable a una acción regular de internet, como visitar wikipedia o publicar algo en Facebook.