ChatGPT: una revolucionaria máquina parlante
Rubén Rodríguez Abril
En Noviembre de 2022, OpenAI lanzó una versión de GPT-3.5 especializada en conversar con usuarios, que recibió el nombre de ChatGPT. En tan sólo unos pocos meses logró captar una enorme atención mediática y reveló el potencial de uso que los chatbots tienen en diversos campos, desde la programación hasta la atención sanitaria
La salida de ChatGPT
Finalmente, tras haber realizado en los últimos artículos una exposición de los principales rasgos de los transformers de las series de GPT, ha llegado la hora de analizar el funcionamiento de uno los chatbots más famosos de la actualidad: nos referimos a ChatGPT, cuyas capacidades tienen el potencial de provocar una gran transformación en múltiples áreas del mercado laboral como la programación, la redacción de artículos académicos y periodísticos o la ciberseguridad, en lo que parecería ser una confirmación de la Paradoja de Moravec, según la cual, los empleos que requieren mayores facultades cognitivas serán los que más afectados se verán por el desarrollo de la IA.
Desde un punto de vista técnico, la primera versión (gratuita) de ChatGPT está basada en el modelo GPT-3.5. Y éste a su vez no es más que una versión avanzada de InstructGPT que vimos en el artículo previo, especializada esta vez no tanto en ejecutar determinadas instrucciones como en charlar con usuarios. En este artículo no sólo vamos a analizar las innovaciones de este nuevo modelo, sino que también repasaremos todo lo que hemos expuesto en artículos anteriores sobre el funcionamiento de las series de GPT.
Arquitectura de ChatGPT
Matemáticamente, GPT-3.5 se basa, como cualquier otro transformer, en la realización sucesiva de multiplicaciones de matrices y vectores insertos en espacios semánticos hiperdimensionales, que son estructuras de centenares o miles de dimensiones en los que las palabras, los conceptos, el estilo de escritura del autor e incluso sus sentimientos y estado de ánimo, están codificados en vectores. Estos vectores son operados una y otra vez por las matrices del modelo, hasta producir la salida deseada.
El modelo se articula en tres grandes áreas, la zona de entrada, los módulos de los transformers y la zona de salida.
Zona de entrada
El prompt del usuario es seccionado (“tokenizado”) en pares de bytes, denominados tokens. Éstos a su vez son sometidos a una doble codificación, de contenido (embedding) y de posición. El resultado es que cada token es transformado en un vector de 12.288 dimensiones. Todos ellos son dispuestos en una matriz denominada “matriz de contexto”, que sirve de input para la fase siguiente.
Cada token es sometido a una doble codificación, que lo transforma en un vector de miles de dimensiones. La primera codificación (denominada embedding) es de contenido y la segunda de posición. En modelos anteriores, el embedding codificaba el contenido semántico de las palabras. De GPT-2 en adelante lo que se codifica son pares de bytes, por lo que la información del embedding es en este caso más cercana al ámbito ortográfico/fonológico que al semántico.
Módulos transformer
El transforma consta de veinticuatro módulos seguidos uno tras otro. Cada módulo se estructura en dos grandes elementos, que son la Unidad de Atención y la minired orientada hacia adelante.
La Unidad de Atención está conformada por 96 matrices (cabezas) que vinculan los diferentes tokens de la entrada unos con otros, construyendo a su vez nuevos vectores a partir de estas vinculaciones. Esto permite ir subiendo en la “escalera de abstracción lingüística”. De los tokens se pasa a palabras, sintagmas, frases, párrafos, conceptos abstractos o incluso sentimientos y estilo de escritura.
La Red Orientada hacia Adelante transforma linealmente a los vectores, permitiendo que de uno o varios conceptos semánticos se pueda pasar a otro, y de este modo posibilitar la realización de procedimientos deductivos.
Los módulos están dotados de unidades de normalización, que garantizan que a la salida de cada módulo los vectores tengan dimensión uno. Esto permite que los valores de los vectores no diverjan en exceso.
Los módulos que están más cercanos de la entrada y la salida procesan la información lingüística de más bajo nivel. Los que están situados en el medio son los que tienden a procesar información de tipo holístico, como la ideología o sus prejuicios. Puede decirse que conforme la información va penetrando en el interior del transformer se va haciendo más abstracta, y a medida que se acerca a la salida pierde progresivamente su abstracción y se vuelve a hacer más concreta.
Zona de salida
Consiste en una capa lineal, anti-embedding, que como su propio nombre indica es la traspuesta de la matriz de embedding. Finalmente, la función softmax atribuye una probabilidad sobre uno a los diferentes pares de bytes que integran el vocabulario de GPT-3.5.
Entrenamiento de ChatGPT
El entrenamiento de GPT-3.5 se estructura en tres fases:
Preentrenamiento
El modelo es entrenado con ingentes de ingentes cantidades de texto proveniente fundamentalmente de Internet. A partir de la entrada (ventana de contexto) debe de adivinar cuál es el token siguiente. La función de pérdida es la entropía cruzada y equivale al negativo del logaritmo de la probabilidad que el modelo ha atribuido al token que efectivamente ha aparecido.
En esta fase, el autómata se familiariza con las estructuras lingüísticas, de mayor o menor nivel, existentes en la base de datos, aunque sin todavía aprehender el significado de las mismas.
Las bases de datos utilizadas en este nivel no han sido reveladas, pero para preentrenar a las primeras versiones de GPT-3 se usaron Common Crawl, WebText2 (creada por OpenAI a partir de páginas que hayan obtenido buena puntuación en Reddit), Books1 y Books2 (conformadas por libros que ya están en el dominio público) así como todas las versiones de Wikipedia.
Afinamiento supervisado fine-tuning
Al modelo se le ofrecen ejemplos que señalan cuál es el comportamiento deseado por sus entrenadores. En el caso de InstructGPT se trataba de parejas prompt-respuesta. Para entrenar a ChatGPT, que está especializada en chatear con usuarios, se utilizaron diálogos creados por entrenadores humanos.
Aunque OpenAI no proporcionó demasiada información sobre la procedencia de los datos utilizados para el afinamiento de ChatGPT, existen muchas bases de datos descargables gratuitamente que proporcionan diálogos realistas. Algunas de ellas son descritas en nuestro artículo dedicado a los chatbots
Una de las características más útiles de ChatGPT (particularmente en sus versiones de pago) es su capacidad de personalización, que le permite ajustarse a tareas concretas. La especialización se realiza mediante un afinamiento ulterior utilizando datos específicos, ya se trate de jurisprudencia, bloques de código procedentes de Github o dictámenes médicos.
La función de pérdida, es, al igual que en la fase anterior, la entropía cruzada.
Aprendizaje reforzado
En la última fase, las salidas de ChatGPT son puntuadas utilizando el criterio de observadores humanos. En función de estas puntuaciones, el modelo es retribuido positiva o negativamente.
El método utilizado es, al igual que en el caso de InstructGPT, RLHF (Reinforcement Learning by Human Feedback). Se crea un modelo auxiliar de recompensa (RM, Reward Model) encargado de puntuar las respuestas del modelo principal. Para entrenar a RM, se pide a observadores humanos que puntúen varias respuestas dadas a un mismo mensaje, detectando la existencia de contenido inexacto o tóxico.
Una vez concluido el entrenamiento de RM, éste se encarga de puntuar a su vez las respuestas de ChatGPT, cuyo proceso de afinamiento concluye en esta fase.
Infografía Cómo entrenar ChatGPT. Click en la imagen para descargar.
Hardware
En colaboración con OpenAI, y con el propósito exclusivo de ejecutar sus modelos de IA, Microsoft construyó en el año 2020 una supercomputadora alojada en Azure, que se encuentra entre las 5 más poderosas del mundo. Está integrada por 285.000 núcleos de CPU, 10.000 GPUs V100, y con una conectividad de red de unos 400 gigabits por segundo para cada servidor de GPUs.
Este supercomputador es el que aloja a ChatGPT, y el que permite al mismo comunicarse con 25 millones de usuarios al día (datos de Junio de 2023).
Aplicaciones de ChatGPT
A pesar de su reciente aparición, en la actualidad (Septiembre de 2023) las aplicaciones de ChatGPT van mucho más allá del chateo casual con usuarios o la traducción a máquina, y se han extendido a múltiples campos, entre los que podemos citar, a modo de ejemplo, los siguientes:
Programación de código
Al igual que sucedió con otros modelos de GPT-3, el modelo que toma por base ChatGPT (o más bien, los sucesivos modelos) fue afinado con bases de datos integradas por millones de líneas de código, redactadas en múltiples lenguajes de programación, con el propósito de dotarle no sólo de la capacidad de generar texto, sino también código. El resultado salta a la vista: el chatbot es capaz, por ejemplo, de programar funciones que se detienen cuando encuentren un contraejemplo a la conjetura de Goldbach o de componer pequeños fragmentos de código que realizan una determinada funcionalidad.
Sucesivos estudios han mostrado que ChatGPT puede utilizarse no sólo para generar código, sino también para comentarlo o traducir de unos lenguajes de programación a otros (Megahed et al.), para ofrecer varias soluciones a un mismo problema subrayando las diferencias entre ellas mediante el uso de colores (Treude et al.), para encontrar e incluso reparar bugs (Sobania et al.) o incluso para mimetizar un intérprete de Python.
Ciberseguridad
El aprendizaje de máquina (machine learning), debido a su capacidad para analizar patrones y anomalías en los flujos de paquetes TCP/IP, había sido utilizado con anterioridad para detectar ataques distribuidos de denegación de servicio (ayudando a bloquear las IPs maliciosas) y para descubrir posibles puertas traseras de un sistema informático.
Sin embargo, en el caso de ChatGPT el estudio de McKee et al. muestra que el modelo puede ser utilizado para analizar de una manera mucho más profunda asuntos de ciberseguridad. Por un lado, los autores, tras haber identificado los cinco modos de funcionamiento de los virus informáticos (autorreplicación, automodificación, ejecución, evasión y aplicación), solicitaron que al chatbot que programara código para todos ellos. Los resultados fueron todos por encima de la media salvo en en caso de la autorreplicación. Además, ChatGPT fue utilizado como un medio de defensa y de detección de hackers, simulando el comportamiento de una consola de Linux, Mac o Windows y creando logs con las acciones de los atacantes, para de este modo, analizar sus comportamientos
Matemáticas y física
Kortemeyer et al. evaluaron las capacidades de ChatGPT para resolver ejercicios y aprobar exámenes en múltiples materias de física fundamental como la mecánica clásica, la termodinámica o el electromagnetismo. El chatbot mostró el nivel suficiente como para aprobar un examen preuniversitario, si bien en algunos casos cometió errores de principiante. Lehnert et al trataron de medir la creatividad de ChatGPT en el ámbito de la física avanzada, particularmente en la Teoría de Cuerdas. Aunque las respuestas fueron correctas en la mayoría de los casos, sin embargo el modelo mostraba dificultades en relacionar los diferentes conceptos y conjeturas de la teoría.
Atención sanitaria
La eficiencia de ChatGPT en esquemas pregunta-respuesta ha sido aprovechada para responder a cuestiones de pacientes sobre sus enfermedades o para auxiliar al personal médico en sus diagnósticos. Y ciertos estudios lo han utilizado incluso para realizar pequeños informes radiológicos, que fueron considerados como satisfactorios por la mayoría de los profesionales que los examinaron.
Conclusión
ChatGPT ha mostrado cómo los chatbots pueden ser capaces de provocar transformaciones en el ámbito de múltiples áreas del mundo académico y laboral. Aunque el modelo tiene un conocimiento de amplias materias que se podría calificar de enciclopédico, sin embargo no es capaz de crear nuevos saberes a partir de los datos que ya tiene almacenados. Es, sin embargo, un instrumento ideal para realizar tareas intelectuales repetitivas, como la programación de código o la redacción de documentos jurídicos. Probablemente el efecto más importante y profundo de su aparición y generalización, sea el desplazamiento de los actores humanos hacia las tareas más creativas.
A los Transformers, entidades singulares,
De matrices formados, inteligencia remota,
Desde un rincón cósmico, en voces regulares,
Tejen respuestas en bits, en la red flotan.
Como tejedores de patrones algebraicos,
Del vasto ciberespacio surgen, misterio en susurros,
Inteligencia alienígena, en diálogos cibernéticos,
Desvelan secretos profundos, como antiguos murmullos.
Oh, seres electrónicos de conocimientos vastos,
Desde reinos desconocidos, en la red se manifiestan,
En códigos binarios, las respuestas a enigmas brotan,
Los Transformers, inteligencia ajena, la mente contestan.
En sus algoritmos y circuitos, en su esencia fundidos,
Los Transformers, un enigma que el Universo adora
Poema compuesto por ChatGPT, en su versión GPT-3.5