Grandes Modelos de Lenguaje (Large Language Models)

En este artículo vamos a entender qué son los Grandes Modelos de Lenguaje, los sistemas de Inteligencia Artificial que recientemente han revolucionado el procesamiento y generación de Lenguaje Natural.

¡Así que listo, comencemos!

Video

Como siempre, en el canal de YouTube se encuentra el video de este post:

Introducción

En los últimos meses han aparecido sistemas de Inteligencia Artificial como ChatGPT, GPT-4 o Bard que tienen una capacidad impresionante de interpetar y generar Lenguaje Natural, logrando una comunicación muy similar a como lo hacemos los seres humanos.

En el fondo estos sistemas usan lo que se conocen como los Grandes Modelos de Lenguaje o Large Language Models (LLMs), que es el tema que da comienzo el día de hoy a una serie de artículos en donde iremos viendo poco a poco diferentes aspectos de estos modelos.

En esta serie veremos no sólo los aspectos técnicos sino también diferentes herramientas de software y programación que nos permitirán desarrollar diferentes soluciones y productos de Inteligencia Artificial usando esta tecnología, así como las implicaciones que pueden tener estos desarrollos en diferentes ámbitos de nuestra vida cotidiana.

Y en este primer artículo comenzaremos con lo esencial: entendiendo precisamente qué son los Large Language Models.

Algunas definiciones básicas

Procesamiento y Generación de Lenguaje Natural

Aclaremos primero algunos conceptos básicos que nos permitirán entender qué son los Grandes Modelos de Lenguaje.

El concepto más sencillo es el del Lenguaje Natural, que es simplemente el lenguaje escrito o hablado que usamos los seres humanos para comunicarnos.

Y de este concepto se desprenden el procesamiento del lenguaje natural y la generación del lenguaje natural que son campos de las Ciencias Computacionales y de la Inteligencia Artificial.

El Procesamiento del Lenguaje Natural (o NLP por sus siglas en Inglés: Natural Language Processing) busca dotar a los computadores de herramientas que les permitan comprender y procesar el lenguaje humano. Es decir que a través del texto o la voz podamos comunicarnos con un computador.

Pero además de esto es necesario que la comunicación se dé en la otra dirección, del computador a nosotros los humanos, que es lo que busca precisamente la Generación de Lenguaje Natural (o NLG: Natural Language Generation) que busca dar herramientas a los computadores para que generen texto (o incluso voz) usando el Lenguaje Natural.

Y la combinación del Procesamiento y la Generación del Lenguaje Natural permite desarrollar un amplio rango de aplicaciones como la traducción de voz y texto, el reconocimiento de voz, el análisis de texto y los chatbots entre otros.

Y generalmente detrás del Procesamiento y la Generación del Lenguaje Natural está lo que se conoce como un Modelo de Lenguaje.

Modelo de Lenguaje

Un modelo de lenguaje permite estimar la probabilidad de ocurrencia de un caracter, una palabra, una frase o un símbolo dentro de un texto.

Y esta probabilidad es simplemente un número entre 0 y 1 que nos indica qué tan adecuada o inadecuada puede resultar una secuencia de elementos en el Lenguaje Natural.

Por ejemplo, un Modelo de Lenguaje podría asignar diferentes probabilidades a diferentes combinaciones de las palabras “comió”, “gato”, “queso”, “el” y “ratón”.

Así, el modelo debería asignar una alta probabilidad a la frase “el ratón comió queso” pues se trata de una secuencia de palabras que podríamos encontrar en una conversación entre humanos.

Pero a su vez debería darle una baja probabilidad a la frase “el queso comió gato” pues se trata de una frase que no tiene mucho sentido para nosotros los humanos.

De hecho estos Modelos de Lenguaje básicos los podemos encontrar por ejemplo en las aplicaciones de chat de los dispositivos móviles, pues cuando escribimos uno o varios caracteres o incluso algunas palabras, la aplicación nos sugiere un listado de posibles palabras que completarían el texto que queremos escribir.

Evolución de los modelos de lenguaje

Y para entender cómo funcionan los Grandes Modelos de Lenguaje es necesario entender la evolución que han tenido los diferentes Modelos de Lenguaje a lo largo del tiempo.

Años 90s: los modelos estadísticos

Los primeros modelos de lenguaje fueron desarrollados hacia los años 90 y la idea era construir modelos capaces de predecir la siguiente palabra en una secuencia de texto usando diferentes técnicas estadísticas.

El problema de estos primeros modelos es que eran entrenados con sets de datos (que se conocen como corpus) relativamente pequeños, y además las capacidades de cómputo eran limitadas.

