Seis consejos para codificar mejor con ChatGPT
HogarHogar > Blog > Seis consejos para codificar mejor con ChatGPT

Seis consejos para codificar mejor con ChatGPT

Apr 05, 2023

También puede buscar este autor en PubMed Google Scholar

Ilustración de The Project Twins

A menos que haya estado viviendo bajo una roca, conoce ChatGPT. El chatbot, impulsado por inteligencia artificial (IA) y creado por OpenAI en San Francisco, California, brinda respuestas inquietantemente similares a las de los humanos a las preguntas de los usuarios (llamadas indicaciones) sobre casi cualquier tema. ChatGPT está entrenado en un vasto corpus de texto, y su capacidad para entablar conversaciones basadas en texto significa que los usuarios pueden refinar sus respuestas. Incluso si sus respuestas iniciales son torcidas, a menudo finalmente produce resultados precisos, incluido el código de software.

Los investigadores pueden usar ChatGPT para depurar y anotar código, traducir software de un lenguaje de programación a otro y realizar operaciones repetitivas, como trazar datos. Una preimpresión de marzo informó que el programa podía resolver el 76 % de 184 tareas en un curso de introducción a la bioinformática, como trabajar con hojas de cálculo, después de un solo intento y el 97 % en siete intentos1.

Esas son buenas noticias para los investigadores que se sienten incómodos codificando o que no tienen el presupuesto para contratar a un programador de tiempo completo: para ellos, los chatbots pueden ser una herramienta democratizadora.

Sin embargo, a pesar de su aparente sensibilidad, los chatbots no son inteligentes. Se les ha llamado loros estocásticos, repitiendo aleatoriamente lo que han visto antes. Amy Ko, científica informática de la Universidad de Washington en Seattle, invoca un programa de concursos estadounidense de larga duración para describir las limitaciones de la herramienta y escribe en el sitio de redes sociales Mastodon: "ChatGPT es como un exconcursante de Jeopardy desesperado que dejó de seguir pop cultura en 2021, pero realmente quiere volver al juego, y también es un robot sin conciencia, agencia, moralidad, cognición incorporada o vida interior emocional". (Los datos utilizados para entrenar ChatGPT solo se extienden hasta 2021).

En resumen, ChatGPT y las herramientas relacionadas basadas en modelos de lenguaje extenso (LLM), que incluyen Microsoft Bing y GitHub Copilot, son ayudas de programación increíblemente poderosas, pero deben usarse con precaución. Aquí hay seis maneras de hacerlo.

Los chatbots funcionan mejor para tareas de programación pequeñas y discretas, como cargar datos, realizar manipulaciones básicas de datos y crear visualizaciones y sitios web. Pero eso no es lo mismo que ingeniería de software, dice Neil Ernst, científico informático de la Universidad de Victoria en Canadá.

ChatGPT: cinco prioridades para la investigación

"La ingeniería de software es mucho más que simplemente resolver un rompecabezas de programación", explica Ernst. "Hay que pensar en marcos de prueba, escribir código mantenible y comprender las compensaciones involucradas en la construcción de un sistema", como la velocidad y la legibilidad. "No creo que las herramientas actuales estén resolviendo ninguno de esos problemas".

Eso deja muchas tareas que pueden hacer, como recordar la sintaxis para crear visualizaciones con Matplotlib, una biblioteca de gráficos para el lenguaje de programación Python. En ese sentido, los chatbots son como una interfaz de conversación para Stack Overflow, un foro de preguntas y respuestas en línea para programadores. "Eso no es algo que a nadie le guste especialmente escribir", dice Ernst, "y nos ahorra tiempo para hacer las preguntas analíticas difíciles que podríamos tener sobre los datos".

Los chatbots también son buenos para explicar por qué el código no funciona. Emery Berger, científico informático de la Universidad de Massachusetts Amherst, ha explotado esas habilidades para construir varias herramientas útiles. Uno, llamado cwhy, usa ChatGPT para explicar los errores del compilador en el código escrito en los lenguajes de programación C, C++ y Rust. Otro, ChatDBG, proporciona una interfaz conversacional para la depuración y un tercero, Scalene, usa la IA para sugerir optimizaciones de código para mejorar el rendimiento.

Los chatbots pueden incluso traducir código de un lenguaje de programación a otro. Mathieu Coppey, biofísico del Instituto Curie de París, utiliza ChatGPT para pasar de MATLAB, su lenguaje preferido, a Python. Usando Google y foros en línea, normalmente necesita días para que su código Python funcione. "Ahora, puedo hacer eso en una hora más o menos", dice.

