GPT-3: fundamentos y limitaciones técnicas

La primera vez que utilizas GPT-3 es imposible que no quedes con la boca abierta del asombro.

Incluso puede llegar a dar mucho miedo al ver acercarse tantos universos distópicos recurrentes en las películas de ficción con las que crecimos.

Es que tenemos delante una inteligencia artificial capaz de interactuar con nosotros a través de textos generados de forma asombrosamente realista.

Asombro, miedo, pueden ser las primeras reacciones de las personas que no estamos familiarizados con este tipo de modelos.

Luego, si seguimos interactuando con este sistema, es probable que te encuentres con situaciones como las que se describen en este artículo.

El objetivo que persigo hoy es abordar este tipo de modelos de un modo más técnico para tratar de comprender cómo hace su magia y entender las limitaciones que aún posee.

Conocimiento que si sabes aprovechar podrás exprimir al máximo las potencialidades de este sistema.

Antes de abordar GPT-3, creo que hay algunos conceptos que conviene refrescar. Comencemos entonces.

Procesamiento de Lenguaje Natural

El procesamiento de lenguaje natural o NLP por sus siglas en inglés es uno de los retos con los que luchamos desde hace mucho tiempo.

Es que la idea de dinamizar la comunicación hombre-máquina a través de un algoritmo que entienda nuestro lenguaje es fascinante, y el campo de aplicación, exponencial.

Aunque modelos como GPT-3 nos parezcan alucinantes, estamos muy lejos de cumplir este reto, aunque en los últimos años hemos tenido avances importantes. Podríamos preguntarnos, ¿cómo ha sido posible?

Si te dieran la tarea de crear un algoritmo que entendiera nuestro lenguaje probablemente te apoyarías en cómo lo hacemos los humanos, y analizarías el texto en orden palabra por palabra intentando buscar alguna chuleta que indicara el contexto general de la frase.

¿Cómo llevar eso a un algoritmo?

La mejor solución que le hemos podido dar a este problema viene de la mano de la Inteligencia Artificial, específicamente de las Redes Neuronales.

✨ TAMBIÉN TE PUEDE INTERESAR
OpenAi elimina la lista de espera para acceder a su API

¿Cómo resolver problemas de NLP con Redes Neuronales?

Primeramente, debemos definir Redes Neuronales como un modelo simplificado que emula el modo en que el cerebro humano procesa la información mediante la simulación de conexiones neuronales a través de operaciones algebraicas con valores numéricos.

Y las palabras claves en todo esto son valores numéricos. Si las redes neuronales operan con valores numéricos lo primero que debemos hacer será convertir las palabras a este tipo de valores.

En el caso del procesamiento de lenguaje natural cada palabra es transformada inicialmente en un vector que la representa. Para aplicar esta conversión se utilizan inicialmente vectores del tamaño de todo el diccionario de palabras, como podrás imaginar … gigantescos.

Estos vectores reducen su tamaño mediante la primera capa en un proceso conocido como Embedding. Este proceso se encarga de comprimir y organizar palabras para llevarlas mediante el entrenamiento a su posición óptima.

Existen varias redes neuronales entrenadas para lograr esta representación. Tenemos por ejemplo a World2vec, del que te muestro una interfaz muy atractiva para jugar con las relaciones entre las palabras que aprendió durante su entrenamiento.

Quedaremos fascinados al encontrar que realmente forma grupos de palabras con conceptos similares como animales, frutas, sentencias de programación, entre otras relaciones interesantes aprendidas mediante los datos de entrada de su entrenamiento.

Es importante mencionar que todo el tiempo nos referimos a palabras de entrada para facilitar la comprensión, pero en modelos como GPT-3 en lugar de palabras se trabaja con subpalabras denominadas tokens.

Hasta aquí tenemos entonces que la cadena de entrada se convierte en vectores y que estos son ordenados en un espacio multidimensional de acuerdo a sus relaciones, donde conceptos similares están cerca y conceptos diferentes se encuentran alejados.

Este proceso se realiza mediante operaciones de álgebra entre vectores.

Ya tenemos la relación entre palabras con conceptos similares, pero estaremos de acuerdo en que el contexto de la frase es determinante. ¿Cómo incluir la información del contexto en nuestra red neuronal?

