Connect with us

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

Ingeniería de prompts

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

mm

Los avances de OpenAI en Procesamiento de Lenguaje Natural (NLP) están marcados por el auge de los Grandes Modelos de Lenguaje (LLM), que subyacen a productos utilizados por millones, 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 estándares sin precedentes en tareas como la generación de código y texto.

Entendiendo el intérprete de código de ChatGPT

Para entender la importancia del intérprete de código de ChatGPT, es esencial comprender primero 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 competencia en la comprensión, interpretación y even generación de código en una multitud de lenguajes de programación. Esta característica transforma a ChatGPT de un generador de texto en una herramienta invaluable para los desarrolladores, ayudando en la comprensión del código, depuración y even generación de código.

Entrenamiento de GPT para codificación: El enfoque 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 capacidades de codificación en Python. Entrenado en código de código abierto de GitHub, Codex muestra su potencial al alimentar 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 notable 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 a 70.2%. Tal eficiencia sugiere la posibilidad de utilizar un ranking heurístico para seleccionar muestras de código precisas, sin necesidad de una evaluación completa para cada una.

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

Datos de entrenamiento para el modelo Codex - intérprete de código de ChatGPT

Datos de entrenamiento para el modelo Codex: https://arxiv.org/abs/2107.03374

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

Arquitectura de ChatGPT afinada

Los modelos generativos como ChatGPT que producen código suelen evaluarse comparando las muestras generadas con una solución de referencia. Esta comparación puede ser exacta o emplear una medida de similitud como la puntuación BLEU. Sin embargo, estas métricas basadas en coincidencia a menudo no capturan las sutilezas de la codificación. Una crítica clave de BLEU es su ineficacia para capturar las características semánticas del código.

En lugar de confiar únicamente en 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 pasar un conjunto determinado de pruebas unitarias. La idea se alinea con las prácticas de codificación estándar, ya que los desarrolladores a menudo utilizan pruebas unitarias para evaluar la eficacia y precisión de su código.

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

La métrica pass@k se introduce como una medida de corrección funcional. En esencia, significa que si alguna de las “k” muestras de código generadas pasa las pruebas unitarias, el problema se considera resuelto. Sin embargo, en lugar de utilizar esto en su forma directa, se utiliza un estimador no sesgado para calcular pass@k para evitar una alta varianza.

Para evaluar las capacidades de codificación de ChatGPT, la investigación 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.

Ejemplo de conjunto de datos de entrenamiento de ChatGPT

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 manera segura. Este entorno utilizó gVisor para emular recursos y crear una barrera entre el sistema host y el código en ejecución. Así, incluso si el modelo produce código malicioso, permanece contenido y no puede dañar el host o la red.

Usando el intérprete de código de ChatGPT

El ChatGPT de OpenAI ha experimentado numerosas evoluciones, y el intérprete de código se destaca como una característica revolucionaria en el modelo GPT-4. A diferencia de las interfaces de chat tradicionales, el intérprete de código permite a los usuarios sumergirse más profundamente en tareas computacionales, fusionando suavemente las líneas entre las conversaciones humanas-AI y los procesos computacionales.

En su núcleo, el intérprete de código es similar a tener una computadora integrada en el chatbot. Esta característica dinámica ofrece a los usuarios espacio de disco temporal para subir una variedad de formatos de archivo que van desde tipos comunes como TXT, PDF y JPEG hasta 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 robusto y seguro, el intérprete de código está equipado con más de 300 bibliotecas preinstaladas. Este entorno de sandbox garantiza la seguridad mientras proporciona una sustancial potencia computacional. 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 buscable utilizando OCR; todo lo que un usuario necesita hacer es subir el documento, y ChatGPT se encarga del resto.

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

La brillantez del intérprete de código no radica solo en su destreza técnica, sino en su accesibilidad. OpenAI ofrece esta característica a los suscriptores de ChatGPT Plus, que viene con el modelo GPT-4. Así, esta herramienta transformadora no es solo para la élite tecnológica, sino que está gradualmente volviéndose accesible a una audiencia más amplia.

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

Las capacidades del intérprete 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: Para aplicaciones de software y scripts de análisis de datos, dado una descripción de alto nivel, el sistema puede producir estructuras de código básicas o fragmentos de código intrincados, acelerando los procesos de desarrollo y análisis de datos.
  • Revisión de código y validación de datos: Herramientas impulsadas por IA como ChatGPT pueden ayudar a mejorar la calidad y la seguridad de las bases de código de software. Además, en el ámbito de la ciencia de datos, dichas herramientas pueden ser instrumentales en la revisión y validación de scripts de procesamiento y transformación de datos, garantizando precisión y eficiencia.
  • Asistencia en análisis de datos: Para científicos de datos, el intérprete de código de ChatGPT puede ayudar a generar código para la exploración preliminar de datos, visualización y even pruebas estadísticas básicas, facilitando así el flujo de trabajo de análisis de datos.

Si está interesado en encontrar más información sobre las complejidades de ChatGPT y la ingeniería de solicitudes, Unite.AI ofrece un análisis detallado en ‘ChatGPT: Ingeniería avanzada de solicitudes‘.

Configuración del intérprete de código de ChatGPT

La integración del intérprete de código permite a la plataforma interpretar las consultas del usuario, ejecutarlas como código Python y mostrar los resultados en un formato de chat interactivo. Para acceder a esta característica, los usuarios pueden navegar hasta la configuración de ChatGPT, explorar la sección de características beta y activar el intérprete de código.

Lo que lo distingue 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. Importante, por razones de privacidad y seguridad, el intérprete de código opera sin conectividad a Internet.

Explorando los beneficios del intérprete 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 tanto representaciones gráficas convencionales como innovadoras. Esto garantiza que los usuarios puedan ver sus datos en formatos que proporcionan las perspectivas más significativas.

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

Los analistas financieros encontrarán particularmente útil la capacidad del intérprete de código para analizar y visualizar tasas de acciones. A través de una integración sin esfuerzo, los usuarios pueden subir conjuntos de datos y visualizarlos en varios formatos. La importancia de esta función es evidente cuando los individuos pueden realizar análisis de datos complejos.

El video a continuación demuestra cómo el intérprete de código de ChatGPT creó un análisis integral de acciones TSLA.

Puntos clave:

  • Las acciones de Tesla han enfrentado volatilidad pero también han demostrado resistencia con períodos de crecimiento.
  • Los altos volúmenes de operaciones en días específicos indican un significativo interés del mercado o reacciones a eventos clave.
  • El rendimiento anual (YTD) a la baja sugiere que los inversores deben analizar tanto los factores internos de la empresa como las condiciones del mercado cuando consideren inversiones futuras.

Implementación de visión por computadora y OCR

La detección de rostros, una función esencial en la 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 extraer texto de imágenes, conocido como reconocimiento óptico de caracteres (OCR), se logró sin esfuerzo utilizando Tesseract, y el texto resultante se estructuró posteriormente con GPT-4, mejorando la comprensibilidad.

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

El intérprete de código sobresale en el ámbito de la manipulación de video, audio e imagen. Con comandos directos, los usuarios pueden lograr ediciones detalladas, como convertir GIFs a MP4 con mejoras específicas. Simplemente suba su archivo, ingrese las modificaciones deseadas y observe la magia suceder.

Biblioteca externa de Python dentro de su intérprete de código de ChatGPT

El intérprete de código de ChatGPT es una plataforma de programación dinámica equipada con un conjunto extenso de bibliotecas de Python. Estas cubren desde la visualización de datos con Seaborn hasta el aprendizaje automático avanzado a través de Torch. Pero es más que una herramienta estática.

Inspirado en esta página de ChatGPT de Korakot Chaovavanich.

Comenzando con el lanzamiento más reciente de nltk, subimos un archivo .whl al intérprete. Luego instruimos a ChatGPT para que localizara el directorio de paquetes adecuado analizando la ubicación de un paquete existente. El siguiente paso involucró desempacar el archivo wheel a un lugar temporal y mover los archivos al directorio de paquetes identificado. Sin embargo, esto encontró un obstáculo.

Buscando una solución alternativa, solicitamos: “Por favor, asegúrese de que NLTK se instale en el entorno de Python y esté accesible después de la instalación”.

ChatGPT respondió, proporcionando una solución. Sugirió agregar el directorio temporal a sys.path, lo que permitió a Python identificar y extraer módulos del paquete nltk desempacado en esa ubicación. Esta táctica funcionó maravillas, lo que llevó a la instalación exitosa de NLTK.

A través del uso de archivos .whl, la instalación mostró una mezcla de ingenio y adaptabilidad. El intérprete de código de ChatGPT, a pesar de los desafíos iniciales, manifestó su versatilidad y compromiso con la satisfacción de las necesidades de los codificadores, asegurando tanto a novatos como a veteranos una experiencia de codificación refinada.

instalación de bibliotecas personalizadas en el intérprete de código de ChatGPT

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

https://twitter.com/DominikPeters/status/1652630445639467008?s=20

Conclusión

El avance de OpenAI con el intérprete de código de ChatGPT no es menos que transformacional para codificadores y no codificadores por igual. Su versatilidad para manejar una amplia gama de tareas —desde ayudar a los desarrolladores en la depuración hasta producir pruebas de París con facilidad— es un testimonio del potencial ilimitado de la IA para mejorar nuestras experiencias digitales. Aquí está la esencia destilada de nuestra inmersión profunda:

Comprenda su herramienta: Al igual que se haría con un colega, conozca al intérprete de código. Está diseñado sobre Codex, que se ajusta desde GPT-4. Su competencia abarca múltiples lenguajes de programación, lo que lo convierte en un compañero ideal para todas sus aventuras de codificación.

Abrace la revolución de la IA: Las prácticas de codificación tradicionales están a punto de experimentar 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 y even las revisiones de código pueden acelerarse.

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

Nunca deje 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 obstáculo, a menudo hay una forma de sortearlo.

Únase a la conversación de la IA: Las aplicaciones del mundo real, como se muestra en la prueba de arrondissements de París, subrayan la gran utilidad práctica de la herramienta. Abrace, explore y permita que amplifique sus proyectos.

El video anterior se realizó utilizando Gen-2 y Midjourney.

En resumen, el intérprete de código de ChatGPT es más que una 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.

He pasado los últimos cinco años sumergiéndome en el fascinante mundo del Aprendizaje Automático y el Aprendizaje Profundo. Mi pasión y experiencia me han llevado a contribuir a más de 50 proyectos de ingeniería de software diversos, con un enfoque particular en AI/ML. Mi curiosidad continua también me ha llevado hacia el Procesamiento de Lenguaje Natural, un campo que estoy ansioso por explorar más a fondo.