The QPath Blog


ChatGPT-4: primera aproximación a su uso, alcances y limitaciones en algoritmia cuántica

Autores

Ezequiel Murina
aQuantum Algorithms Team Leader

José Ignacio García 
aQuantum Algorithms Specialist

Martín Hurtado Heredia
aQuantum Algorithms Specialist

En noviembre de 2022 se lanzó ChatGPT. Este producto ofrece una interfaz conversacional dotada de una inteligencia artificial que busca potenciar la experiencia de usuario en cuanto a la interpretación de la consulta, la precisión en respuestas y la calidad de la información ofrecida. Las prestaciones que brinda invitan al debate sobre su utilidad como herramienta de trabajo en tareas técnicas referidas al desarrollo de código de programación o, incluso, en tareas analíticas que tengan que ver con algoritmia. En este post se da una breve descripción sobre qué es ChatGPT y una primera aproximación sobre las posibilidades de su uso, alcances y limitaciones en el área de algoritmia cuántica de la versión 4 del software (ChatGPT-4) utilizada para las pruebas que dan lugar a este documento.

La compañía OpenAI es la que desarrolla ChatGPT. La empresa fue creada en 2015 con la ambición de ofrecer productos de software en el área inteligencia artificial (IA) que aporten grandes beneficios a la humanidad, según la autodefinición publicada en su web corporativa[1]. Los productos que OpenAI desarrolla son:

·       GPT: modelo de lenguaje basado en el Deep Learning (“aprendizaje profundo”) y con el que trabajan sus demás productos;

·       ChatGPT: interfaz conversacional que se describirá más abajo en este artículo;

·       DALL-E: generador de imágenes digitales a partir de una descripción en forma de texto que ingresa el usuario como input;

·       OpenAI Five: software entrenado como jugador de un videojuego de estrategia online llamado Dota 2;

·       OpenAI Codex: una IA especializada en desarrollo y debugging de código de programación.

 

¿Qué es ChatGPT?

El término ChatGPT es un acrónimo de Chat Generative Pre-Trained Transformer. Hace referencia a una interfaz conversacional o chatbot, es decir, un software que da respuestas automáticas a preguntas que formula un usuario en el contexto de un diálogo o chat.

En la figura 1 se muestra el dashboard del producto que, como se puede ver, tiene un diseño es minimalista. En este caso la imagen corresponde a la versión para a dispositivos móviles.  A la derecha se encuentra la ventana en donde tiene lugar el chat: el usuario ingresa su pregunta, el algoritmo la interpreta y ofrece una respuesta. A la izquierda hay una ventana con botones para gestionar historial de chats, log-outs, suscripciones y otras consultas.

Figura 1: Dashboard de ChatGPT

         Desde la perspectiva técnica podemos definir ChatGPT como una red neuronal con arquitectura de Deep Learning expuesta a un entrenamiento. Éste consta de 3 etapas:

1.     un aprendizaje supervisado en el que se alimenta al modelo con un conjunto de preguntas/respuestas redactadas por un usuario;

2.     un aprendizaje reforzado en el que se dota al modelo con un conjunto de preguntas y respuestas dadas por el algoritmo y que han sido previamente catalogadas en función de la calidad de la respuesta.

3.     un aprendizaje reforzado en el que se usan las clasificaciones del paso anterior para crear modelos de recompensa en los que el ajuste se refina.

 Los datos que se proporcionan en el entrenamiento de ChatGPT son masivos. Sirven para realizar un ajuste de los parámetros de la red neuronal, es decir, los pesos y sesgos estadísticos a partir de los cuales se instancian los valores de las neuronas organizadas en diferentes capas. En la figura 2 se muestra un esquema general de la parte atómica de la red. Los círculos indican las neuronas ordenadas en capas (layers). Las líneas rectas indican las neuronas que participan en la instanciación del valor de la neurona de la siguiente capa. Con pnij y bni se indican los pesos y bias de la n-ésima layer, respectivamente.


figura_2

Figura 2:  Red neuronal similar al kernel de la red de Deep Learning del algoritmo de ChatGPT.

El orden de magnitud de la cantidad de parámetros de ChatGPT-4 que conforman la red es de unos 100 mil millones[2], lo que convierte al algoritmo en uno de los más grandes en número de parámetros dentro del área de modelos de lenguaje. Los pesos estadísticos se ajustan en base a palabras claves o tokens extraídos de documentos que conforman los datasets del entrenamiento. El tamaño de estos datasets, medido en número de tokens, así como la fuente de procedencia de éstos, se muestran en la figura 3. Common Crawl y Webtext son repositorios de textos de internet comúnmente usados para entrenar a modelos de lenguaje. Book1 y Books2 son grandes repositorios de libros disponibles online (adaptación de la tabla 2.2 de la referencia [2]). La fuente más masiva es Common Crawl, un repositorio creado por AWS que almacena textos provenientes de páginas webs. 

Figura 3: Tamaño de datasets en número de tokens y proporción de participación en el entrenamiento de la red de Deep Learning de ChatGPT.

 

ChatGPT-4 como herramienta para el desarrollo de algoritmos cuánticos

El lanzamiento de ChatGPT-4 el 14 de marzo de 2023 ha generado gran repercusión y debate en la opinión pública referidos a su uso en áreas tan diversas como educación[3], salud[4], finanzas[5], arte[6], comercio electrónico[7], etc. Asimismo, como habitualmente sucede con las nuevas tecnologías, ha sufrido prohibiciones preventivas en el ámbito de algunas empresas e instituciones ante el vacío legal sobre derechos de autor y calidad de la información ofrecida[8] [9], e incluso críticas de índole ecologista con respecto al consumo eficiente de energía o la huella de carbono que produciría[10].

Hasta donde hemos comprobado, aún no hay un debate exhaustivo relacionado con el uso de ChatGPT en la computación cuántica. Con el objetivo de contribuir al mismo, a continuación compartimos nuestras reflexiones sobre los resultados que hemos obtenido al emplear ChatGPT-4 en el área de algoritmia cuántica. El trabajo realizado fue llevado a cabo utilizando la versión Vista previa de investigación gratuita, a la que se puede acceder a través de la página web de OpenAI https://chat.openai.com/chat.

Como se ha indicado antes, el algoritmo de ChatGPT es entrenado con datos masivos extraídos de páginas webs o repositorios online. Por lo tanto, la calidad de la respuesta en un área específica del conocimiento está determinada por la riqueza y volumen de la fuente de datos referida a ese área. Dado que esto último es determinante en la calidad de las respuestas a recibir sobre las cuestiones abordadas en el chat, como se menciona en el mensaje mostrado en la figura 4, OpenAI advierte en la página de inicio del chat con total claridad sobre las limitaciones de ChatGPT en estos momentos, haciendo especial énfasis en lo referente a conocimiento sobre eventos posteriores al 2021.

Figura 4:  avisos iniciales para el usuario que se muestran al ingresar a la web de ChatGPT.

Más allá de la novedad relativa de la computación cuántica en los medios (algo que no es así en la literatura científica), hemos constatado que, dado que la computación cuántica es un hot-topic del cual se puede encontrar mucho material reciente en Internet, ChatGPT-4 tiene la capacidad de brindar información sobre esta área y, en particular, sobre algoritmia cuántica.  A continuación, se muestra en qué medida es factible extender esa capacidad meramente informativa a las posibilidades de generar código de programación que implemente algoritmos cuánticos. Las pruebas se realizaron con dos de los enfoques tecnológicos cuánticos más difundidos: annealing cuántico o programación adiabática y circuitos de puertas cuánticas.   

 

 

ChatGPT-4 para implementación de algoritmia basada en annealing

 Lo primero que se detecta al consultar a ChatGPT-4 sobre algoritmia de annealing es que la implementación a
nivel de código, por defecto, se hace con la importación del SDK OCEAN del fabricante D-Wave. No obstante, si se solicita explícitamente, ChatGPT-4 puede brindar una implementación empleando la tecnología de otros fabricantes, como por ejemplo Fujitsu, para lo cual es necesaria la importación de la librería pyDA de su plataforma Digital Annealer, como se muestra en la figura 5.

figura_5

Figura 5:  Consulta por un código de annealing con la tecnología de software del fabricante Fujitsu.

Para ilustrar los fallos y aciertos de ChatGPT-4 a la hora de implementar un algoritmo de annealing, abordamos el Problema de la Mochila (The Knapsack Problem), un clásico de los problemas de optimización.

Al hacer la consulta “te propongo otro problema, el knapsack problem, que de conversaciones anteriores ya he visto que lo conoces. ¿Puedes plantear un código de Python que resuelva este problema mediante annealing?”, a lo ChatGPT-4 responde con el código que se muestra en la figura 6.

En general, se observa que los códigos devueltos como respuesta tienen una estructura global correcta en cuanto a sintaxis, respeto del estilo de Python, cometarios explicativos y modularización de las distintas etapas del algoritmo implementado. Sin embargo, también se detectan fallos a nivel lógico-matemático que describiremos en detalle más abajo.

En cuanto a los aciertos del código generado al implementar el Problema de la Mochila indicados en la figura 6, vale mencionar los siguientes:

·       Creación de la data input para un solver de annealing: genera la estructura general de la matriz QUBO (Quadratic Unconstrained Binary Optimization) empleando un diccionario de Python como data type coherente con las buenas prácticas;

·       Importación de todos los módulos y creación y gestión correcta de objetos necesarios para ejecutar el código en los solvers del fabricante indicado.

Por el contrario, también se detectan algunos fallos que se indican detalladamente en la figura 6:

·       A veces hay mala interpretación del problema de optimización por el que se consulta;

·       Errores en la matemática del algoritmo implementado, tanto en las restricciones como en la codificación de las variables matemáticas del problema de optimización;

·       Inclusión de términos incorrectos en la matriz QUBO;

·       A veces hay errores en las referencias a índices de algunos arrays, fundamentalmente en el bloque de código que muestra al usuario la solución del problema.

Figura 6: Código generado por chatGPT para resolver el Problema de la Mochila mediante el método de annealing.

La verificación de la implementación del Problema de la Mochila la realizamos con QuantumPath®, la plataforma para el desarrollo de algoritmos y soluciones de software cuántico que usamos en nuestro trabajo con la cual, como se puede observar, la solución puede implementarse de una manera directa, simple y escalable. En la figura 7 se muestra cómo se ingresan los parámetros inputs, mientras que en la figura 8 se ve el hamiltoniano a minimizar.   

Figura 7: Q Asset Compositor for Annealing. Instancia de definición de parámetros para el Problema de la Mochila

 

figure_8

Figura 8: Q Asset Compositor for Annealing. Instancia de definición del hamiltoniano para el Problema de la Mochila.

 

 

Pruebas de ChatGPT para implementación de algoritmia basada en puertas o circuitos cuánticos.

       En cuanto a los fallos y aciertos de ChatGPT-4 cuando se lo expone a la implementación de algoritmia basada en puertas cuánticas, el panorama es similar a lo que ocurre con la tecnología de annealing. No obstante, ChatGPT-4 manifiesta un mejor desempeño probablemente porque el material disponible online es más vasto y la programación cuántica en la literatura es mayoritariamente abordada desde el enfoque tecnológico de las puertas cuánticas.

En este caso los mejores resultados se obtienen cuando se trata con primitivas (conjunto de puertas que ejecutan un cómputo específico) ya estandarizadas como es el caso de la Transformada de Fourier. Los resultados empeoran a medida que incrementamos la complejidad de la algoritmia o se trata con algoritmo más específicos y de los cuales hay información limitada en la literatura.

Lo primero que se detecta desde el punto de vista técnico al consultar a ChatGPT-4 por algoritmia de puertas es que la implementación a nivel de código se hace por defecto con la importación del SDK Qiskit del fabricante IBM. No obstante, si se solicita explícitamente, como se muestra en la figura 9, puede brindar una implementación empleando la tecnología de otros fabricantes como PennyLane de Xanadu y Forest de Riggeti.

Figura 9: Consulta por la implementación de un algoritmo de puertas cuánticas con un SDK diferente a Qiskit

Otro de los experimentos realizados fue evaluar ChatGPT-4 en la implementación de los algoritmos de Grover y de Bernstein-Vazirani. Es plausible esperar un mejor desempeño con el primero de ellos, ya que hay bastante más información accesible online que sobre el algoritmo de Grover que sobre el segundo.    

Al consultar, “¿puedes implementar el algoritmo Grover con tres cúbits y un estado marcado?”, el código devuelto como respuesta se muestra en la figura 10. La implementación que hace ChatGPT-4 es aceptable en términos generales: el código está bien estructurado y la codificación de los operadores cuánticos es correcta.

Sin embargo, el código devuelto por ChatGPT-4 falla en la estimación del número de iteraciones para lograr una buena precisión en la solución. El impacto de este fallo podrá ser mayor o menor en función del caso concreto que se esté tratando. Efectúa una única iteración, cuando debería realizar 2 según la fórmula analítica de estimación del número iteraciones[11]. Consultando explícitamente la fórmula, si bien la enuncia correctamente, da como salida un código con las iteraciones suficientes (2 en este caso) sólo en la sección de circuito que codifica al operador difusor y no en la parte del circuito que codifica al marcador u oráculo del algoritmo. Lo correcto sería que haya el mismo número de iteraciones en ambas partes. En la figura 10 se muestra el código analizado.

 Figura 10: Fallas (indicaciones en rojo) y aciertos (indicaciones en verde) del código generado por ChatGPT para implementar el algoritmo de Grover con un estado marcado.

En la figura 11 se muestra la verificación de la implementación con QuantumPath®, en la que el algoritmo de Grover puede implementarse de una manera directa, simple y escalable.

Figura 11: Q Asset Compositor for Quantum Circuit. Instancia de definición del circuito cuántico que implementa el algoritmo de Grover.

El siguiente caso que mostrar es la implementación del algoritmo de Bernstein-Vazirani. Éste permite conocer un string binario que forma parte de la definición de una función desconocida. En la figura 12 se muestra el código generado por ChatGPT-4, que implementa el algoritmo para el caso de un string ‘011’. Los fallos matemáticos del código conducen a un resultado erróneo en el que no aparece el string buscado sino los siguientes: ‘001’ y ‘000’. 

Figura 12: Fallas (indicaciones en rojo) y aciertos (indicaciones en verde) del código generado por ChatGPT para implementar el algoritmo de Bernstein-Vazirani para el string ‘011’.

 En la figura 13 se muestra la verificación realizada de la implementación del algoritmo de Bernstein-Vazirani con QuantumPath® 

Figura 13: Q Asset Compositor for Quantum Circuit. Instancia de definición del circuito cuántico que implementa el algoritmo de Bernstein-Vazirani 

 

Conclusiones

Realizadas las experimentaciones antes compartidas la primera pregunta que debemos responder es: ¿tiene ChatGPT-4 la capacidad de implementar a nivel de código algoritmia cuántica de calidad? De acuerdo con lo antes mostrado, utilizando la versión actual, no.

Pensamos así porque, por un lado, es difícil en algoritmia en general, y más aún en algoritmia cuántica, desacoplar la maquinaria conceptual para efectuar un cómputo del código de programación que materializa la implementación. Por sólo mencionar un ejemplo, se indicó más arriba los fallos que comete ChatGPT-4 en la estimación del número de iteraciones para el algoritmo de Grover, pero al operador difusor y al oráculo los codifica bien en secuencias de puertas. Por otro lado, la implementación ofrecida por ChatGPT-4 es sensible a la información con la que se entrenó y, por lo tanto, a cuán documentado de forma online esté el algoritmo en cuestión.

