4 ¿Qué son los LLM de todos modos?
Como se mencionó antes, hay términos que se usan más o menos indistintamente cuando se habla de LLM 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 “IAgen” o “Inteligencia Artificial generativa”. Por lo general, estos términos se hacen en referencia a los LLM o “modelos de lenguaje grandes”, que son un tipo de IAgen, que es un tipo de IA.
No voy a describir los aspectos técnicos de los LLM aquí, pero exploraremos las características y componentes principales de los LLM para comprender mejor su alcance y limitaciones, así como para valorar sus resultados.
Los Modelos de Lenguaje Grandes se especializan en generar texto siguiendo una instrucción. Esta generación de texto se basa en una combinación de modelos matemáticos -y estadísticos- que están entrenados en datos, montones y montones de datos. Pero antes de sumergirnos en las partes móviles de los LLM, revisemos un predecesor de los LLM 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 todos los 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 únicamente por su estado anterior. Traducido a la predicción de texto, esto significa que sugerir la siguiente palabra en un texto solo requiere conocimiento de la palabra actual (última).
Esta propiedad puede parecer muy simplista y tal vez no útil. Sin embargo, es impresionante la cantidad de tecnología moderna que se basa en esta suposición simple. La propiedad de Markov hace que los sistemas sean ligeros, lo que significa que no se necesitan muchos recursos para implementarlos.
Hablando a grandes rasgos, las cadenas de Markov describen sistemas que tienen un número finito de estados posibles. Estos sistemas hacen transición de un estado a otro en cada paso de tiempo. Se permite permanecer en el estado actual. Las transiciones ocurren de acuerdo con ciertas probabilidades. Gran parte del trabajo práctico se enfoca 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 busca 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 que tienen diferentes recetas para el mismo platillo, 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 qué tan frecuente la palabra “soy” sigue a la palabra “Yo” en una colección de textos de referencia y compararla con el número total de pares de palabras que tienen “Yo” como la primera palabra.
Nótese que esto depende del corpus de referencia. Si nuestro texto de referencia fueran las letras de la canción “I’m with you” de Avril Lavigne, la palabra “am” no aparece como un posible seguimiento a la palabra “I,” ¡sin embargo la palabra “I” sí lo hace!
4.2 Conocimiento y predicción
Solo confiar en la palabra anterior para predecir la siguiente palabra puede sentirse demasiado simplista. Nótese que la misma idea de las cadenas de Markov puede aplicarse para bi-gramas (pares de palabras) en lugar de palabras individuales. Podemos estimar probabilidades de cuál es la siguiente palabra dadas 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 conduce a mejores resultados en texto predictivo. El precio a pagar es no solo ahora llevar el registro 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 pensarse 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 se representa definiendo probabilidades.
- La predicción se obtiene por secuencias de entrada de palabras, interpretando probabilidades, e introduciendo elecciones aleatorias.
Nótese 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 Grandes
Nótese que la descripción anterior no toma en cuenta la gramática del idioma. Este enfoque infiere la estructura del idioma 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 LLM 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 matemáticas técnicas, podemos enfocarnos en cómo los LLM definen su conocimiento y predicen las siguientes palabras.
A diferencia de nuestro sistema de texto predictivo de antes, los LLM se llaman modelos de lenguaje grandes 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 LLM, los datos de entrenamiento alcanzan el nivel de toda la internet. Incluso más allá de esto, muchos de los LLM 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 permanece igual: dada una secuencia de palabras, cuál es la palabra más probable que siga. Sin embargo, los LLM toman toda la secuencia de palabras dada en una instrucción en lugar de solo una ventana de contexto fija. Esto permanece cierto cuando se hacen seguimientos. Ahora, los LLM no solo toman la nueva solicitud como la ventana de contexto, sino también la instrucción inicial, junto con la salida que él mismo produjo al respecto.
Una nota técnica: Los LLM no están entrenados en palabras sino en tokens. Estos pueden ser palabras, signos de puntuación, símbolos matemáticos, símbolos e instrucciones de codificación, etc. Por ejemplo, cuando se escribe “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 permanece igual: necesitamos representar conocimiento sobre cómo predecir la siguiente palabra dada una secuencia de palabras anteriores. Este conocimiento se representa 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 van entre unas pocas decenas de miles de millones a 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 tan útil como sea posible. Esto significa que estos números deberían representar tokens y cómo interactúan entre sí de una manera útil. Una estrategia inicial que abordaba este problema era 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 LLM 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 conforme 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 refiere como auto-codificación. Esto se suma a la computación necesaria para entrenar LLM.
Después de la etapa de auto-codificación, la mayoría de los LLM 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 varias computadoras (centros de datos) donde el proceso de entrenamiento toma unos pocos 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 GPU (unidad de procesamiento gráfico, que son especialmente eficientes en multiplicación de matrices), gastando un estimado de 5GWh - 60GWh de energía. Como referencia, esto sería el equivalente al consumo anual de electricidad de un pueblo pequeño con 50,000 hogares.