Ingeniería de prompts

Explorando el intÃĐrprete de cÃģdigo de ChatGPT de OpenAI: Un anÃĄlisis profundo de sus capacidades

mm
AÃąade Unite.AI a tus fuentes preferidas en Google

Los avances de OpenAI en el procesamiento de lenguaje natural (NLP) se caracterizan por el surgimiento de modelos de lenguaje grande (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 comprender la importancia del intÃĐrprete de cÃģdigo de ChatGPT, es esencial entender 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 habilidad para entender, interpretar y generar cÃģdigo en una variedad de lenguajes de programaciÃģn. Esta funciÃģn transforma a ChatGPT de un generador de texto en una herramienta invaluable para los desarrolladores, ayudÃĄndolos en la comprensiÃģn del cÃģdigo, la depuraciÃģn y la generaciÃģn de cÃģdigo.

Entrenando GPT para la 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 escritura de cÃģdigo Python proficientes. Entrenado en cÃģdigo de cÃģdigo abierto 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 a GPT-3 y GPT-J.

Una observaciÃģn notable es que el muestreo repetido mejora la habilidad de Codex. Cuando se utilizan hasta 100 muestras por problema, la tasa de ÃĐxito del modelo aumenta a 70,2%. Esta eficiencia sugiere la posibilidad de utilizar un ranking heurístico para seleccionar muestras de cÃģdigo precisas, sin necesidad de evaluar completamente cada una.

Para evaluar sus capacidades, el modelo se le asignÃģ la tarea de crear 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 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: https://arxiv.org/abs/2107.03374

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 fine-tuning de funciones independientes implementadas correctamente, 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. Simulando este escenario real, el modelo Codex-S, cuando se le dieron 100 oportunidades, abordÃģ con ÃĐxito 77,5% de los desafíos.

Arquitectura de ChatGPT fine-tuned

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 coincidencias a menudo no capturan las nuances 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 tambiÃĐn la usabilidad funcional del cÃģdigo generado.

La mÃĐtrica pass@k se introduce como una medida de correcciÃģn funcional. BÃĄsicamente, 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 ejecutar 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.

Utilizando el intÃĐrprete de cÃģdigo de ChatGPT

El ChatGPT de OpenAI ha experimentado numerosas evoluciones, con el intÃĐrprete de cÃģdigo destacÃĄndose 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 en tareas computacionales, fusionando 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 incrustada en el chatbot. Esta característica dinÃĄmica ofrece a los usuarios un espacio de disco temporal para subir una variedad de formatos de archivo, 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 cuenta con mÃĄs de 300 bibliotecas preinstaladas. Este entorno aislado garantiza la seguridad mientras proporciona un poder 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 buscable utilizando OCR; todo lo que el usuario necesita hacer es subir el documento, y ChatGPT se encarga del resto.

Un punto de interÃĐs ha sido el límite de tamaÃąo de archivo para subir. 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 la sesiÃģn de chat concluya.

La brillantez del intÃĐrprete de cÃģdigo no se limita a su destreza tÃĐcnica, sino tambiÃĐn a 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 y validaciÃģn de cÃģdigo: 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 pruebas estadísticas bÃĄsicas, facilitando 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 prompts, Unite AI ofrece un anÃĄlisis exhaustivo en ‘ChatGPT: Ingeniería de prompts avanzada‘.

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 a 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. Es importante destacar que, 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 representaciones grÃĄficas convencionales e innovadoras. Esto garantiza que los usuarios puedan ver sus datos en formatos que proporcionan los conocimientos mÃĄs significativos.

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 ejercer precauciÃģn.

Los analistas financieros encontrarÃĄn la capacidad del intÃĐrprete de cÃģdigo para analizar y visualizar tasas de acciones particularmente Útil. A travÃĐs de la integraciÃģn sin problemas, los usuarios pueden subir 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 video a continuaciÃģn demuestra cÃģmo el intÃĐrprete de cÃģdigo de ChatGPT creÃģ un anÃĄlisis integral de acciones de TSLA.

Puntos clave:

  • Las acciones de Tesla (TSLA ) han enfrentado volatilidad, pero tambiÃĐn han mostrado resiliencia con períodos de crecimiento.
  • Los altos volÚmenes de negociaciÃģn en días específicos indican un interÃĐs significativo del mercado o reacciones a eventos clave.
  • El rendimiento anual descendente (YTD) sugiere que los inversores deben analizar tanto los factores internos de la empresa como las condiciones del mercado al considerar 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 Haar de OpenCV.

La imagen a continuaciÃģn muestra la utilizaciÃģn del clasificador de cascada Haar clÃĄsico.

El proceso de extraer texto de imÃĄgenes, conocido como reconocimiento Ãģptico de caracteres (OCR), se logrÃģ sin problemas utilizando Tesseract, y el texto se estructurÃģ posteriormente mediante 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 y imagen. Con comandos sencillos, los usuarios pueden lograr ediciones detalladas, como convertir GIF en MP4 con mejoras específicas. Simplemente suba su archivo, ingrese las modificaciones deseadas y observe la magia suceder.

Biblioteca externa de Python dentro del 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 la Última versiÃģn 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, solicitamos: “Por favor, 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. 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Ãģ maravillosamente, 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 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 los novatos como a los 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 un cuestionario sobre los arrondissements de París, y el modelo entregÃģ un sitio web funcional. El cuestionario 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 es nada menos que transformacional para los 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 generar cuestionarios 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:

Conozca su herramienta: Al igual que se familiarizaría con un colega, conozca el intÃĐrprete de cÃģdigo. EstÃĄ diseÃąado sobre Codex, que se ajusta a partir de GPT-4. Su habilidad 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 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.

Ú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, subrayan la gran utilidad en el mundo real de la herramienta. Abrace, explore y permita que lo amplifique sus proyectos.

El video anterior se realizÃģ con 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 por igual, promete un mundo lleno de potencial de codificaciÃģn.

He dedicado los Últimos cinco aÃąos sumergiÃĐndome en el fascinante mundo de Machine Learning y Deep Learning. 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 en curso tambiÃĐn me ha llevado hacia el Procesamiento de Lenguaje Natural, un campo que estoy ansioso por explorar mÃĄs a fondo.