Otra pregunta válida para la reflexión sobre los experimentos realizados es: ¿sirve ChatGPT-4 como herramienta técnica de soporte para la implementación de algoritmia cuántica? De acuerdo a los ejercicios realizado con la versión actual creemos que para casos muy simples sí, es decir, podría valer para escenarios de algoritmos bien documentados, con amplia literatura de acceso online y de baja complejidad conceptual (algoritmos de pocas etapas, con número de variables matemáticas bajo, sin necesidad de estimaciones en cuanto a número de iteraciones o magnitud de hiperparámetros).

En resumen, basados en los experimentos que hemos realizados, algunos de los cuales hemos compartido en este post, consideramos que ChatGPT-4, en estos momentos, no es una herramienta adecuada para la implementación de algoritmos que resuelvan problemas de la industria o el mundo real, en donde la dimensionalidad escala y la documentación es probablemente escasa debido a que se trata de soluciones ad-hoc para clientes específicos. No obstante, las limitaciones del producto en su versión actual, muchas de las cuales consideramos transitorias dado el estado inicial de entregamiento del modelo sobre la algoritmia cuántica, el potencial detectado para automatizar algunas tareas o etapas de desarrollo de algoritmos cuánticos es realmente prometedor. 

Teniendo presente lo complejo que es desarrollar algoritmos cuánticos a medida (y que estas tareas suelen tener un elevado nivel de confidencialidad, e incluso de secreto industrial), vislumbramos un largo y complejo proceso de entrenamiento de este tipo de redes neuronales para que los servicios de este tipo sean capaces de ofrecer algoritmia cuántica específica de calidad para cada actividad o negocio. De hecho, en nuestra opinión, el salto cualitativo en la explotación de estas redes neuronales para abordar con éxito los complejos y particulares procesos de la vida real estará vinculado a su tratamiento con la inteligencia artificial cuántica. Si a todo esto añadimos que la aplicación práctica de la algoritmia debe integrarse en soluciones de software que hagan posible que el software cuántico esté realmente listo para industrial, todo nos hace pensar que la inteligencia humana cuántica tiene una excelente proyección en esta carrera tecnológica de fondo.

Por todo ello, estaremos atentos a su evolución, seguiremos experimentando y, en consecuencia, compartiendo los avances positivos de ChatGPT para el desarrollo de algoritmia cuántica.

Referencias

[1] https://openai.com/about (última visita marzo 2023)

[2] Language Models are Few-Shot Learners

[3] https://blog.linclearning.com/es/chat-gpt-y-el-futuro-de-la-educacion (lúltima visita marzo 2023)

[4] https://www.infobae.com/tecno/2023/02/12/esta-herramienta-usa-chat-gpt-para-dar-ayuda-psicologica/ (última visita marzo 2023)

[5] https://citywire.com/es/news/chatgpt-el-sabelotodo-tambi%C3%A9n-de-las-finanzas-les-tiende-la-mano-a-los-asesores-financieros/a2406841 (última visita marzo 2023)

[6] https://medium.com/@tonylab_net/revolutionizing-ai-art-with-chat-gpt-4s-advanced-conversational-capabilities-c11bf10caeef (última visita marzo 2023)

[7] https://ecommerce-news.es/el-chatgpt-y-su-revolucion-en-los-negocios/ (última visita marzo 2023)

[8] H. Holden Thorp (2023). ChatGPT is fun, but not an author. Science, Journal Article. VOL 379 ISSUE 6630, PG – 313-313. https://doi.org/10.1126/science.adg7879

[9] https://meta.stackoverflow.com/questions/421831/temporary-policy-chatgpt-is-banned (última visita marzo 2023)

[10] https://towardsdatascience.com/the-carbon-footprint-of-chatgpt-66932314627d (última visita marzo 2023)

[11] Introduction to Quantum Computing, Kaye, Lafflame, Mosca, Oxford University Press (2007), pp163.7