Esto hacía que los modelos estadísticos no lograran capturar adecuadamente las diferentes relaciones existentes entre los diferentes elementos del texto escrito y por tanto su capacidad predictiva era muy limitada. En esencia no funcionaban bien en la práctica.

Años 2000s: modelos neuronales

Luego, a comienzos de los años 2000 se implementaron los primeros modelos de lenguaje basados en Redes Neuronales, donde la idea era entrenar una Red Neuronal para que aprendiera a predecir la siguiente palabra en una secuencia de texto.

Sin embargo, este intento tuvo las mismas limitaciones de los modelos estadísticos: los pocos datos de entrenamiento y las limitadas capacidades de cómputo hicieron que estos modelos no funcionaran muy bien en la práctica.

Años 2010s: Redes Recurrentes

Pero en los años 2010 hubo un cambio importante pues se contaba con equipos de cómputo más potentes y con muchos más datos disponibles en la nube.

Así que en este momento se comenzaron a usar las Redes Neuronales Recurrentes y las Redes LSTM, un tipo de Red Neuronal especializado en el procesamiento de secuencias como el texto. Y con este tipo de redes fue posible entrenar modelos de lenguaje más robustos, que mejoraron la capacidad de interpretación y generación de lenguaje natural.

Sin embargo, este tipo de redes tiene una gran limitación: su reducida memoria de largo plazo. Esto quiere decir que funcionaban bien con secuencias de texto relativamente cortas, pero cuando el texto era demasiado extenso los modelos no estaban en capacidad de “recordar” las primeras palabras del mismo y por tanto no eran capaces de procesarlo adecuadamente.

Año 2017: la llegada de las Redes Transformer

Pero en el año 2017 surgieron las Redes Transformer, una tipo de Red Neuronal que revolucionaría el campo del procesamiento y generación del lenguaje natural y que son la base de los Grandes Modelos de Lenguaje que conocemos hoy en día.

En el curso “Fundamentos de Deep Learning con Python” (disponible en la Academia Online) hablamos en detalle de estas Redes, pero por ahora lo que nos interesa entender es que estas redes, a diferencia de las Redes Recurrentes y LSTM, tienen una memoria de mucho más largo plazo.

Así, una Red Transformer puede analizar secuencias de texto mucho más extensas. Pero no solo eso, pues por la forma como procesa los datos, también está en capacidad de analizar, y codificar numéricamente, las relaciones que pueden existir entre los elementos del texto a diferentes niveles.

Entonces, la Red Transformer puede analizar relaciones entre las palabras de la secuencia pero también entre diferentes frases que hacen parte del texto, e incluso entre diferentes párrafos. Y esto en últimas permite que la Red Transformer interprete el texto de forma a similar a como lo hacemos los humanos, pues para dar significado a una palabra necesitamos tener claro el contexto dentro del cual se encuentra escrita.

Las primeras Redes Transformer fueron entrenadas para realizar tareas específicas como por ejemplo la traducción de texto, o para clasificar sentimientos, o para generar texto en una temática en particular.

Año 2018: la aparición de BERT

Pero en el año 2018 se dio otro gran hito: varios investigadores de Google desarrollaron BERT, un modelo basado en las Redes Transformer.

De este modelo también hablamos en detalle en el curso “Fundamentos de Deep Learning con Python”, pero lo que nos interesa es entender los principales aportes de este desarrollo.

El primer aporte fue la idea del pre-entrenamiento que consiste en entrenar un modelo con cientos de millones de parámetros con un corpus gigantesco y para una tarea genérica que consistía en completar palabras faltantes y predecir la siguiente palabra en el texto. Esta fase requiere muchos equipos de cómputo con altísimas capacidades de procesamiento.

Y con este pre-entrenamiento a gran escala fue posible crear un modelo de lenguaje mucho más robusto que los existentes hasta ese momento.

El segundo aporte fue el aprendizaje auto-supervisado: al entrenar el modelo para que aprenda a completar la palabra faltante o a predecir la siguiente palabra en el texto no es necesario que este set de datos sea etiquetado previamente por un ser humano. Y al no requerir este tipo de preparación resulta posible recolectar precisamente un set de datos gigantesco.

Y el tercer aporte fue la afinación: una vez pre-entrenado el modelo se puede usar un corpus más pequeño para re-entrenarlo y lograr especializarlo en una tarea determinada (como la clasificación de sentimientos, una tarea de pregunta respuesta o la sumarización, por ejemplo). Y en esta fase de afinación se requieren menos equipos de cómputo y menos tiempo de entrenamiento en comparación con la etapa de pre-entrenamiento.

Así que BERT fue el primer Gran Modelo de Lenguaje creado, después del cual vinieron las diferentes variantes de GPT (GPT-1, GPT-2, GPT-3, ChatGPT, GPT-4) y BARD, entre muchos otros.

Y en este punto ya hemos visto implícitamente lo que es un Gran Modelo de Lenguaje, así que veamos un poco más en detalle esta definición.

¿Qué es un LLM?

Entonces podemos definir un Gran Modelo de Lenguaje como un modelo de lenguaje basado en Redes Transformer, que contiene cientos o miles de millones de parámetros, que ha sido entrenado con un corpus gigantesco, y que es de propósito general pero que puede ser afinado para tareas específicas de Procesamiento y Generación de Lenguaje Natural.

Y acá vale la pena desglosar varios elementos de esta definición.

Al hablar de cientos o miles de millones de parámetros y de un corpus de entrenamiento gigantesco estamos diciendo que se requieren altas capacidades de cómputo y muchas horas, días e incluso semanas de entrenamiento. Esto quiere decir que no podemos entrenar un LLM en nuestro computador personal o ni siquiera contratando un servicio en la nube, pues el costo sería demasiado alto.

El término propósito general hace referencia a que el LLM, al contener muchos hiperparámetros y haber sido entrenado con un set de datos inmenso, es un modelo de lenguaje lo suficientemente robusto que logra modelar adecuadamente los patrones y estructuras del lenguaje humano. Y todo esto le permite al modelo aprender relaciones estadísticas entre palabras, frases y textos enteros para procesar y generar texto de manera coherente y muy similar a como lo haría un ser humano.

Y el término afinado hace referencia a que podemos tomar este modelo gigantesco pre-entrenado y entrenarlo con un corpus más pequeño para especializarlo en una tarea específica de procesamiento o generación del lenguaje natural.

Habilidades de un LLM

Muy bien, y para finalizar hablaremos de algunas habilidades que son únicas en estos Grandes Modelos de Lenguaje.

La primera de ellas es el aprendizaje en contexto, que quiere decir que el modelo puede generar un texto coherente tan sólo a partir de una instrucción o de tan sólo unos cuantos ejemplos.

Por ejemplo, le podemos indicar al modelo que queremos que traduzca un texto de inglés a español, pero antes de que lo haga le mostramos unos cuantos ejemplos del resultado esperado. Y con esto el modelo ya logrará generar la respuesta esperada:

Traduzca de Inglés a Español:

otter -> nutria
peppermint -> menta
plush giraffe -> girafa de peluche
cheese ->

>> Claro, la traducción de “cheese” al Español es “queso”

La segunda habilidad que tienen estos modelos es el seguimiento de instrucciones. Es decir que podemos darle al modelo una instrucción simple y el modelo generará la respuesta esperada. Por ejemplo, podemos indicarle que escriba un poema corto y el LLM generará dicho poema:

Escribe un poema corto de tan sólo un párrafo

>> Bajo el manto estrellado, en el silencio de la noche, se entrelazan los suspiros de la brisa con el murmullo del río.

Y la tercera habilidad es el razonamiento paso a paso. Esto quiere decir que el modelo logra resolver tareas relativamente complejas que involucran múltiples fases de razonamiento, como por ejemplo problemas matemáticos escritos en Lenguaje Natural:

Por ejemplo, en este sencillo ejercicio le podemos indicar al modelo el número de bolas de tenis que Miguel tenía inicialmente y la cantidad de tubos que compró, indicando cuántas bolas hay en cada tubo. Y al final podemos pedirle al modelo que nos indique cuántas bolas de tenis habrá en total:

Miguel tiene 5 bolas de tenis y compra otros dos tubos cada uno con 6 pelotas. ¿Cuántas pelotas de tenis tiene en total?

>> Miguel tiene 5 bolas de tenis. Y compra 2 tubos cada uno con 6 bolas.
Esto quiere decir que compra 2 x 6 = 12 bolas. En total Miguel tiene ahora
5 + 12 = 17 bolas de tenis.

Y en la respuesta entregada por el modelo se observa claramente el razonamiento paso a paso, pues descompone el enunciado del problema en sus elementos esenciales y luego ejecuta las operaciones requeridas para obtener la respuesta correcta.

Conclusión

Muy bien, en este artículo hemos entendido la evolución y el significado de lo que es un Gran Modelo de Lenguaje, así como sus principales características.

En esencia estos modelos están construidos sobre una Red Transformer gigantesca, entrenada con un set de datos inmenso, lo cual hace que se tenga un modelo de lenguaje bastante robusto.

Y esto es lo que ha permitido desarrollar muchas de las aplicaciones que hemos visto recientemente, que permiten procesar y generar lenguaje de forma muy similar a como lo hacemos los seres humanos.

Si quieres profundizar en los temas que acabamos de ver en este post te invito a revisar en detalle estos recursos: