Presente y futuro del Procesamiento de Lenguaje Natural

Mario Campos Soberanis
9 min readSep 15, 2022

--

El Procesamiento del Lenguaje Natural (PLN) ha sido una de las tareas más desafiantes para los investigadores desde el nacimiento de la Inteligencia Artificial. En los años 50 Alan Turing, padre de la computación y la Inteligencia Artificial, definió la inteligencia de las máquinas en la medida que pudieran realizar tareas de procesamiento de lenguaje natural. En particular generó el llamado test de Turing, el cual partiendo del juego de la imitación, definía la inteligencia de una máquina de acuerdo a su capacidad para imitar a un humano en entornos conversacionales.

Casi 100 años han pasado desde el test de Turing y a mi parecer aún no tenemos máquinas y algoritmos capaces de superar dicho test, sin embargo, gracias al advenimiento de las redes neuronales profundas y de los macro modelos de lenguaje, tareas que se suponían irresolubles por parte de las máquinas comienzan a generar resultados prometedores.

Desde los inicios del PLN utilizando métodos basados en reglas con Eliza, de Weizenbaum, pasando por enfoques probabilísticos, machine learning, modelos ocultos de markov y conditional random fields, avances impresionantes se han generado en el mundo del procesamiento del lenguaje natural.

El año pasado en el Google IO se presentó a LaMDA, un modelo de lenguaje que permite generar conversaciones naturales.

Evolución del Transformer

En los últimos años los modelos neuronales de lenguaje han marcado un hito importante en el PLN. Desde los primeros modelos de lenguaje, se ha madurado la manera de representar conocimiento semántico de las palabras mediante las técnicas de embeddings, en las cuales una palabra o frase es codificada a un vector denso que captura información semántica del texto original. Un hito importante en la generación de embeddings se alcanzó gracias a los trabajos presentados en Word2Vec de Mikolov et al., GloVe de Pennington et al. y posteriormente ELMO de Peters et al. El desarrollo de los embeddings marcó un antes y un después en el entendimiento de lenguaje natural y el uso de éstas trécnicas comenzó a dar grandes resultados en conjunto con arquitecturas encoder-decoder utilizadas con redes neuronales recurrentes, generalmente LSTM o GRU.

Si bien los embeddings en conjunto con los encoders presentaban un avance importante, no obtenían buenos resultados para sentencias complejas, en las cuales era importante mantener las referencias a las primeras palabras de la oración. En general estos modelos perdían precisión para sentencias largas pues la arquitectura de la red forzaba al encoder a poner toda la información semántica en un embedding único, el cual se sobreescribe a medida que más tokens pasan por el encoder. Para poder generar diferentes vectores, capaces de prestar atención a diferentes segmentos de la oración se introducen los modelos de self attention en el trabajo de Bahdanau, Cho y Bengio en el artículo Neural Machine Translation by Jointly Learning to Align and Translate. Las arquitecturas encoder-decoder se mezclan posteriormente con múltiples cabezales de atención (figura 1) y así nace una de las arquitecturas más influyentes dentro del procesamiento del lenguaje natural en los últimos años: el transformer. Está arquitectura es presentada en el paper Atention is all you need y con los proyectos GPT-3 y BERT (así como todas sus variantes), se muestran las enormes capacidades que presentan éstos modelos en el entendimiento de lenguaje natural.

Figura 1: Arquitectura del transformer (tomado de Vaswani et al.)

Macro Modelos de Lenguaje

A partir de la publicación de los mecanismos de atención múltiple (multi-head attention) y el desarrollo de las arquitecturas tipo transformer, fue posible optimizar el entrenamiento de redes neuronales profundas para procesar enormes cantidades de texto (GPT-3 fue entrenado a partir de un corpus de 45TB y BERT uno de 3300 millones de palabras) utilizando mallas de aceleradores GPU o TPU.

