Lo sentimos, desarrolladores: la nueva herramienta de Microsoft corrige los errores en el código de software escrito por AI

Microsoft reconoce que el código generado por máquina debe tratarse con una «mezcla de optimismo y precaución» porque la programación se puede automatizar con modelos de lenguaje grandes, pero tampoco siempre se puede confiar en el código.

Estos grandes modelos de lenguaje previamente entrenados incluyen Codex de OpenAI, el programa de lenguaje natural BERT de Google y el trabajo de generación de código de DeepMind. Codex de OpenAI, presentado en agosto, impulsa la herramienta Copilot de GitHub, propiedad de Microsoft.

Para abordar la cuestión de la calidad del código de estos modelos de lenguaje, los investigadores de Microsoft han creado Jigsaw, una herramienta que puede mejorar el rendimiento de estos modelos utilizando «técnicas de posprocesamiento que comprenden la sintaxis y la semántica de los programas y luego aprovechan los comentarios de los usuarios para mejorar futuros actuación.»

VER: El desarrollo de software está cambiando de nuevo. Estas son las habilidades que buscan las empresas

Actualmente está diseñado para sintetizar código para Python Pandas API utilizando entradas multimodales, dice Microsoft. Pandas es una biblioteca popular de análisis y manipulación de datos para científicos de datos que usan el lenguaje de programación Python.

Los modelos de lenguaje como Codex pueden permitir que un desarrollador use una descripción en inglés para un fragmento de código y el modelo puede sintetizar el código deseado en, por ejemplo, Python o JavaScript. Pero, como señala Microsoft, ese código puede ser incorrecto o no compilarse o ejecutarse, por lo que el desarrollador debe verificar el código antes de usarlo.

«Con Project Jigsaw, nuestro objetivo es automatizar parte de esta investigación para aumentar la productividad de los desarrolladores que usan modelos de lenguaje grandes como Codex para la síntesis de código», explica el equipo de Jigsaw en Microsoft Research.

Microsoft reconoce que Jigsaw puede «automatizar completamente» todo el proceso de verificar si el código se compila, abordar los mensajes de error y probar si el código produce lo que el desarrollador quería que generara.

«Jigsaw toma como entrada una descripción en inglés del código previsto, así como un ejemplo de E/S. De esta manera, empareja una entrada con la salida asociada y proporciona la garantía de calidad de que el código Python de salida compilará y generará el salida prevista en la entrada proporcionada», señalan.

El documento, Jigsaw: Large Language Models meet Program Synthesis, analiza el enfoque en Python Pandas.

Con Jigsaw, un científico o desarrollador de datos proporciona una descripción de la transformación prevista en inglés, un marco de datos de entrada y el marco de datos de salida correspondiente. Jigsaw luego sintetiza el código previsto.

VER: Trabajos remotos versus regreso a la oficina: por qué la Gran Renuncia de la tecnología puede que recién haya comenzado

Microsoft descubrió que Jigsaw puede crear la salida correcta el 30 % de las veces. En este sistema, el lenguaje natural y otros parámetros se procesan previamente, se introducen en Codex y GPT-3, y luego el resultado posterior al proceso se devuelve al ser humano para su verificación y edición. Esa verificación humana final se retroalimenta a los mecanismos previos y posteriores al proceso para mejorarlos. Si el código falla, Jigsaw repite el proceso de reparación durante la etapa de procesamiento posterior.

Jigsaw mejora la precisión de la salida a más del 60 % y, a través de los comentarios de los usuarios, la precisión mejora a más del 80 %, según Microsoft Research.

Microsoft señala que se deben superar varios desafíos antes de tener un verdadero «par de programadores». Por ejemplo, solo probó la calidad de E/S del código sintetizado. En realidad, la calidad del código incluiría si el rendimiento del código es bueno, no tiene fallas de seguridad y respeta la atribución de licencias.

Deja un comentario