Explorando el intérprete de código ChatGPT de OpenAI Un análisis en profundidad de sus capacidades

Análisis del intérprete ChatGPT de OpenAI

Los avances de OpenAI en el Procesamiento del Lenguaje Natural (NLP, por sus siglas en inglés) se destacan por el surgimiento de los Modelos de Lenguaje Grande (LLMs), que sustentan productos utilizados por millones de personas, incluyendo el asistente de codificación GitHub Copilot y el motor de búsqueda Bing. Estos modelos, a través de su capacidad única para memorizar y amalgamar información, han establecido referentes sin precedentes en tareas como la generación de código y texto.

Comprendiendo el Intérprete de Código de ChatGPT

Para entender la importancia del Intérprete de Código de ChatGPT, es esencial comprender qué es y cómo se construyó.

En esencia, el Intérprete de Código de ChatGPT aprovecha las capacidades de ChatGPT, pero introduce una mayor habilidad para entender, interpretar e incluso generar código en una variedad de lenguajes de programación. Esta característica transforma a ChatGPT de un generador de texto en una herramienta invaluable para desarrolladores, que ayuda en la comprensión de código, la depuración e incluso la generación de código.

Entrenamiento de GPT para la Codificación: El Enfoque de Codex

Tanto GitHub Copilot como el Intérprete de Código de ChatGPT utilizan el modelo Codex desarrollado por OpenAI.

Codex, un modelo de lenguaje GPT especializado, está diseñado para tener habilidades competentes de escritura de código en Python. Entrenado en código de origen público de GitHub, Codex muestra su potencial al impulsar características en GitHub Copilot. Cuando se evalúa su capacidad para sintetizar programas a partir de docstrings, una medida de corrección funcional, Codex supera tanto a GPT-3 como a GPT-J.

Una observación sorprendente es que el muestreo repetido mejora la competencia de Codex. Cuando se utilizan hasta 100 muestras por problema, la tasa de éxito del modelo aumenta al 70.2%. Esta eficiencia sugiere la posibilidad de usar una clasificación heurística para seleccionar muestras de código precisas, sin necesidad de una evaluación completa para cada una.

Para evaluar sus capacidades, se encargó al modelo que creara funciones de Python independientes basadas únicamente en docstrings. La precisión del código generado se evaluó utilizando pruebas unitarias. En un conjunto de datos que comprende 164 problemas de programación originales, que incluyen comprensión del lenguaje, algoritmos y pruebas básicas de matemáticas, Codex con 12 mil millones de parámetros resolvió el 28.8% de ellos en un solo intento.

Datos de Entrenamiento para el Modelo Codex: https://arxiv.org/abs/2107.03374

A través del ajuste fino de funciones independientes implementadas correctamente, se mejoró aún más la eficiencia del modelo, lo que resultó en que Codex-S resolviera el 37.7% de los desafíos en el primer intento. Sin embargo, en el ámbito práctico de la programación, es común utilizar un enfoque de prueba y error. Imitando este escenario del mundo real, el modelo Codex-S, cuando se le dan 100 oportunidades, abordó con éxito el 77.5% de los desafíos.

Los modelos generativos como ChatGPT que producen código generalmente se evalúan comparando las muestras generadas con una solución de referencia. Esta comparación puede ser exacta o utilizar una medida de similitud como el puntaje BLEU. Sin embargo, estas métricas basadas en coincidencias a menudo no capturan los matices de la codificación. Una crítica clave del BLEU es su ineficacia para capturar las características semánticas del código.

En lugar de depender únicamente de la coincidencia, se ha propuesto una medida más relevante: la corrección funcional. Esto significa que el código producido por el modelo debe aprobar un conjunto dado de pruebas unitarias. La idea está alineada con las prácticas de codificación estándar, ya que los desarrolladores suelen utilizar pruebas unitarias para evaluar la eficacia y precisión de su código.

Esta métrica evalúa no solo la precisión, sino también la utilidad funcional del código generado.

La métrica [email protected] se introduce como una medida de corrección funcional. Básicamente, esto significa que si una de las “k” muestras de código generadas pasa las pruebas unitarias, se considera que el problema está resuelto. Sin embargo, en lugar de utilizar esto en su forma directa, se utiliza un estimador imparcial para calcular [email protected] y evitar una alta varianza.

Para evaluar las capacidades de código de ChatGPT, se utilizó el conjunto de datos HumanEval. Este conjunto de datos consiste en problemas de Python escritos a mano, cada uno acompañado de pruebas unitarias.

https://github.com/openai/code-align-evals-data/blob/main/human_eval

Dado los riesgos asociados con la ejecución de código desconocido o no confiable, se diseñó un entorno de sandbox para probar el código generado de forma segura. Este entorno utilizaba gVisor para emular recursos y crear una barrera entre el sistema host y el código en ejecución. De esta manera, incluso si el modelo produce código malicioso, permanece contenido y no puede dañar al host ni a la red.

Usando el Interprete de Código de ChatGPT

El ChatGPT de OpenAI ha experimentado numerosas evoluciones, destacándose el Interprete de Código como una característica revolucionaria en el modelo GPT-4. A diferencia de las interfaces de chat tradicionales, el Interprete de Código permite a los usuarios sumergirse más en tareas computacionales, fusionando sin problemas las líneas entre las conversaciones humano-AI y los procesos computacionales.

En su núcleo, el Interprete de Código es similar a tener una computadora integrada dentro del chatbot. Esta característica dinámica ofrece a los usuarios espacio de disco temporal para cargar una gran variedad de formatos de archivo que van desde tipos comunes como TXT, PDF y JPEG hasta otros más especializados como CPP, PY y SQLite. Esta amplitud de soporte amplifica su versatilidad en diversas tareas, ya sea procesamiento de documentos o manipulación de imágenes.

Operando dentro de un marco sólido y seguro, el Interprete de Código está equipado con más de 300 bibliotecas preinstaladas. Este entorno de sandbox garantiza la seguridad mientras proporciona una potencia computacional sustancial. Curiosamente, cuando se le asigna una tarea, crea un script de Python en tiempo real para ejecutar la solicitud del usuario. Por ejemplo, convertir un PDF basado en imágenes a un formato searchable utilizando OCR; todo lo que un usuario necesita hacer es cargar el documento y ChatGPT se encarga del resto.

Un punto de intriga ha sido el límite de tamaño de archivo para las cargas. Si bien aún no se han anunciado especificaciones definitivas, los experimentos de los usuarios sugieren que el sistema puede procesar eficazmente archivos considerablemente más grandes que 100MB. Independientemente del tamaño, es crucial tener en cuenta que estos archivos son transitorios y se descartan una vez que concluye la sesión de chat.

La brillantez del Interprete de Código no solo radica en su destreza técnica, sino en su accesibilidad. OpenAI ofrece esta función a los suscriptores de ChatGPT Plus, que incluye el modelo GPT-4. Por lo tanto, esta herramienta transformadora no solo es para la élite tecnológica, sino que gradualmente se está volviendo accesible a un público más amplio.

La distinción entre el modelo ChatGPT estándar y el Interprete de Código radica en sus paradigmas de interacción. Mientras que el primero genera principalmente respuestas textuales, el último comprende y ejecuta código, ofreciendo resultados directos. Esto no solo lo convierte en un activo valioso para profesionales de la tecnología, sino que también capacita a aquellos sin conocimientos de programación para realizar tareas computacionales complejas.

