Escribir código es solo el primer paso para crear algo. Revisar su código en busca de errores y corregirlos lleva mucho tiempo y, a menudo, lleva más tiempo de lo previsto, pero es un paso esencial, no obstante.
Si tan solo hubiera una forma de corregir errores automáticamente que vaya más allá de los errores de sintaxis y realmente comprenda las intenciones detrás de su código.
Recientemente, Microsoft desarrolló una IA capaz de detectar y corregir errores en el código mediante el aprendizaje profundo. Pero, ¿cómo surgió esta pieza de tecnología revolucionaria y cómo funciona?
¿Qué es BugLab y cómo funciona?
BugLab es una implementación de Python de inteligencia artificial que busca y corrige errores dentro del código. Fue desarrollado por Miltos Alamanis y Marc Brockschmidt, dos investigadores de Microsoft Research. Se las arreglaron para superar la falta de datos etiquetados que se utilizan a menudo en aprendizaje automático recurriendo al aprendizaje auto-supervisado y permitiendo que BugLab se entrene a sí mismo a través de un juego de "escondite" con líneas de código.
BugLab se entrenó utilizando dos modelos informáticos; uno que oculta los errores dentro de los fragmentos de código correctos y otro que busca y corrige los errores. Ambos modelos aprenden continuamente el uno del otro. Con el tiempo, el selector de errores mejora para ocultar errores en el código y el detector mejora para detectarlos y corregirlos.
Comprender el código con BugLab
La mayoría de los errores que BugLab AI está capacitado para detectar y corregir no dan como resultado errores lógicos, sino que solo son incorrectos como resultado del contexto general del código. Comprender la intención del desarrollador es esencial para encontrar estos errores.
Tratar fragmentos de código de la misma manera que procesar lenguajes naturales produce resultados subóptimos. Todavía es difícil para la IA comprender la relación entre diferentes declaraciones cuando se dividen en tokens individuales.
En cambio, BugLab mira el código como un todo. De esa manera, cada sintaxis, expresión, símbolo e identificador se representan como puntos en un gráfico, lo que permite que la IA "comprenda" la conexión y la relación entre varios nodos.
Arquitecturas de redes neuronales luego se utilizan para entrenar la depuración de IA. Pueden obtener información valiosa de la rica estructura del gráfico de código y proporcionar las razones de la relación de cada nodo con los demás.
¿BugLab funciona en código de la vida real?
Es importante tener en cuenta que BugLab no reemplaza a un programador experto. Eso es porque los errores complejos aún no están al alcance.
El objetivo de Microsoft con la IA es detectar y corregir errores que ocurren comúnmente, como operadores booleanos incorrectos, como el uso de "o" en lugar de "y" y viceversa, además de comparaciones de valores invertidos y variables abusos.
De acuerdo a Microsoft, los resultados son prometedores, ya que BugLab es capaz de detectar y corregir automáticamente alrededor del 26 por ciento de los errores en un fragmento de código. Aún así, se sigue perdiendo un porcentaje significativo de precisión debido a falsos positivos y errores perdidos.
Aplicaciones futuras de Microsoft BugLab
El objetivo de Microsoft con BugLab es ahorrar tiempo a los desarrolladores de software, que a menudo se dedica a revisar su código en busca de los errores más pequeños.
Si bien el modelo de depuración de IA todavía está en proceso, tiene la posibilidad de encontrar y corregir errores que van desde inconvenientes hasta catastróficos. Pero en unos años, puede esperar que BugLab se convierta en una necesidad en el kit de herramientas de todos los desarrolladores, incluso si no es perfecto.
La evolución exponencial de la IA autodidacta
Cuanto más tiempo tengan los modelos de IA como BugLab para entrenar con ejemplos de la vida real, obtendrán resultados mejores y más precisos.
Uno de los obstáculos más desafiantes que enfrentaron los investigadores de Microsoft al desarrollar BugLab fue emplear una comprensión humana del código y la intención en la herramienta. Pero ahora que eso está resuelto en su mayor parte, puede esperar que BugLab mejore con el tiempo.
¿Intenta resolver la diferencia entre inteligencia artificial, aprendizaje automático y aprendizaje profundo? Esto es lo que todos quieren decir.
Leer siguiente
- Programación
- Microsoft
- Consejos de codificación
- Inteligencia artificial
Anina es escritora independiente de tecnología y seguridad de Internet en MakeUseOf. Comenzó a escribir sobre ciberseguridad hace 3 años con la esperanza de hacerlo más accesible para la persona promedio. Interesado en aprender cosas nuevas y un gran nerd de la astronomía.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse