Tiempo de lectura: 21 minutos 45”

Hace unos meses apareció en nuestras vidas: ChatGPT, una de las tecnologías disruptivas más importantes del momento.

Como un trueno inesperado en una tormenta de novedades, ha hecho que todo el mundo mire hacia ella, sectores tecnológicos, artistas, periodistas, arquitectos…Todos ellos, a nivel global, han visto en esta nueva IA un filón de negocio o un enemigo acérrimo contra el que combatir.  Si con Midjourney o Dall-e habían comenzado unos meses frenéticos de novedades y ejemplos impresionantes en cuanto a la generación de imágenes por inteligencia artificial, ChatGPT se ha convertido en “el chat”. Muestra por primera vez una herramienta conversacional que avecina una revolución posiblemente de mayor envergadura que la anterior Revolución Industrial.

¿Pero qué se esconde tras esta sencilla interfaz de un chat? Preguntémosle al propio ChatGPT:

Para entender cómo funciona por dentro ChatGPT, debemos comenzar con una introducción a los “Large Language Models”, pasando por el revolucionario mecanismo de self-attention que permitió entrenar a GPT-3 (anterior versión de ChatGPT). Por último, nos centraremos en el aprendizaje por refuerzo a partir de la retroalimentación humana, la nueva técnica que ha hecho excepcional a ChatGPT.

Large Language Models

ChatGPT es una extrapolación de una clase de modelos de procesamiento de lenguaje natural de aprendizaje automático conocida como Large Language Models (LLM). Los LLM se alimentan de grandes cantidades de datos de texto e infiere relaciones dentro de ellos. Estos modelos son conocidos desde hace muchos años, pero han explotado recientemente gracias al aumento de la capacidad computacional, así como las grandes cantidades de datos que se han generado en redes sociales o plataformas como la Wikipedia. Los LLM aumentan su capacidad a medida que aumenta el tamaño de sus conjuntos de datos de entrada y el espacio de parámetros.

El entrenamiento más básico de estos modelos de lenguaje, implica predecir la siguiente palabra en una secuencia de palabras.  Es decir, el entrenamiento consiste en, dada una palabra, poder inferir cuál es la siguiente para que la frase completa tenga sentido en el contexto. ChatGPT ha conseguido un gran avance en este sentido, dando incluso sensación de “comprensión humana”.  

Un ejemplo de este modelo de lenguaje sería el siguiente, dada la frase:

“María es …”

ell sistema tendría que deducir cuáles son los siguientes posibles tokens (palabras) para continuar la frase. Depende del entrenamiento realizado, el modelo respondería cosas tipo:

María es mi hermana

María es mi amiga

María es arquitecta

Etc.

Además de una predicción del siguiente token, ChatGPT utiliza también un modelo de lenguaje natural llamado MLM (masked language model). En este caso, el objetivo no es saber el siguiente token, sino qué token “falta”, por ejemplo:

Alfredo [masked] leer

El sistema deberá inferir diferentes posibilidades correctas para la palabra enmascarada (masked):

Alfredo ama leer

Alfredo odia leer

Alfredo disfruta al leer

Etc.

Aún así existen algunas limitaciones, muchas veces el modelo no puede distinguir o discernir cuál sería la mejor opción entre dos posibles.

Para poder avanzar frente a esta limitación, en 2017 el equipo de Google Brain introduce el concepto de “Transformers”. Estos rompen con esta limitación secuencial y procesan todos los datos de entrada de forma simultánea. Definen un nuevo concepto denominado “self-attention mechanism” que permite que el modelo pueda ir dando mayor relevancia a unas partes del texto que a otras, independientemente de la posición que ocupen. Esto es el germen de la revolución.

GPT y Self Attention

GPT significa Generative Pre-training Transformers (GPT). El primer modelo se lanzó en 2018 por la empresa OpenAI (GPT-1). Este modelo evolucionó a GPT-2 en 2019 y GPT-3 en 2020, hasta llegar al que ahora conocemos como ChatGPT en 2023.

En esta primera fase de introducción de los modelos basados en Transformers, se centró el esfuerzo en mejorar la eficiencia computacional para poder procesar mayor cantidad de datos con los que dar solución a un mayor rango de tareas y problemas.

De nuevo le preguntaremos a ChatGPT si nos puede ilustrar sobre las diferencias entre GPT-2 y GPT-3, y nos devuelve lo siguiente:

Como vemos en la tabla, el tamaño del modelo de GPT-3 es casi 200 veces el tamaño de GPT-2.

 

Problemas de GPT-3

Aun habiendo ganado una gran capacidad de proceso y relaciones, GPT-3 tenía una serie de problemas que lo alejaban de poder ser una herramienta disruptiva:

Sesgo: El modelo ha sido entrenado con grandes cantidades de datos de Internet, que pueden contener sesgos culturales, políticos o lingüísticos. Esto puede llevar a que el modelo reproduzca o incluso amplifique esos sesgos en su generación de texto.

Opacidad: Dado que el modelo tiene una enorme cantidad de parámetros y capas, puede ser difícil entender cómo funciona internamente y por qué toma ciertas decisiones. Esto puede dificultar la depuración o mejora del modelo.

Razonamiento limitado: Aunque GPT-3 es capaz de generar texto coherente y natural, su capacidad para razonar o entender el contexto de una situación sigue siendo limitada. En otras palabras, no puede comprender el mundo del mismo modo que lo hace un ser humano.

Datos de entrenamiento insuficientes: Aunque el modelo ha sido entrenado con una enorme cantidad de datos, todavía hay algunos aspectos del lenguaje natural que no se han cubierto lo suficiente. Esto puede limitar la precisión del modelo en ciertas tareas o situaciones.

Y ahora sí…ChatGPT

ChatGPT nace como respuesta a esas limitaciones y supone un salto tanto cualitativo como cuantitativo, en la comprensión del texto analizado y en la calidad de sus respuestas marcando un antes y un después en la inteligencia artificial.

En 2022, openAI publica un artículo científico, “ Training language models to follow instructions with human feedback” (https://arxiv.org/pdf/2203.02155.pdf), donde explican que al introducir feedback proporcionado por humanos en el proceso de entrenamiento, la calidad de las respuestas mejora. Los autores del paper presentan un marco de trabajo que permite a los usuarios enviar instrucciones en lenguaje natural y proporcionar retroalimentación para refinar el modelo de lenguaje a medida que aprende.

El marco de trabajo propuesto se basa en un proceso interactivo en el que un usuario envía una instrucción en lenguaje natural, el modelo de lenguaje la procesa y finalmente, genera una respuesta. Si la respuesta es incorrecta, el usuario puede proporcionar retroalimentación en forma de corrección o aclaración. El modelo de lenguaje utiliza esta retroalimentación para ajustar sus parámetros y mejorar su capacidad para seguir instrucciones precisas.

Supervised Fine Tuning”

En el contexto de ChatGPT, el Supervised Fine Tuning (SFT) se utiliza para adaptar el modelo a una tarea específica, en este caso, la generación de respuestas en diálogos conversacionales. El proceso de afinamiento supervisado implica entrenar el modelo con ejemplos específicos de preguntas y respuestas. De esta manera, mejora su capacidad para generar respuestas relevantes y coherentes a preguntas específicas.

 

Proceso de entrenamiento utilizado por OpenAI para chatGPT. Imagen extraída del artículo “Training language models to follow instructions with human feedback”.

Tras el refinamiento inicial por humanos, el sistema necesita aún 2 capas más de proceso para obtener los resultados actuales.

“Reward Model” (modelo de recompensa)

El resultado obtenido en el SFT se denomina “Reward Model” . Una red neuronal que evalúa la calidad de la respuesta generada por el modelo de lenguaje SFT. Recibe como entrada la respuesta generada por el modelo de lenguaje, así como la entrada de la conversación (la pregunta o el estímulo inicial). El modelo de recompensa se entrena utilizando una función de recompensa definida por los humanos para evaluar la calidad de la respuesta generada. Esta función de recompensa puede estar basada en diferentes criterios, como la relevancia, la coherencia y la naturalidad de la respuesta generada.

Después de que se genere una respuesta, el modelo de recompensa evalúa su calidad y proporciona una recompensa al modelo de lenguaje:

– Si la respuesta es considerada de alta calidad por el modelo de recompensa, se proporciona una recompensa positiva al modelo de lenguaje, lo que indica que la respuesta es buena y debe ser repetida en el futuro.

– Si la respuesta es considerada de baja calidad, se proporciona una recompensa negativa, lo que indica que el modelo de lenguaje debe evitar generar una respuesta similar en el futuro.

Reinforcement Learning Model” (Modelo de Aprendizaje por Refuerzo)

Es el  tercer y último paso en la “factoría ChatGPT”. Se trata de un enfoque de aprendizaje automático en el que un agente aprende a tomar decisiones a través de la interacción con su entorno. El objetivo del agente es maximizar una recompensa (o “reward”) que se le proporciona por el entorno en función de las decisiones que toma.

El Reinforcement Learning se utiliza en una variedad de aplicaciones, como en robótica, juegos y control de procesos. En el contexto de ChatGPT de OpenAI, el enfoque de Reinforcement Learning se utiliza para guiar la generación de respuestas y proporciona una recompensa al modelo de lenguaje. De esta manera, puede ajustar su comportamiento en función de las recompensas que recibe, mejorando su capacidad para generar respuestas de alta calidad en diálogos conversacionales.

Como vemos, con estas técnicas podemos intuir que el propio uso de ChatGPT por los humanos, día a día, va mejorando el sistema, ya que el propio usuario va evaluando la calidad de las respuestas que recibe desde la IA.

 

Los prompts y ChatGPT

Los  “prompts” hacen referencia a la forma de interactuar con ChatGPT. Resolver un problema, mejorar sus respuestas aprendiendo o realizar cualquier trabajo que le pidamos,  depende de cómo esté escrito ese Prompt.

De hecho, los usuarios que están utilizando ya ChatGPT para realizar tareas laborales, notan un incremento de su productividad. Cuando el usuario/ingeniero de prompts sabe hacia dónde quiere ir y es capaz de enfocar la búsqueda y la respuesta de ChatGPT, los resultados son increíbles.

Además, desde herramientas y lenguajes de programación como Python, se podrán usar los prompts a través de las API para utilizar ChatGPT y construir nuestras propias herramientas basadas en ChatGPT.

Dentro de muy poco tiempo, la figura del “Prompter” o “Ingeniero de prompts” tendrá un gran empuje en el mundo laboral y este tipo de IAs traerán consigo la aparición de nuevas figuras laborales en el sector tecnológico.

¿Cómo escribir buenos prompts? Echa un vistazo a esta guía para principiantes https://fka.gumroad.com/l/art-of-chatgpt-prompting y visita el repositorio que está creando la comunidad con prompts ya elaborados para taréas concretas https://prompts.chat/

 

El futuro está aquí

El salto que ha supuesto esta tecnología ha hecho temblar los pilares del modelo productivo actual. Se está redefiniendo la forma en la que nos vamos a relacionar con la tecnología, de cómo va a cambiar el modo de trabajar en muchos sectores o cómo vamos a relacionarnos con las máquinas, incluso en un breve espacio de tiempo, cómo vamos a utilizar los buscadores o cómo vamos a aprender.

Microsoft ha incorporado en Bing esta semana pasada la tecnología de ChatGPT, generando una disrupción en el mundo de los buscadores (de momento está sólo accesible como Beta para testers), Google está siendo obligado para mirar hacia esta nueva tecnología lo antes posible si no quiere perder su supremacía. Nunca antes se habían visto movimientos tan rápidos, o una avalancha de novedades tecnológicas semana tras semana, día tras día desde las grandes tecnológicas.

ChatGPT ha provocado un terremoto. El futuro ya no es algo lejano, el futuro está aquí.

Nota: Este artículo ha sido escrito en colaboración humano-ChatGPT ¿eres capaz de discernir entre uno u otro? 🤔