Las capacidades del Interprete de Código de ChatGPT pueden revolucionar varios aspectos del desarrollo de software y la ciencia de datos:

  • Generación Automática de Código: Tanto para aplicaciones de software como para scripts de análisis de datos, dado una descripción de alto nivel, el sistema puede producir estructuras de plantilla o fragmentos de código intrincados, acelerando los procesos de desarrollo y análisis de datos.
  • Revisiones de Código y Validación de Datos: Herramientas impulsadas por IA como ChatGPT pueden ayudar a mejorar la calidad y seguridad de las bases de código de software. Además, en el ámbito de la ciencia de datos, dichas herramientas pueden ser fundamentales para revisar y validar scripts de procesamiento y transformación de datos, asegurando precisión y eficiencia.
  • Asistencia en el Análisis de Datos: Para los científicos de datos, el Interprete de Código de ChatGPT puede ayudar en la generación de código para la exploración preliminar de datos, visualización e incluso pruebas estadísticas básicas, facilitando así el flujo de trabajo de análisis de datos.

Si estás interesado en conocer más sobre las complejidades de ChatGPT y la ingeniería de instrucciones, Unite AI ofrece un desglose completo en ‘ChatGPT: Ingeniería de Instrucciones Avanzada’.

Configuración del Interprete de Código de ChatGPT

La integración del Interprete de Código permite que la plataforma interprete las consultas de los usuarios, las ejecute como código Python y muestre los resultados en un formato de chat interactivo. Para acceder a esta función, los usuarios pueden navegar hasta la configuración de ChatGPT, explorar la sección de características beta y activar el Interprete de Código.

Lo que lo diferencia es su mecanismo transparente. A medida que los usuarios solicitan una tarea, la plataforma revela cada paso del viaje de procesamiento, ofreciendo claridad sobre cómo se interpretan y ejecutan los comandos. Es importante destacar que, por motivos de privacidad y seguridad, el Interprete de Código funciona sin ninguna conectividad a Internet.

Explorando los Beneficios del Interprete de Código de ChatGPT

Visualización y Análisis de Datos

ChatGPT va más allá del alcance de los gráficos tradicionales, ofreciendo representaciones gráficas convencionales e innovadoras. Esto asegura que los usuarios puedan ver sus datos en formatos que brinden las perspectivas más significativas.

Sin embargo, no se trata solo de visualizar datos sin procesar. El modelo ChatGPT es hábil en el procesamiento y refinamiento de datos. Aunque poderoso, los usuarios deben tener precaución.

Los analistas financieros encontrarán especialmente útil la capacidad del Interprete de Código para analizar y visualizar las tasas de acciones. A través de una integración fluida, los usuarios pueden cargar conjuntos de datos y visualizarlos en varios formatos. La importancia de esta función es evidente cuando las personas pueden realizar análisis de datos complejos.

El siguiente video demuestra cómo el interprete de código de ChatGPT creó un análisis completo de las acciones de TSLA.

Aspectos destacados:

  • Las acciones de Tesla han enfrentado volatilidad pero también han demostrado resistencia con períodos de crecimiento.
  • Volúmenes de negociación elevados en días específicos indican un interés significativo del mercado o reacciones a eventos clave.
  • El rendimiento negativo hasta la fecha (YTD) sugiere que los inversores deben analizar tanto los factores internos de la empresa como las condiciones del mercado externo al considerar inversiones futuras.

Implementación de Visión por Computadora y OCR

La detección facial, una función esencial en visión por computadora, se abordó con una técnica clásica: el clasificador de cascada de Haar de OpenCV.

La imagen a continuación muestra la utilización del clasificador de cascada de Haar clásico.

El proceso de extracción de texto de imágenes, conocido como reconocimiento óptico de caracteres (OCR), se logró de manera fluida utilizando Tesseract, y el texto posteriormente se estructuró por GPT-4 para mejorar la comprensibilidad.

En el siguiente video, vea cómo Tesseract (OCR) extrae texto de una imagen de certificado.

El Interprete de Código sobresale en el ámbito de la manipulación de video, audio e imágenes. Con comandos sencillos, los usuarios pueden realizar ediciones detalladas, como convertir GIF en MP4 con mejoras específicas. Simplemente cargue su archivo, ingrese las modificaciones deseadas y observe la magia suceder.

Librería Externa de Python dentro de su Interprete de Código ChatGPT

El Interprete de Código ChatGPT es una plataforma de programación dinámica equipada con un amplio conjunto de librerías de Python. Estas abarcan desde visualización de datos con Seaborn hasta aprendizaje automático avanzado con Torch. Pero es más que un conjunto de herramientas estáticas.

Inspirado por esta página de Chatgpt de Korakot Chaovavanich.

Comenzando con la última versión de nltk, subimos un archivo .whl al Interprete. Luego instruimos a ChatGPT a localizar el directorio de site-packages adecuado analizando la ubicación de un paquete existente. El siguiente paso consistió en desempaquetar el archivo wheel en un lugar temporal y mover los archivos al directorio de site-packages identificado. Sin embargo, encontramos un obstáculo.

Buscando una solución alternativa, preguntamos: “Asegúrese de que NLTK se instale en el entorno de Python y sea accesible después de la instalación”.

ChatGPT respondió proporcionando una solución. Sugería agregar el directorio temporal a sys.path, permitiendo que Python identifique y extraiga módulos del paquete nltk desempaquetado dentro de esa ubicación. Esta táctica funcionó de maravilla, lo que llevó a la instalación exitosa de NLTK.

A través del uso de archivos .whl, la instalación mostró una combinación de ingenio y adaptabilidad. El Interprete de Código ChatGPT, a pesar de los desafíos iniciales, manifestó su versatilidad y compromiso de satisfacer las necesidades de los programadores, asegurando una experiencia de codificación refinada tanto para novatos como para veteranos.

En una fascinante demostración de las capacidades del interprete, un tweet reciente de @DominikPeters destacó una demostración única. Peters solicitó a GPT-4 que generara un cuestionario sobre los arrondissements de París, y el modelo entregó un sitio web funcional. El cuestionario está disponible para una experiencia práctica en dominik-peters.de/gpt-arrondissement-quiz/.

Pedí a GPT-4 que me codificara un cuestionario sobre los arrondissements de París, y funcionó perfectamente. https://t.co/Uhv7tPLspq pic.twitter.com/3agFZllEEQ

— Dominik Peters (@DominikPeters) 30 de abril de 2023

Conclusión

El avance de OpenAI con el intérprete de código de ChatGPT es simplemente transformador tanto para programadores como para no programadores. Su versatilidad para manejar una amplia gama de tareas, desde ayudar a los desarrolladores en la depuración hasta generar fácilmente cuestionarios parisinos, es un testimonio del potencial ilimitado de la IA para mejorar nuestras experiencias digitales. Aquí está la esencia destilada de nuestra inmersión profunda:

Comprende tu herramienta: Así como te harías amigo de un colega, familiarízate con el intérprete de código. Está diseñado sobre Codex, que se ha ajustado a partir de GPT-4. Su competencia abarca múltiples lenguajes de programación, lo que lo convierte en un compañero ideal para todas tus aventuras de codificación.

Acepta la revolución de la IA: Las prácticas de codificación tradicionales están a punto de sufrir un cambio sísmico. Con herramientas impulsadas por IA como el intérprete de código de ChatGPT, tareas como la identificación de errores, la generación de código e incluso las revisiones de código pueden ser aceleradas.

Más allá del código: La incursión del intérprete no se limita a texto o código. Su capacidad para manejar múltiples formatos de archivos, desde simples archivos TXT hasta scripts PY complejos, subraya su utilidad en diversos ámbitos.

Nunca dejes de experimentar: Nuestra exploración con la instalación de la biblioteca NLTK refleja la importancia de la persistencia y la adaptabilidad, valores que el intérprete de código encarna. Si hay un problema, a menudo hay una solución.

Únete a la conversación de la IA: Las aplicaciones del mundo real, como se muestra en el cuestionario de los arrondissements de París, resaltan la inmensa utilidad del intérprete. Acepta, explora y permite que amplifique tus proyectos.

El video anterior se ha hecho utilizando Gen-2 y Midjourney.

En resumen, el intérprete de código de ChatGPT es más que una simple herramienta; está cambiando la forma en que nos conectamos con la tecnología. Para innovadores y entusiastas, promete un mundo lleno de potencial de codificación.