Hacia una inteligencia artificial que aprende a escribir código

Los investigadores combinan el aprendizaje profundo y el razonamiento simbólico para una forma más flexible de enseñar a las computadoras a programar.

Aprender a codificar implica reconocer cómo estructurar un programa y cómo completar correctamente hasta el último detalle. No es de extrañar que pueda ser tan frustrante.

Una nueva IA de creación de programas, SketchAdapt , ofrece una salida. Entrenado en decenas de miles de ejemplos de programas, SketchAdapt aprende a componer programas cortos de alto nivel, mientras permite que un segundo conjunto de algoritmos encuentre los subprogramas correctos para completar los detalles. A diferencia de enfoques similares para la escritura automatizada de programas, SketchAdapt sabe cuándo cambiar de la coincidencia de patrones estadísticos a un modo de razonamiento simbólico menos eficiente, pero más versátil, para llenar los vacíos.

“Las redes neuronales son bastante buenas para obtener la estructura correcta, pero no los detalles”, dice Armando Solar-Lezama , profesor del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL) del MIT. «Al dividir el trabajo, dejar que las redes neuronales manejen la estructura de alto nivel y usar una estrategia de búsqueda para completar los espacios en blanco, podemos escribir programas eficientes que den la respuesta correcta».

SketchAdapt es una colaboración entre Solar-Lezama y Josh Tenenbaum , profesor de CSAIL y el Centro de cerebros, mentes y máquinas del MIT . El trabajo se presentará en la Conferencia Internacional sobre Aprendizaje Automático del 10 al 15 de junio.

La síntesis de programas, o enseñar a las computadoras a codificar, ha sido durante mucho tiempo un objetivo de los investigadores de IA. Es más probable que una computadora que puede programarse a sí misma aprenda un idioma más rápido, converse con fluidez e incluso modele la cognición humana. Todo esto atrajo a Solar-Lezama al campo como estudiante de posgrado, donde sentó las bases de SketchAdapt.

El trabajo inicial de Solar-Lezama, Sketch , se basa en la idea de que los detalles de bajo nivel de un programa se pueden encontrar mecánicamente si se proporciona una estructura de alto nivel. Entre otras aplicaciones, Sketch inspiró spin-offs para calificar automáticamente la tarea de programación y convertir diagramas dibujados a mano en código. Más tarde, a medida que las redes neuronales crecieron en popularidad, los estudiantes del laboratorio de ciencias cognitivas computacionales de Tenenbaum sugirieron una colaboración, a partir de la cual se formó SketchAdapt.

Fortran en la década de 1950, estaba destinado a reemplazar a los programadores humanos. “Su nombre completo era Fortran Automatic Coding System, y su objetivo era escribir programas tan bien como los humanos, pero sin errores”, dice Solar-Lezama. “Lo que realmente hizo fue automatizar mucho de lo que hacían los programadores antes de Fortran. Cambió la naturaleza de la programación”.

El otro coautor del estudio es Luke Hewitt. La financiación fue proporcionada por la Oficina de Investigación Científica de la Fuerza Aérea de EE. UU., el Laboratorio de IA Watson de MIT-IBM y la Fundación Nacional de Ciencias de EE. UU.

Deja un comentario