✨ TAMBIÉN TE PUEDE INTERESAR
Los generadores de contenido con inteligencia artificial más populares del momento

Redes Neuronales Recurrentes

Para resolver este problema lo mejor que teníamos hasta hace unos años eran las Redes Neuronales Recurrentes.

En su modo habitual de funcionamiento se tomaba la primera palabra del texto introducido y lo pasaba por todas sus capas hasta obtener su vector resultado, el cual era asociado a la segunda palabra y juntos utilizados como entrada para esta, y así sucesivamente.

Este era un proceso lento, por lo que el tiempo era una limitante para entrenar un modelo gigante como GPT-3.

Además, contaba con otro problema aún más importante, el modelo perdía la relación entre palabras lejanas en la entrada, lo que resaltaba como una limitante notable.

Todo esto cambió con el surgimiento de los Transformers, que es la tecnología que permite la mayoría de los grandes avances que hemos tenido en inteligencia artificial en los últimos años.

Transformers

Para no entrar en conceptos demasiado técnicos vamos a definir Transformers como modelos de aprendizaje profundos en una arquitectura de red neuronal diseñados para manipular datos aprovechando el paralelismo.

Este concepto se traduce en la práctica en una mejora sustancial en los tiempos de procesamiento que hacen posible el entrenamiento de grandes modelos como GPT-3.

Con Transformers el orden en que se procesa la entrada no importa, se le añade la información posicional mediante operaciones matemáticas en el vector que representa cada palabra.

De este modo no es necesario esperar a que termine la ejecución del modelo con una palabra para pasar a la siguiente como en las redes recurrentes. Puede enviarse cada palabra de forma simultánea a ser procesada por las GPU que procesan el modelo.

Sí, GPT-3 basa su procesamiento en GPU (tarjetas gráficas).

Uso de GPU en tareas de procesamiento general

Las GPU fueron diseñadas para un propósito específico, el procesamiento de gráficos. En este sentido, los circuitos que lo integran son mucho más sencillos que los de los CPU, que al ser de propósito general requieren una complejidad superior.

Esta situación se traduce en que un CPU puede tener una cantidad de unidades de procesamiento mucho menor que una GPU.

Si unimos esta información a que actualmente es posible utilizar las unidades de procesamiento en las GPU para paralelizar algunas tareas específicas, nos encontramos con una situación muy favorable para el procesamiento en paralelo de altas prestaciones que requiere el entrenamiento de un modelo tan grande como GPT-3.

Por tanto, con una arquitectura Transformer, es posible tomar una frase, dividirla en tokens, y enviar cada uno a una unidad de procesamiento en la GPU para que sean procesadas de forma simultanea obteniendo mejoras exponenciales en los tiempos de respuesta y haciendo posible la creación de modelos gigantescos.

Limitaciones de GPT-3

Conociendo ya a grandes rasgos los principales conceptos técnicos de funcionamiento de modelos como GPT-3, estamos en condiciones de determinar cuáles pudieran ser sus principales limitaciones.

Alta demanda de hardware para entrenamiento y funcionamiento.

Seguramente imaginarás que para hacer funcionar una red neuronal con las características de GPT-3 se necesita una capacidad de cómputo importante, pero, ¿hasta qué punto?

GPT-3 está compuesto por 96 capas y 175 mil millones de parámetros.

Estos parámetros deben ser almacenados en memoria, así que si se utilizan variables con precisión de punto flotante de 16 bits por cada parámetro el resultado es nada menos que 350 GB de memoria en la GPU, y esto es un valor mínimo.

Hay varias estimaciones al respecto que van desde los 350 hasta 700 GB para correr el modelo.

Para entrenarlo es otra historia. GPT-3 fue entrenado con casi toda la información de internet, incluyendo Wikipedia y todos los libros públicos que se encuentran disponibles.

Imagina la cantidad de datos que tuvo que procesar este modelo y el desafío que planteaba el entrenamiento en un corto tiempo.

Esto se traduce en muy altas prestaciones de hardware con estimaciones de costos por encima de los 4.5 millones de USD para una sesión de entrenamiento según informe de lambdalabs.

Teniendo en cuenta que el modelo tiene mucho camino por delante para llegar a cumplir nuestras expectativas, la capacidad de cómputo disponible es uno de los retos que tendrán que vencer para seguir creciendo.

Contexto limitado a 2048 tokens

GPT-3 no puede prestar atención a toda la interacción que tiene con nosotros debido a los requerimientos de hardware que supondría.

En su lugar, mantendrá un contexto de 2048 tokens, por lo que puede perder el hilo de los puntos iniciales de una interacción y perderse por caminos alternativos sin poder retomar el rumbo original.

Este es un aspecto muy importante a tener en cuenta. Para sacarle todo el provecho posible a la herramienta debemos mantenernos haciendo pequeñas correcciones de rumbo cual si fuera el timón de un barco para llegar al destino deseado.

Lamentablemente esto no siempre es tan sencillo como pudiera parecer.

Falta de comprensión semántica

GPT-3 no tiene idea de lo que hablamos.

Y esta afirmación tiene todo el sentido del mundo teniendo en cuenta que nuestras palabras son convertidas en vectores numéricos, para el modelo no dejan de ser datos que aprende a organizar de acuerdo a probabilidades aprendidas durante el entrenamiento.

Es por esto que al interactuar con el modelo obtenemos resultados que, aunque son gramaticalmente correctos, escapan de toda lógica de acuerdo a nuestras normas sociales.

Debemos limitarnos a ver a GPT-3 como lo que es, un generador de texto gramaticalmente coherente, no le podemos exigir mucho más allá porque terminaremos decepcionados.

Sesgos

Este es uno de los aspectos que más ha escandalizado al mundo y a la vez es uno de los más difíciles de resolver. GPT-3 es un modelo muy susceptible a emitir comentarios racistas, denigrantes, machistas e inhumanos por naturaleza propia.

El problema nace de su concepción. No podemos olvidar que GPT-3 fue entrenado con la información disponible en internet que ha sido generada en distintas épocas y que hoy perdura. Mucha de esta información contiene la esencia de estos problemas, comentarios racistas, insultantes, machistas, etc.

Con esta información como entrada es natural que un modelo sin comprensión semántica y que representa conceptos con vectores numéricos genere contenido desagradable para nosotros.

No me detendré a ejemplificar este problema porque ha sido ampliamente difundido.

OpenAI ha trabajado fuertemente en este problema y se ha avanzado en este sentido, pero considero que aún falta mucho. Tómatelo con calma.

Pérdida de calidad de la información

Esta no es una limitación por el momento, pero si estos modelos triunfan como se espera en el futuro, sin duda lo será. Una de las bases que sustentan la generación de texto realista por estos modelos es la calidad de los valores de entrenamiento.

A los modelos de hoy en día le es relativamente fácil generar texto para simular a un humano porque toda su entrada de información proviene de internet y fue producida por humanos.

Cuando los modelos comiencen a generar artículos, código de programación, poemas o libros, toda esta información inundará internet muy rápidamente.

¿Cómo podrá distinguir en este caso una IA futura cual es la información generada por humanos para imitar sus patrones?

¿No acumulará errores el entrenamiento sucesivo de varias generaciones de IA sobre la base del texto generada por la anterior?

¿No se perderá la pureza de la información que tenemos hasta hoy en internet cuando se produzca la inundación de texto generado por estos modelos?

Este es uno de los principales retos que puede tener el NLP de cara al futuro.

✨ TAMBIÉN TE PUEDE INTERESAR
Las mejores tecnologías para el desarrollo de API REST

Conclusiones

GPT-3 y otros modelos de lenguaje de los que ya hemos hablado son, sin duda, un gran paso en nuestro camino en materia de procesamiento de lenguaje natural. Aunque tiene algunas limitaciones, representa un salto cualitativo memorable en cuanto a calidad y capacidad de generación de texto realista.

Lo importante no es ver a GPT-3 hoy como producto final, sino como una tendencia en evolución que representa un paso gigante en este campo. La cuestión no es qué puede hacer GPT-3 hoy, sino, si ha avanzado a este ritmo en tan poco tiempo, qué nos depara el futuro con tecnologías similares que ya no tengan las limitaciones que se exponen.

Con esta reflexión me despido por hoy, espero que te haya resultado interesante el artículo y te invito a que continúes con nosotros.

Quizás te interese conocer nuestro listado sobre las mejores herramientas gratis o freemiums de gestión de proyectos

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.