Inteligencia Artificial que aprende a programar. Así es el Proyecto CodeNet de IBM

Publicado el

robot programando

Aprender a programar no es sencillo, y enseñar a una máquina a hacerlo parece una tarea imposible, pero no lo es.

La división de investigación de IA de IBM ha lanzado un conjunto de datos de 14 millones de muestras para desarrollar modelos de aprendizaje automático que pueden ayudar en las tareas de programación.

Estamos hablando del Proyecto CodeNet, un proyecto que no pretende hacer que los programadores humanos sean redundantes, pero creen que podrán hacer que los desarrolladores sean más productivos.

Se han usado 500 millones de líneas de código escritas en 55 lenguajes de programación diferentes con 4.000 desafíos publicados en las plataformas de codificación en línea AIZU y AtCoder. Los ejemplos de código incluyen respuestas correctas e incorrectas a los desafíos. CodeNet ha incluido una enorme cantidad de anotaciones que se han agregado a los ejemplos, como descripción textual junto con el tiempo de CPU y los límites de memoria, por ejemplo. Cada envío de código tiene varios datos, incluido el idioma, la fecha de envío, el tamaño, el tiempo de ejecución, la aceptación y los tipos de error.

Comentan en bdtechtalks.com que quizás lo más importante son estos metadatos que acompañan a las muestras de codificación.

CodeNet podría ayudar en:

– Desarrollar modelos de aprendizaje automático para tareas de programación.
– Traducción de lenguajes de programación, pasando un código de un lenguaje a otro.
– Desarrollar modelos de aprendizaje automático para la recomendación de código (mejorar el autocompletado).
– Desarrollar sistemas de optimización de código.
– Entrenar sistemas de aprendizaje automático que señalen posibles fallas en el código fuente.

Lo que es más difícil hacer es crear código, aunque de momento se han limitado a la clasificación de código, la evaluación de similitud de código y la finalización de código.

Seguiremos de cerca la evolución del proyecto en github.com/IBM/Project_CodeNet

Comparte en: