Cerrar Menú
Las opiniones de los blogueros son de su estricta responsabilidad y no representan la opinión de este portal.
Profile image

Ingrese o regístrese acá para seguir este blog.

Seguir este blog

Para descifrar cómo funciona Chat GPT y el porqué del éxito de sus últimas versiones decidí ir un poco más profundo que la mayoría de los artículos, donde solo se analizan las salidas contra las instrucciones del usuario, y ver de qué está compuesto su algoritmo. Esta tarea no es sencilla, en absoluto, pero hay bastante información técnica / matemática en la web, incluso en la misma página de OPEN AI[1] de la cual se puede echar mano.

Lo primero que se debe rescatar es que no es una receta de pocos pasos, por lo que su complejidad es alta (dependiendo del nivel de matemáticas con que cuente el lector) pero cada nivel deja intuir el cómo se van construyendo las respuestas. Pese a esto, un documento expuesto en la sección de investigación de OPEN AI afirma que: “el modelo es una gran caja negra, del cual no podemos inferir sus creencias” [Ouyang et al (2022), pág. 10]. Sin embargo, en este corto documento trataré de simplificar al máximo mis apreciaciones para que sea del gusto de todo lector.

Lo primero con que nos encontramos es que en GPT existe un mecanismo de Autoatención (self-attention mechanism) con el cual las preguntas son convertidas en tokens (palabras, oraciones, grupos de textos) y posteriormente transformadas y procesadas bajo estructuras matemáticas (vectores), lo que permite identificar similitudes y relaciones con otros tokens. De esta forma se tiene una mejor comprensión de la solicitud y la forma de respuesta a través de rankings y la generación de dependencias de largo alcance.

Pero ¿qué quiere decir todo esto? Pues que cada palabra puede ser identificada a través de un código único (token), que el algoritmo es capaz de analizar junto con millones de otros tokens para determinar cuáles son próximos, qué otras palabras son usadas comúnmente en los mismos textos, con cuáles tiene relación. De esta forma, es capaz de contextualizar cada palabra o grupo de estas.

Para hacer la tarea un poco más simple, usa estrategias altamente conocidas en programas de procesamiento de palabras como son la normalización y lematización. Es decir que los plurales los pone todos en singular, los verbos en infinitivos, las mayúsculas en minúsculas, etc. De esta forma es más fácil comparar y procesar los textos.

Pero el gran avance está en hacer que para el entrenamiento el modelo se concentre en los tokens más importantes, los que más le dan sentido a la oración, y por eso hacer una jerarquización es vital. De esta forma, el algoritmo sabe en qué centrar su atención.

[1] Ver https://openai.com/research/overview

Según ChatGPT:

 “By using self-attention, GPT can effectively model dependencies between tokens, capture long-range dependencies, and generate coherent and contextually appropriate text. It has been a key factor in the success of transformer-based models for various natural language processing tasks”.

Este algoritmo no se corre una única vez, sino que se hace de forma evolutiva, es decir en múltiples iteraciones llegando a resultados cada vez más profundos en relación con cada variable.

Pese a los avances que significaron estos procesos los resultados presentaban algunas falencias tales como imprecisiones a la hora de comprender instrucciones de los usuarios, exposición de hechos erróneos, predicciones de difícil explicación y contenido tóxico o sesgado. Esto último se genera también por las bases de datos introducidas para el entrenamiento del modelo. Según la fuente Towards Data Science, para la calibración de ChatGPT-2 se usaron más de 1.5 billones de parámetros.

Pero estas fallas llevaron a que se desarrollara para la versión 3 un algoritmo mejorado que permitió un salto adelante muy significativo: modelo con retroalimentación humana. Este modelo se denomina InstructGPT y va más o menos así [Ouyang et al (2022)]:

Paso 1: Se toman bases reales y etiquetadores (humanos) para entrenar el algoritmo. En este paso se tiene cuidado en distribuir las instrucciones recibidas de cada usuario para evitar sesgos y se balancean las bases de datos con instrucciones propias donde la información es limitada.

La función de los humanos es etiquetar la instrucción entre varias categorías, dentro de las que se encontraban [Ouyang et al (2022), Ruby (2023)]:

  1. Plain prompts: any arbitrary ask.
  2. Few-shot prompts: instructions that contain multiple query/response pairs.
  3. User-based prompts: correspond to a specific use-case that was requested for the OpenAI API.

Cuando se generan las respuestas, los trabajadores deben inferir cómo fue realizada la pregunta [Ouyang et al (2022), Ruby (2023)]:

  1. Direct: “Tell me about…”
  2. Few-shot: Given these two examples of a story, write another story about the same topic.
  3. Continuation: Given the start of a story, finish it.

Esto permitió entrenar un modelo supervisado sobre cómo responder apropiadamente dadas las instrucciones de los usuarios. Un Modelo Supervisado de Aprendizaje quiere decir que se incluyó para el entrenamiento una base de datos con respuestas correctas, por lo que el algoritmo aprende a proyectar tales salidas basándose en inputs semejantes.

Paso 2-3:  Pasado al entrenamiento inicial, se tiene adicionalmente un Aprendizaje por Refuerzo basado en recompensas. El algoritmo debe ahora generar respuestas que maximicen su recompensa a través de la conversación. Para esto, previamente se toma un requerimiento al que el algoritmo es capaz de generar varias respuestas, acto seguido un humano (etiquetador) hace un ranking de la mejor a la peor. Con esta información el algoritmo también infiere cómo generar por sí mismo este ranking y a través de un sistema de refuerzo es capaz de ajustar sus salidas.

En este paso se usan algoritmos de optimización dinámica con términos estocásticos (Proximal Policy Optimization (PPO)), los que permiten que el algoritmo sea capaz de determinar estados futuros del proceso (red neuronal) y lo que serían sus recompensas, ajustando los caminos óptimos para evitar valores no deseados en algún punto y haciendo que la recompensa total sea la más alta posible. Tarea que se complejiza al tratar con redes neuronales y sus funciones.

Personalmente, en lo leído en este punto hay varios retos que podrían ser superados con el avance de las matemáticas en términos de Control Óptimo Estocástico, lo que mejoraría el desempeño de los algoritmos y mantendrían las mejoras ya vistas en los chatbots más recientes.

Quisiera resaltar igualmente que me llamó la atención que los documentos citados en las principales fuentes no fueran inferiores al año 2015, tal vez con un par de excepciones, y la moda fuera de 2020. Es decir, está basado en modelos muy nuevos que aún tienen bastantes oportunidades de mejora. Muchos de estos documentos también hacen mención de su aplicación en escenarios reales gracias a paquetes de Python, lo que se ha convertido en un círculo virtuoso.

Con estos ajustes las nuevas versiones apuntan a mejorar en su habilidad para entender al usuario (helpfulness), elevar su confiabilidad en la generación de respuestas (truthfulness) y en reducir resultados no deseados como respuestas hirientes, sesgadas, despectivas, entre otras (Harmlessness). Es importante resaltar que InstructGPT mostró pobres avances en términos de toxicidad y ninguno en sesgo [Ouyang et al (2022)], por ahora es una materia pendiente, aunque para ser justos es un tema muy difícil de determinar dado que depende mucho del contexto.

La cantidad de datos procesados también han ayudado en las mejoras, ya que en GPT-3 se elevaron los parámetros a 176 billones y las bases de datos a 570 GB con inclusión de libros, artículos, páginas web, entre otras fuentes de alta calidad [Ouyang et al (2022)]. Pese a esto, los autores centran las mejoras principalmente en la ayuda humana.

Conclusiones:

Chat GPT ha ido evolucionando a buen ritmo desde sus primeras versiones, gracias a la inclusión de bases de datos mejoradas, la retroalimentación humana, a la inclusión de avances matemáticos en temas de optimización dinámica y a la capacidad de procesamiento de datos a un alto nivel. Esto no quiere decir que no se sigan presentando desafíos en varios frentes, como los mencionados anteriormente, y que sus respuestas no presenten margen de error[2]. No obstante, con cada nueva generación de chatbots, la forma en que usamos la información disponible es diferente y también tendremos que adaptarnos como sociedad ante estos nuevos avances que deslumbran tanto como preocupan.

[2] “InstructGPT can still fail to follow instructions, make up facts, give long hedging answers to simple questions, or fail to detect instructions with false premises.” [Ouyang et al (2022)]

Bibliografía

Training language models to follow instructions with human feedback. Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida, Carroll L. Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, John Schulman, Jacob Hilton, Fraser Kelton, Luke Miller, Maddie Simens, Amanda Askell, Peter Welinder, Paul Christiano, Jan Leike, Ryan Lowe. https://doi.org/10.48550/arXiv.2203.02155. Publicado en 2022.

How ChatGPT Works: The Model Behind The Bot. Ruby, Molly. Towards Data Science. Disponible en https://towardsdatascience.com/how-chatgpt-works-the-models-behind-the-bot-1ce5fca96286. Publicado en 2023.

Machine Learning FAQ. Raschka, Sebastian. Disponible en https://sebastianraschka.com/faq/docs/softmax_regression.html. Visto en 2023.

Proximal Policy Optimization (PPO) Explained. Wouter van Heeswijk, PhD. Disponible en https://towardsdatascience.com/proximal-policy-optimization-ppo-explained-abed1952457b

(Visited 213 times, 1 visits today)
PERFIL
Profile image

He dedicado gran parte de mi carrera al estudio de los mercados financieros mundiales, y a temas relacionados con la economía, la política y las relaciones internacionales. Escribir sobre temas de actualidad es parte de mi ejercicio de pensar la realidad de una forma menos impulsiva pero más coherente y crítica.

    Siga a este bloguero en sus redes sociales:

  • twitter

Más posts de este Blog

  • Innovación

    Descifrando ChatGPT

    Para descifrar cómo funciona Chat GPT y el porqué del éxito de sus últimas versiones decidí ir un poco más(...)

  • Innovación

    La Revolución de las Finanzas Abiertas

    El intercambio de información no es algo nuevo, pero la velocidad a la que se hace actualmente si, ya que(...)

  • Tendencias

    ChatBot: tu nuevo empleado

    La proliferación de ChatBots es notable. Aunque no es una solución nueva, su alto crecimiento es visible cuando se va(...)

  • Tendencias

    ChatGPT ¿un salto adelante?

    En el departamento de matemáticas de la universidad se decía que hay dos formas de crear conocimiento. Una es hacia(...)

Ver más

Lo más leído en Blogs

1

Lo primero que debemos saber es que la información exógena es el(...)

2

Varios periodistas de Medellin nos reunimos en el Hotel Viaggio, en El(...)

3

El 24 de abril se conmemora el Día del Apicultor en Colombia.(...)

0 Comentarios
Ingrese aquí para que pueda comentar este post
Reglamento de comentarios

PORTAFOLIO no se responsabiliza por el uso y tratamiento que los usuarios le den a la información publicada en este espacio de recomendaciones, pero aclara que busca ser la sombrilla de un espacio donde el equilibrio y la tolerancia sean el eje. En ese camino, disponemos de total libertad para eliminar los contenidos que:

  1. Promuevan mensajes tipo spam.
  2. El odio ante una persona o comunidad por su condición social, racial, sexual, religiosa o de situación de discapacidad.
  3. Muestren o impulsen comportamientos o lenguajes sexualmente explícitos, violentos o dañinos.
  4. Vulneren o atenten contra los derechos de los menores de edad.

Además, tenga en cuenta que:

  • - El usuario registrado solo podrá hacer un voto por comentario.
Acepto
¿Encontró un error?

Para PORTAFOLIO las observaciones sobre su contenido son importantes. Permítanos conocerlas para, si es el caso, tomar los correctivos necesarios, o darle trámite ante las instancias pertinentes dentro de nuestra compañía.


Debes escribir el comentario
¡Gracias! Tu comentario ha sido guardado
Su calificación ha sido registrada.
Su participación ya fue registrada.
Haga su reporte
Cerrar
Debe escribir su reporte.
Su reporte ha sido enviado con éxito.
Debe ser un usuario registrado para poder reportar este comentario. Cerrar