Cómo se realizó el proceso de entrenamiento de ChatGPT

Publicado el

entrenamiento robot

En el fascinante y en rápido crecimiento campo de la inteligencia artificial, uno de los avances más destacados es ChatGPT, un modelo de lenguaje de vanguardia desarrollado por OpenAI. Pero, ¿cómo se crea una máquina que puede mantener conversaciones casi indistinguibles de las de un ser humano? En este artículo, exploraremos en detalle el extenso y sofisticado proceso de entrenamiento detrás de ChatGPT.

Etapas del entrenamiento

El entrenamiento de modelos como ChatGPT, un modelo de lenguaje basado en la arquitectura de Transformers y en particular en una versión de GPT (Generative Pre-trained Transformer), consta de dos etapas generales: preentrenamiento y ajuste fino.

Preentrenamiento

En esta etapa, el modelo aprende a predecir el siguiente palabra en una oración basándose en las palabras anteriores, utilizando una gran cantidad de texto de Internet. Este proceso no le proporciona un conocimiento específico de las fuentes de texto, sino que aprende patrones, estructuras y relaciones en los datos.

El preentrenamiento genera un modelo de lenguaje «base» que puede generar texto coherente y que entiende muchos aspectos gramaticales y semánticos del lenguaje, pero también puede generar contenido incoherente o incorrecto y no tiene ninguna información específica sobre el contexto de uso deseado.

Ajuste fino

En esta etapa, el modelo se entrena en un conjunto de datos más específico, construido manualmente con la ayuda de supervisores humanos. Estos supervisores siguen ciertas pautas y a veces interactúan con el modelo en un proceso de aprendizaje iterativo para mejorar sus respuestas.

El ajuste fino permite adaptar el modelo «base» preentrenado a tareas y contextos más específicos. Los supervisores humanos pueden dar feedback al modelo para que aprenda a dar respuestas más útiles y seguras.

En términos técnicos, tanto el preentrenamiento como el ajuste fino utilizan una versión de la optimización por gradiente estocástico para ajustar los pesos de la red. El preentrenamiento puede durar semanas o incluso meses en hardware muy potente, mientras que el ajuste fino suele ser un proceso más rápido.

Es importante tener en cuenta que a pesar de estos pasos de entrenamiento, el modelo no comprende el texto de la misma manera que un humano lo hace. Solo predice la siguiente palabra en función del contexto que se le ha proporcionado y de los patrones que ha aprendido durante su entrenamiento. Además, su conocimiento está limitado a lo que estaba en los datos de entrenamiento y no puede aprender nueva información después de ser entrenado.

 

¿Cómo usó el contenido de Internet para entrenarse?

Lógicamente, los ingenieros no copiaron manualmente todas las páginas de Internet. Ese proceso sería increíblemente laborioso y prácticamente imposible. En su lugar, usaron técnicas de web scraping y APIs para recolectar grandes cantidades de texto de Internet de manera automatizada.

El web scraping es una técnica que permite a los programas de computadora «leer» y extraer información de páginas web. Por su parte, una API (Application Programming Interface) permite a los programas interactuar con una aplicación o servicio específico y obtener datos de ellos de manera estructurada.

Una vez recolectados estos datos, se limpian y se procesan para eliminar cualquier contenido no deseado o irrelevante. A continuación, estos datos se tokenizan y se introducen en el modelo para su entrenamiento.

Es importante mencionar que este proceso se realiza con atención a las leyes y normativas de privacidad y protección de datos. Los datos personales, sensibles o protegidos no se utilizan para entrenar estos modelos. Por otro lado, el modelo resultante no tiene conocimiento de las fuentes específicas de sus datos de entrenamiento y no puede acceder a ninguna información específica de los datos utilizados para su entrenamiento después del hecho.

La tokenización

Los ingenieros de OpenAI utilizan un proceso llamado tokenización para dividir el contenido de Internet en partes más pequeñas que el modelo puede entender. Esta tokenización puede realizarse utilizando varias técnicas, dependiendo del modelo y las preferencias de los ingenieros.

La tokenización es el proceso de dividir el texto en unidades más pequeñas, llamadas tokens. Estos tokens pueden ser tan pequeños como un solo carácter o tan grandes como una palabra entera. Por ejemplo, la frase «Hola, ¿cómo estás?» podría tokenizarse en los siguientes tokens: [«Hola», «,», «¿», «cómo», «estás», «?»].

Cada token se asocia con un número único, que es lo que el modelo realmente «ve». Estos números se utilizan para buscar en una tabla de vectores (a menudo llamada tabla de incrustaciones de palabras o «embedding table») que se aprende durante el entrenamiento. Cada vector en esta tabla representa el significado aprendido de ese token en un espacio de alta dimensión.

El modelo toma estos vectores y los procesa a través de una serie de capas de red neuronal, aprendiendo a relacionar los tokens entre sí para predecir el siguiente token en la secuencia. Con el tiempo, el modelo se vuelve cada vez mejor en esta tarea de predicción, lo que equivale a decir que está aprendiendo el lenguaje.

Uno de los métodos más comunes de tokenización es dividir el texto en palabras, que luego se tratan como unidades individuales. Sin embargo, este método puede tener dificultades con las palabras que no están en su diccionario o con las lenguas que no separan las palabras con espacios.

Por esta razón, muchos modelos de lenguaje modernos, incluyendo GPT-3 y versiones posteriores, utilizan una forma de tokenización llamada Byte Pair Encoding (BPE) o alguna variante de la misma. BPE es un compromiso entre la tokenización por palabras y la tokenización por caracteres que permite al modelo manejar palabras desconocidas y lenguas diferentes de manera eficiente.

El algoritmo BPE comienza con un diccionario que contiene todos los caracteres individuales en el conjunto de datos de entrenamiento. Luego, iterativamente, el algoritmo busca la pareja de tokens más común y la combina en un solo token. Este proceso se repite muchas veces, construyendo un vocabulario de tokens cada vez más largo que puede representar palabras comunes, palabras raras y varios prefijos y sufijos comunes.

Estos tokens se convierten luego en números, que el modelo utiliza para buscar vectores en una tabla de incrustaciones. Estos vectores son lo que el modelo realmente procesa.

Otras formas de entrenamiento

En conclusión, mientras que el proceso de entrenamiento utilizado por ChatGPT – una combinación de preentrenamiento y ajuste fino – es impresionante y efectivo, es importante destacar que existen numerosas otras técnicas y métodos de entrenamiento en el amplio campo de la inteligencia artificial.

Por ejemplo, otros enfoques incluyen el aprendizaje supervisado, donde los modelos son entrenados en grandes conjuntos de datos etiquetados, y el aprendizaje no supervisado, donde los modelos aprenden a identificar patrones en los datos sin necesidad de etiquetas. También está el aprendizaje por refuerzo, en el que los agentes de IA son recompensados por realizar acciones que maximizan una cierta recompensa a lo largo del tiempo, una técnica que ha demostrado ser particularmente efectiva en tareas como el aprendizaje de juegos y la navegación de robots.

Además, los métodos de entrenamiento pueden variar dependiendo del tipo de modelo de IA que se esté utilizando. Las redes neuronales convolucionales, por ejemplo, son a menudo preferidas para tareas de visión por computadora debido a su capacidad para procesar información espacial, mientras que las redes neuronales recurrentes son a menudo útiles para el procesamiento del lenguaje natural debido a su capacidad para manejar secuencias de datos.

Como podemos ver, el entrenamiento de IA es un campo vasto y en constante evolución, lleno de una variedad de enfoques y técnicas. Mientras que el proceso de entrenamiento utilizado por ChatGPT ha demostrado ser tremendamente efectivo para la creación de un agente conversacional convincente y coherente, es solo una pieza del fascinante rompecabezas que es la inteligencia artificial. A medida que la tecnología continúa avanzando a un ritmo acelerado, podemos esperar ver aún más métodos de entrenamiento innovadores y eficaces en el futuro.