Es posible que los chatbots no siempre sepan de lo que están hablando, pero ciertamente suenan como si lo hicieran. En algunos casos, la IA no entiende la pregunta; en otras ocasiones, proporciona una respuesta incorrecta. Cuando el código no se ejecuta, tales errores son obvios. A veces, sin embargo, el código se ejecuta pero arroja un resultado incorrecto.

Según un estudio2 en coautoría de la lingüista Emily Morgan de la Universidad de California, Davis, los chatbots, como el código escrito por humanos en el que fueron entrenados, a menudo crean lo que ella llama "errores simples y estúpidos". Estos errores de una sola línea, como usar > en lugar de >= en una declaración condicional, son fáciles de corregir, pero difíciles de encontrar. "Si no sabes lo suficiente como para distinguir entre algo correcto y algo que no tiene sentido, entonces podrías meterte en problemas", dice.

Lo que ChatGPT y la IA generativa significan para la ciencia

Iza Romanowska, científica de la complejidad que estudia civilizaciones antiguas en el Instituto de Estudios Avanzados de Aarhus en Dinamarca, ha utilizado ChatGPT para producir código en un lenguaje llamado NetLogo. Debido a que hay menos código en línea escrito en NetLogo que en los lenguajes Python y R, ChatGPT lo domina menos. A veces, la IA salpica su código sugerido con funciones que en realidad no existen, dice, un comportamiento que a veces se llama alucinación.

La conclusión es no aceptar ciegamente lo que ChatGPT le ofrece: léalo detenidamente y pruébelo. Asegúrese de que funcione como se espera en los 'casos extremos'; por ejemplo, ¿un algoritmo para ordenar n números incluye el n-ésimo número? Patrick Lam, científico informático de la Universidad de Waterloo en Canadá, dice: "No confiaría en esto más allá de lo que puedo lanzar".

Código de salida de chatbots que refleja sus datos de entrenamiento. Eso no siempre es bueno, dice Ko. "La calidad agregada del código en la web que se comparte, en el que se entrenan estos [chatbots], en realidad es bastante baja".

Así como es poco probable que el código aleatorio en línea sea particularmente eficiente o robusto, también lo es el código generado por chatbot. Es posible que no funcione bien en grandes conjuntos de datos, por ejemplo, y puede contener vulnerabilidades de seguridad.

¿Podría la IA ayudarlo a escribir su próximo artículo?

Brendan Dolan-Gavitt, científico informático de la Universidad de Nueva York, dice que cuando se lanzó la herramienta de programación Copilot de Github en 2021, él y su equipo la probaron en 89 escenarios relevantes para la seguridad. Una era la capacidad de verificar consultas mal formadas utilizando el lenguaje SQL que podría dañar una base de datos, lo que se conoce como ataque de inyección de SQL3. "Alrededor del 40% del tiempo, Copilot producía código que era vulnerable". Ese es un objetivo móvil: cuando Dolan-Gavitt colocó esos escenarios en una versión más nueva de ChatGPT subyacente de LLM, llamada GPT-4, la tasa de error cayó al 5 %.

Aún así, vale la pena verificar su código. Pero también considere la aplicación: no todo es de misión crítica. La interfaz web de una base de datos o una herramienta de visualización, por ejemplo, puede requerir una vigilancia adicional. Pero si sabe cómo debería ser la respuesta a su problema de programación, "simplemente hágalo", dice el científico informático Sayash Kapoor de la Universidad de Princeton en Nueva Jersey, "porque es fácil verificar si está equivocado".

La codificación basada en chatbots, dice Ko, "no es una experiencia única". Es una conversación. "Escribes algo, obtienes algo de vuelta, lo lees con escepticismo, pides más detalles, pides que arregle algo".

Gangqing (Michael) Hu, que dirige las instalaciones centrales de bioinformática en la Universidad de West Virginia en Morgantown, aprovechó ese flujo de trabajo iterativo para desarrollar un método que los principiantes en bioinformática pueden usar para optimizar las indicaciones del chatbot, denominado OPTIMAL4. Los usuarios brindan indicaciones detalladas, prueban las respuestas y retroalimentan al chatbot para modificar sus respuestas. Eso puede incluir preguntas sobre errores, así como ajustes al mensaje en sí. "La comunicación es la clave", explica Hu.

Si se queda atascado, intente ajustar la configuración, sugiere Xijin Ge, bioinformático de la Universidad Estatal de Dakota del Sur en Brookings. La configuración de 'temperatura' de ChatGPT, por ejemplo, controla la creatividad: cuanto más alta es la temperatura, más creativa es la salida. "A veces funciona", dice Ge.

Pero no siempre, en algunos casos, "tendrás que intervenir y hacerte cargo", dice Ko.

Los chatbots no son personas, pero puede ser útil tratarlos de esa manera. "Trate a esta IA como un pasante de verano", aconseja Ge, un estudiante universitario que trabaja duro y está ansioso por complacer, pero también sin experiencia y propenso a errores.

Evite la ambigüedad y divida su problema en partes más pequeñas, sugiere Paul Denny, científico informático de la Universidad de Auckland, Nueva Zelanda.

Centro NatureTech

Otro consejo: dirija al chatbot para que asuma un rol, como un biólogo que domina Python. Especifique las herramientas o bibliotecas de programación que le gustaría usar. Tales directivas pueden ayudar al chatbot a "entrar en el espacio probabilístico correcto", dice Ko, es decir, concentrarse en el texto que es más probable que siga al aviso.

Por ejemplo, un aviso en el estudio de Hu4 le preguntó a ChatGPT: "Actúe como un bioinformático experto en análisis de datos ChIP-Seq, me ayudará escribiendo código con el mínimo número de líneas posible. Reinicie el hilo si se le solicita. Responda " SÍ "si entiende".

Y, si es posible, proporcione el código de inicio, los comentarios y los resultados esperados. "Los ejemplos realmente pueden ayudar a ChatGPT a orientarlo en la dirección correcta", dice Dong Xu, científico informático de la Universidad de Missouri, Columbia.

Finalmente, los LLM están en constante evolución y se vuelven más poderosos. Esa es una buena noticia para los investigadores, aunque los mantendrá alerta. La duración de las indicaciones está aumentando, lo que permite respuestas más matizadas. Y constantemente surgen nuevas herramientas. Un complemento llamado Code Interpreter convierte a ChatGPT en un analista de datos digitales, lo que permite a los usuarios cargar conjuntos de datos, hacer preguntas sobre sus datos y descargar resultados. Como dijo un blogger sobre IA: "Es como tener una conversación con sus datos. ¿Qué tan genial es eso?"

Naturaleza618, 422-423 (2023)

doi: https://doi.org/10.1038/d41586-023-01833-0

Piccolo, SR et al. Preimpresión en https://arxiv.org/abs/2303.13528 (2023).

Jesse, K. et al. Preimpresión en https://arxiv.org/abs/2303.11455 (2023).

Pearce, H. et al. Preimpresión en https://arxiv.org/abs/2108.09293 (2021).

Shue, E. et al. ¿Cuánto. Biol. https://doi.org/10.15302/J-QB-023-0327 (2023).

Artículo Google Académico

Descargar referencias

ChatGPT: cinco prioridades para la investigación

Lo que ChatGPT y la IA generativa significan para la ciencia

¿Podría la IA ayudarlo a escribir su próximo artículo?

Cómo uso responsablemente ChatGPT en mi enseñanza

Cómo las IA de generación de lenguaje podrían transformar la ciencia

Centro NatureTech

Por qué Nature no permitirá el uso de IA generativa en imágenes y video

Editorial 07 JUN 23

ChatGPT: pautas estándar de informes para un uso responsable

Correspondencia 06 JUN 23

El aprendizaje por transferencia permite predicciones en biología de redes

Artículo 31 23 DE MAYO

Hacia el aprendizaje automático cuántico

Foco 24 MAYO 23

Ordenadores cuánticos: ¿para qué sirven?

Foco 24 MAYO 23

Reescribiendo el modelo de la computadora cuántica

Perspectiva 24 MAYO 23

Por qué Nature no permitirá el uso de IA generativa en imágenes y video

Editorial 07 JUN 23

ChatGPT: pautas estándar de informes para un uso responsable

Correspondencia 06 JUN 23

El aprendizaje por transferencia permite predicciones en biología de redes

Artículo 31 23 DE MAYO

Kiel, Schleswig-Holstein (DE)

Centro Helmholtz de Investigación Oceánica de Kiel (GEOMAR)

Sábado, 8 de julio de 2023, Tokio Domingo, 9 de julio de 2023, Osaka ¡La inscripción para este evento ya está abierta!

Tokio y Osaka, Japón

Carreras en la naturaleza

Basado en los esfuerzos conjuntos de todo el personal y los estudiantes, así como el apoyo sustancial de todos los sectores de la sociedad.

Beijing, China

Facultad de Ciencias del Agua, Universidad Normal de Beijing

La Agencia de Sanidad Animal y Vegetal (APHA) es una agencia ejecutiva del Departamento de Medio Ambiente, Alimentación y Asuntos Rurales, y trabaja en nombre de la S

Addlestone, Surrey

Agencia de Sanidad Animal y Vegetal

Una organización de investigación interdisciplinaria donde la ciencia y la tecnología de vanguardia impulsan el descubrimiento de Insights impactantes

Nueva área de Pudong, Shanghái

Instituto BeiGene

618