Los enfoques actuales utilizan una estrategia en donde el encoder y decoder del transformer producen texto. Es notable que cambiando el decoder se puede adaptar el modelo para realizar diferentes tareas, como clasificación, traducción, sumarización, análisis de sentimiento, etc. Para lograr esto se utilizan estrategias de preentrenamiento en las que una gran cantidad de texto en lenguaje natural es pasado a un modelo que aprende la distribución de probabilidad de las palabras dadas las precedentes o sucedentes, es decir: un modelo de lenguaje. De manera práctica podemos pensar en que un modelo de lenguaje consiste en establecer empíricamente, con base en conteos realizados a partir de un corpus, las probabilidades de ocurrencia de una palabra (o frase) dadas las n anteriores. El modelo entonces trata de estimar la probabilidad de cierta secuencia de palabras a partir de las probabilidades observadas mediante la ecuación mostrada en la figura 2:

Figura 2: Ecuación de un modelo de lenguaje

Este tipo de modelos han tenido un gran impacto y diferentes empresas han construido sus propias versiones. Entre los más importantes se encuentran GPT-3 de OpenAI, BERT y T5 de Google, Turing-NLG de Microsoft, OPT-175 de Meta, y Bloom de Bigscience.

Para poder sacar provecho del conocimiento del mundo codificado en el modelo de lenguaje por medio de los pesos del encoder, se han realizado estrategias de fine tunning en las cuales se altera la salida del decoder y se optimiza para realizar cierta tarea, generalmente con un corpus especializado.

Utilizando estás estrategias hemos visto el surgimiento de modelos especializados para programación automática: Codex, AlphaCode, conversación: LaMDA, crear imágenes a partir de texto: DALL-E, reconstruir textos en griego: PYTHIA, resolver problemas de matemáticas: MINERVA, prueba automática de teoremas: Lean-Gym, detección de objetos en imágenes: Pix2Seq, entre otras varias aplicaciones, obteniendo unos resultados bastante impresionantes.

¿Mientras más grande mejor?

Actualmente las tendencias se dirigen hacia modelos cada vez más grandes capaces de “capturar” más información del mundo. En Abril de 2022 Google mostró las capacidades que adquieren estos modelos usando PaLM. En el artículo se explora el incremento de las capacidades del modelo de lenguaje a medida que el número de parámetros crece (y por tanto también aumentan el tiempo y la infraestructura de entrenamiento). Algunos resultados muy interesantes muestran que con 8 billones de parámetros puede realizar algunas operaciones de aritmética básica y entendimiento de lenguaje, con 62 billones puede comenzar a completar código y mostrar indicios de razonamiento de sentido común y con 540 billones puede comenzar a explicar bromas y responder preguntas de física.

Figra 3: Capacidades de PaLM con 540 billones de parámetros (tomado del blog de Google AI)

Los resultados obtenidos muestran el una mejora en el estado del arte, ubicándose en un desempeño similar al de un humano promedio, como se muestra en la figura 4:

Figura 4. Métricas de PaLM metrics (tomado de Chowdery et al.)

Estos resultados sin duda son sorprendentes e incluso se ha iniciado un acalorado debate acerca de si los modelos de lenguaje han desarrollado capacidades de razonamiento y sentimientos llegando incluso presuntamente a contratar abogados. En lo personal me adhiero a la postura de la mayoría de investigadores en procesamiento de lenguaje natural que mencionan que LaMDA no es otra cosa que un modelo de lenguaje, es decir, una herramienta computacional capaz de predecir la mejor palabra que sigue a una oración.

Por impresionantes que puedan parecer las resoluciones de problemas matemáticos realizados por MINERVA (figura 5), es claro que no tiene una capacidad de razonamiento, como queda demostrado al ver la degradación de sus capacidades aritméticas conforme el número de dígitos en una suma aumenta (Figura 6), pero si contiene codificada mucha información estadística del mundo real.

Figura 5. Ejemplo de Minerva resolviendo un problema matemático (tomado del blog de Google AI)
Figura 6. Accuracy de Minerva realizando sumas según el número de dígitos (tomado de Lewcowycz et al.)

Los resultados parecen indicar que “mientras más grande mejor”, sin embargo, recordemos que la naturaleza de las redes neuronales las convierte en aproximadores universales de funciones (una red neuronal puede aproximar cualquier función continua), por lo que en realidad tenemos una complejísima composición de funciones para transtormar una entrada de texto x, en una salida de texto y. Aún queda un tramo importante para afirmar que este tipo de aplicaciones son conscientes y poseen capacidades de razonamiento y sentimiento.

Problemas con los Macro Modelos de Lenguaje

Si bien los modelos de lenguaje están comenzando a mostrar una gran capacidad de realizar tareas de utilidad, conllevan algunos sesgos importantes:

Falta de accesibilidad: A pesar de tener iniciativas muy importantes por parte de empresas como HugginFace (sea dicho de paso que están haciendo un trabajo fenomenal poniendo estos modelos al alcance de los desarrolladores) y de tener iniciativas open source por varias empresas y desarrolladores, es claro que entrenar uno de estos modelos no está al alcance de casi ninguna empresa, e inclusive pocas universidades cuentan con la infraestructura necesaria para poder entrenar estos modelos por la cantidad de recursos de cómputo necesarios. Lo anterior nos hace dependientes de las decisiones que sobre los mismos tomen los grandes actores detrás de estos modelos.

Falta de eficiencia y escalabilidad: Estos modelos tienen a cientos de personas (inclusive miles) trabajando para poder entrenarlos para que rindan aproximadamente de manera similar a lo que hace una persona promedio. Si bien es cierto que una vez entrenados pueden automatizar algunas tareas o servir como apoyo al sector productivo, no parece que lo adecuado sea simplemente darles más información, aumentar el número de servidores y aumentar el tamaño de los modelos. Esto requiere un esfuerzo exponencial el cual nos lleva a algoritmos de fuerza bruta en lugar de soluciones inteligentes.

Necesitan cantidades masivas de información: Cuando lidiamos con idiomas con pocos recursos o sub explorados (la gran mayoría de los avances están para el idioma inglés), a menudo nos topamos con la falta de información necesaria para entrenar uno de estos modelos. ¿Que hacemos si no contamos con los 45TB de datos necesarios para entrenar estos modelos?

A menudo son un over kill: En muchos escenarios las tareas del procesamiento de lenguaje natural son especializadas y solo necesitan trabajar y entender sub conjuntos del lenguaje. No suena óptimo pasar por un macro modelo que genere unos embeddings complejos para poder realizar tareas simples, es utilizar demasiada infraestructura para ellos, sin embargo, si contamos con un dataset pequeño al hacer el fine tuning tenemos que apegarnos al macro modelo, de lo contrario tendremos resultados subóptimos.

¿Qué sigue?

Iniciativas para simplificar y compactar los macro modelos de lenguaje como las técnicas de quantization y block prunning son de mucha valía, pero aún persiste el problema del acceso a infraestrucutras tan grandes y pesadas como las necesarias para realizar estos entrenamientos.

Tareas que incluyan la generación de sentido común y la capacidad de conectarse a otras fuentes de información pueden ser de mucha importancia.

La capacidad para razonar sobre estructuras dinámicas también parece ser importante, de ahí que las redes de atención sobre grafos ofrezcan una interesante línea de desarrollo, así como las neuronas multimodales, es decir aquellas que pueden responder a conceptos, hablados, escritos o visuales como las detectadas en el modelo CLIP también resultan una línea de desarrollo prometedora.

Un paso interesante es comenzar a desarrollar arquitecturas cognitivas con mayor capacidad de razonamiento, más semejante a la forma en la que razonamos los seres humanos (figura 7). En ese sentido Meta, parece estar dando pasos en la dirección correcta buscando generar sistemas que razonen como humanos y animales. Existen iniciativas muy ambiciosas e interesantes que involucran a empresas y universidades alrededor del mundo para comenzar a desarrollar este tipo de arquitecturas.

Figura 7. Arquitectura cognitiva propuesta por Meta (tomada del blog de Meta)

Si bien aún no sabemos cual va a ser el futuro de la Inteligencia Artificial, nos encontramos en una época muy interesante para los investigadores de Procesamiento de Lenguaje Natural y sin duda el avance obtenido gracias a los macro modelos de lenguaje, nos va acercando al lugar correcto para empezar a generar modelos verdaderamente inteligentes, los cuales puedan llevarnos a explorar lugares que habíamos pensado inaccesibles hasta ahora.

--

--