Volver a la página principal

¿Cómo funciona ChatGPT?

ChatGPT es un chatbot basado en un modelo de lenguaje de gran tamaño (GPT-3.5 o GPT-4). Bajo el capó, ChatGPT es una red neuronal preentrenada que ha sido entrenada con una impresionante cantidad de datos de texto disponibles públicamente en Internet.

Esta gran cantidad de datos permite al modelo aprender patrones, gramática, contexto e incluso algunos conocimientos de sentido común, lo que le permite generar respuestas significativas y coherentes a las consultas de los usuarios. ChatGPT tiene la capacidad única de entablar conversaciones interactivas y dinámicas con los usuarios, lo que lo convierte en una herramienta prometedora para una amplia gama de aplicaciones.

¿Qué son los modelos de lenguaje de gran tamaño?

Los modelos de lenguaje de gran tamaño (LLM) son algoritmos de IA que utilizan técnicas de aprendizaje profundo conocidas como procesamiento del lenguaje natural para leer, comprender, generar y predecir texto.

Cuando escribes una pregunta, el modelo no busca la respuesta en Internet, sino que te la da de memoria (aunque no tiene memoria). Genera una respuesta palabra por palabra, determinando cada una de las palabras siguientes en función de las probabilidades derivadas de los datos de texto con los que se ha entrenado y del texto que ha generado hasta el momento.

11.000 millones de parámetros: respuesta a preguntas, aritmética, comprensión del lenguaje

11.000 millones de parámetros: respuesta a preguntas, aritmética, comprensión del lenguaje

¿Cómo es posible? Bueno, ChatGPT no necesita buscar información en Internet, porque ya lo sabe todo (bueno, casi). Todo el conocimiento disponible en Internet se incorpora a ChatGPT a través de sus 175.000 millones de parámetros.

62.000 millones de parámetros: traducción, razonamiento de sentido común, compleción de códigos

62.000 millones de parámetros: traducción, razonamiento de sentido común, compleción de códigos

A medida que aumenta el número de parámetros del modelo, surgen en él nuevas capacidades que nadie diseñó intencionadamente.

540.000 millones de parámetros: cadenas de inferencia lógica, reconocimiento de patrones, comprensión lectora

540.000 millones de parámetros: cadenas de inferencia lógica, reconocimiento de patrones, comprensión lectora

Cómo se formó ChatGPT

ChatGPT se ha entrenado con cientos de miles de libros, artículos y diálogos:

  • WebText2 (una gran biblioteca de más de 45 terabytes de datos de texto)
  • Cornell Movie Dialogs Corpus (un conjunto de datos que contiene más de 200.000 conversaciones entre 10.000 personajes de guiones cinematográficos)
  • Ubuntu Dialogue Corpus (una colección de 1.000.000 de diálogos de varios turnos entre usuarios de Ubuntu y el equipo de soporte de la comunidad)
  • miles de millones de líneas de código de GitHub

En primer lugar, se permitió a GPT procesar todos los datos a los que tenía acceso sin ningún tipo de orientación humana, lo que le permitió captar de forma independiente las normas y conexiones que dictan el ámbito del texto (es lo que se denomina "aprendizaje no supervisado").

Después, para afinar el modelo lingüístico se aplicó una técnica llamada aprendizaje por refuerzo con retroalimentación humana (RLHF):

  • Los instructores humanos de IA mantuvieron conversaciones en las que interpretaban a ambas partes: el usuario y el asistente de IA. Tuvieron acceso a sugerencias escritas por el modelo para ayudarles a componer las respuestas. El modelo se entrenó mediante un ajuste fino supervisado para predecir el siguiente mensaje del asistente a partir del historial de diálogo.
  • Para crear un modelo de recompensa para el aprendizaje por refuerzo, se recopilaron datos de comparación. Los instructores de IA clasificaron varias respuestas del modelo según su calidad, teniendo en cuenta aspectos como si la respuesta tenía sentido y si era útil. Las respuestas seleccionadas se convirtieron en un conjunto de datos de diálogo con nuevos mensajes escritos por el modelo.
  • Se creó un modelo de recompensa utilizando una técnica llamada modelado de recompensa, en la que se entrenó un modelo para predecir la calidad de una respuesta basándose en los datos de comparación recogidos en el paso anterior.

Al final, ChatGPT ha aprendido a responder en cualquier situación, a dar respuestas precisas y pertinentes y a eludir temas potencialmente perjudiciales.

Arquitectura Transformer

El proceso de entrenamiento de ChatGPT consiste en predecir la siguiente palabra de una frase a partir de las palabras anteriores. Para lograrlo, se emplea una arquitectura Transformer (por cierto, T en ChatGPT significa Transformer), que se compone de capas de mecanismos de autoatención. La autoatención permite al modelo sopesar las distintas palabras de una frase en función de su importancia y relevancia para predecir con precisión la palabra siguiente.

Las redes neuronales recurrentes (RNN) más antiguas leen el texto de izquierda a derecha. Aunque esto funciona bien cuando las palabras relacionadas son adyacentes, se convierte en un reto cuando están en extremos opuestos de una frase.

Por eso, cuando una RNN trabajaba con un texto de una página, a mitad del tercer párrafo ya "olvidaba" lo que había al principio.

En cambio, los transformers son capaces de procesar simultáneamente cada palabra de una frase y comparar cada palabra con todas las demás. Esto les permite centrar su "atención" en las palabras más relevantes, independientemente de su posición dentro de la secuencia de entrada.

Tokenización

Es importante señalar que los transformers no trabajan con palabras individuales (no pueden leer como los humanos). En su lugar, el texto de entrada se divide en tokens individuales, incluyendo palabras, signos de puntuación y tokens especiales. Los tokens en ChatGPT son trozos de texto representados como vectores (números con dirección y posición).

La proximidad de los vectores de tokens en el espacio determina su nivel de asociación: cuanto más cerca están, más relacionados están. Además, la atención se codifica como un vector, lo que permite a las redes neuronales basadas en transformadores retener información crucial de las partes precedentes de un párrafo.

Cuando un usuario interactúa con ChatGPT, el modelo recibe como entrada el historial de la conversación, incluidas tanto las preguntas del usuario como las respuestas generadas por el modelo. La entrada se convierte en token y se introduce en la red neuronal. Cada token se asocia a una incrustación que representa su significado en el contexto de la conversación.

GPT-3 se ha entrenado con unos 500.000 millones de tokens, lo que permite a sus modelos lingüísticos asignar significados con mayor facilidad y predecir textos de seguimiento plausibles mediante su mapeo en el espacio vectorial. Muchas palabras corresponden a un único token, aunque las palabras más largas o complejas suelen dividirse en varios tokens. Por término medio, los tokens tienen una longitud aproximada de cuatro caracteres.

Durante la fase de inferencia, en la que el modelo genera respuestas, se utiliza un proceso conocido como autoregresión. Esto significa que el modelo predice una palabra cada vez, condicionado por el historial de la conversación y las palabras generadas anteriormente. Para garantizar que la respuesta generada sea coherente y pertinente, se utilizan técnicas como el muestreo top-p y el escalado de temperatura.

En resumen, el parámetro top-p proporciona al modelo un conjunto de opciones (tokens) entre las que elegir, mientras que la temperatura determina la probabilidad de elegir un determinado token. Cuando la temperatura se fija en 0, el modelo elegirá sólo los tokens más "populares" (palabras que se encuentran juntas con más frecuencia en los datos de texto con los que se entrenó ChatGPT):

Esto no siempre es bueno. Las temperaturas más altas hacen que los resultados sean más diversos:

Más información sobre los parámetros de ChatGPT: