Tabla de contenidos
Por Sergio Soage, Machine Learning Engineer en Aivo
Cuando iniciamos el proceso de planificación de esta serie de artículos, la idea inicial fue hacer una introducción a los fundamentos de Natural Language Processing. Luego, ir explicando las tecnologías más importantes, discutir los avances y mostrar lo que usamos en Aivo. Sin embargo, debido a los recientes avances en el campo, decidimos realizar un salto (momentáneamente) hacia el presente, en concreto a ChatGPT.
A continuación, explicamos de qué se trata esta tecnología, cómo fue evolucionando, y sus principales ventajas y limitaciones.
GPT: Una breve cronología de sus avances
¿Qué es ChatGPT? Para entenderlo, tenemos que ir hacia el inicio de la familia de modelos GPT. GPT significa “Generative Pretrained Transformer”. El paper original fue escrito en 2018 y generó un cambio muy importante, principalmente en el subcampo de transfer learning. Este modelo podía ser re-entrenado con relativamente pocos datos, y alcanzar resultados SotA (State of the Art) en múltiples benchmarks.
GPT-2 fue la siguiente evolución, lanzada en 2019. Dicho modelo usaba una arquitectura similar a la de su predecesor, pero con algunas modificaciones: Era considerablemente más grande, 10X parámetros, por lo que re entrenar el modelo pasaba a ser una tarea compleja por la infraestructura que requería. También, cambió la data con la que estaba entrenado, es decir “WebText” (data de la web, por ejemplo, Reddit).
Estos cambios generaron ciertas capacidades emergentes en el modelo: primero, la capacidad de generar texto “coherente”. Segundo, la capacidad de hacer “few-shot learning”, es decir, aprender sin re-entrenar el modelo, usando pocos ejemplos en tareas que el modelo nunca vio en su entrenamiento inicial. A nivel aplicativo, GPT-2 podía generar títulos de noticias muy realistas. También fue adoptado para generar imágenes (feedback loop entre NLP y Computer Vision), sin embargo, cuando intentó ser adaptado para crear herramientas conversacionales, las mismas fallaron.
Y esto nos lleva a GPT-3, lanzado en 2020 y con múltiples mejoras realizadas hasta 2022 (entre las que se encuentra ChatGPT). Nuevamente, la arquitectura no fue muy cambiada, pero sí cambió (otra vez) la cantidad de parámetros del modelo (de 1.5 billones a 175 billones), y también cambió el dataset. Agregaron muchísima más data de la Web, como por ejemplo, CommonCrawl, Wikipedia y WebText actualizado. Al igual que su predecesor, GPT-3 estableció nuevos SotA en múltiples benchmarks y mejoró considerablemente su capacidad de zero-shot learning. Al igual que todo Foundational Model (hasta ahora), mostró bias (religiosos, de género, etc) y se demostraron sus virtudes pero también sus defectos (en un próximo artículo nos centraremos más en este punto y en las características técnicas del modelo).
ChatGPT: una evolución constante
Toda esta introducción fue para hablar de ChatGPT, que vendría a ser una versión GPT-3.5. El modelo GPT-3 original fue entrenado con un objetivo simple, que es predecir la próxima palabra dado un corpus masivo de datos. Con este objetivo tan simple se observan ciertas capacidades emergentes, como razonamientos simples, programación, traducción y el ya mencionado few-shot learning. Sin embargo, esto no es suficiente para tareas más complejas: hay que “obligar” a GPT-3 a autocompletar texto proporcionando un feedback humano, es decir, curando ciertos ejemplos.
Para que GPT-3 pueda aprender (sin ser reentrenado), se le debe proveer ciertos samples y contexto via una técnica llamada “Prompt Engineering”. Esta técnica es un bug, no un feature, ya que está causado por la falta de alineamiento entre este objetivo de predecir la próxima palabra y el uso final que se le quiere dar a la aplicación.
Chat GPT y el modelo en el que está basado, Instruct GPT, se encargan de subsanar este defecto de una forma muy sofisticada, para poder arreglar este desalineamiento, los humanos deben estar involucrados para enseñarle a GPT y de esta forma GPT podrá generar preguntas mejores a medida que evoluciona.
Proceso de entrenamiento de ChatGPT
- Construir dataset de preguntas dado ciertos prompts y hacer fine tuning usando supervised learning. Este paso es simple, pero muy costoso.
- El segundo paso es el más interesante, ya que se le propone al modelo diferentes respuestas y lo que el feedback humano proporciona es un ranking de respuestas de más deseable a menos. Usando esta información, se puede entrenar un modelo que es “recompensado” y que capture las preferencias humanas, de forma de así poder reducir la falta de alineamiento.
- El paso 3 es tratar a GPT como una “policy” (término de Reinforcement Learning) y optimizarla usando RL contra la reward aprendida, se usa un algoritmo llamado PPO y de esta forma GPT está mejor alineado.
Ventajas y limitaciones de ChatGPT
Ahora que cubrimos cómo funciona Chat GPT, ¿que significa este modelo para el campo? ¿Significa que hemos resuelto AGI (Artificial General Intelligence)?
Para el campo es un gran avance, sin embargo al no estar disponibles los datos con los que está entrenado el modelo, no tener código para replicarlo, porque en definitiva es un producto comercial, no podemos analizar de forma 100% científica sus implicancias, si podemos realizar aproximaciones y luego de 3 semanas de hype y de estudio sobre los resultados que genera el modelo podemos encontrar grandes puntos a favor y grandes puntos en contra.
Resultados a favor:
- Produce escritos de alta calidad, esto puede ayudar a producir contenido más inteligente y “compelling”.
- Soporta instrucciones más complejas, por lo que puede realizar tareas de “razonamiento” más avanzadas.
- Puede generar contenidos de mayor contexto (longitud).
- Puede escalar muchas más tareas.
Resultados en contra:
- Falta de información sobre el dataset con el que está entrenado para entender los bias que puede tener.
- Sigue "alucinando".
- Tiende a escribir contenidos plausibles pero incorrectos con mucha seguridad.
- Solo puede ser usado vía endpoint de OpenAI por lo que uno es “esclavo” del producto.
- Modelo extremadamente costoso (OpenAI achica los costos para ganar usuarios).
Algunos ejemplos de las implicancias de producir outputs erróneos:
- StackOverflow prohibió el uso de ChatGPT para escribir respuestas
- Uno de los fundadores de OpenAI habló de los límites que tiene el modelo
Conclusión
Los grandes Foundational Models como GPT implican un avance exponencial al campo, pero todos estos avances deben analizarse profundamente.
Este análisis nos permite identificar en qué áreas fallan para poder mejorarlos en futuras iteraciones. Al ritmo con el que estamos observando estos avances no hay duda que nos espera un futuro muy prometedor pero también que va a requerir mucha responsabilidad de todos los involucrados en el campo.