Inteligencia artificial que aprende a programar sola en 55 lenguajes de programación: así es CodeNet, el proyecto de IBM para enseñarle

La ‘AI-for-Code’, nombre genérico de las tecnologías que usan la inteligencia artificial para automatizar parcial o totalmente el desarrollo de software está, en palabras de los investigadores de IBM Research, «a punto de dejar de ser una prueba de concepto para convertirse en una tecnología de adopción generalizada».


Con el objetivo de dar un empujón a esta tendencia, estos investigadores han puesto en marcha un proyecto que esperan que sirva como punto de inflexión: el CodeNet Project.


El objetivo de éste es proporcionar un valioso dataset al conjunto de la comunidad de investigadores del ámbito de la IA aplicada a la programación; dicho dataset les permitiría aplicar técnicas de machine learning a la creación de traductores entre diferentes lenguajes de programación, o bien generadores o analizadores de código.


Para ello, el dataset (distribuido bajo una licencia libre) reúne un total de 14 millones de ejemplos de código en los que se plantea la solución a 4053 problemas de programación habituales… planteados desde 55 lenguajes de programación diferentes: desde lenguajes populares actualmente (como Go, Python y Java) hasta clásicos (como COBOL, FORTRAN y Pascal).


Pero estas muestras de código fuente no proceden de aplicaciones en producción ni en proceso de desarrollo, pues esto no sólo habría impedido su libre uso, sino también contar con un elemento muy importante en el entrenamiento de los modelos de IA: ejemplos de código mal programado, debidamente etiquetado para que la inteligencia artificial pueda ‘aprender’ la diferencia entre el código funcional y el fallido.


Para ello, recurrieron como fuente del código a dos populares concursos de programación organizados en Japón (Aizu y AtCoder), cuyos participantes tenían como misión generar código que convirtiera una entrada de datos X en una salida Y.


Las metas marcadas para CodeNet


Ahora, el objetivo de IBM pasa por conseguir que CodeNet pueda seguir los pasos de ImageNet, la base de datos de imágenes y etiquetas de referencia a la hora de entrenar aplicaciones de visión computerizada, y que así CodeNet se convierta en el líder del campo de la IA aplicada a la programación.


El pasado mes de diciembre, Ruchir Puri, científico jefe de la división de investigación de IBM, explicaba en un podcast cómo estaban utilizando esta clase de inteligencia artificial para modernizar software heredado, ayudando a migrar aplicaciones monolíticas a microservicios para los clientes empresariales de IBM. Ahora, IBM afirma que CodeNet permitirá a otros equipos científicos dotarse de esa misma tecnología.


Esta clase de avances permitirá dejar atrás software heredado durante décadas que, por sus características, resulta difícil de traducir y que mantiene vivos en entornos corporativos y burocráticos a ciertos lenguajes que, de otro modo, ya habrían sido abandonados:

«Si la traducción de lenguajes de programación fuera fácil y los sistemas basados ​​en reglas funcionaran, los primeros lenguajes de programación como COBOL ya se habrían traducido [a otros más modernos].

Pero los lenguajes de programación tienen contexto e identificarlo para poder hacer la traducción, al igual que ocurre con los lenguajes humanos, es complicado y requiere mucho tiempo. […] El contexto es un desafío para la IA».



Fuente: Genbeta


¿Eres un apasionado por la Inteligencia Artificial (IA), y quieres conocer más? En EducaciónIT ofrecemos un curso de Machine Learning Fundamentos-Inteligencia Artificial, donde desarrollarás un perfil técnico mediante el cual comprenderás los desafíos sociales e industriales que la IA representa, sus correspondientes algoritmos, y muchos más.

Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.