Los científicos informáticos de la Universidad de Rice han creado una aplicación de codificación de software de aprendizaje profundo que puede ayudar a los programadores humanos a navegar por la creciente multitud de interfaces de programación de aplicaciones o API, a menudo indocumentadas.
Conocida como Bayou, la aplicación Rice fue creada a través de una iniciativa financiada por la Agencia de Proyectos de Investigación Avanzada de Defensa dirigida a extraer conocimiento de repositorios de código fuente en línea como GitHub. Se presentará un documento sobre Bayou el 1 de mayo en Vancouver, Columbia Británica, enla Sexta Conferencia Internacional sobre Representaciones de Aprendizaje, una salida principal para la investigación de aprendizaje profundo. Los usuarios pueden probarla en askbayou.com .
Diseñar aplicaciones que puedan programar computadoras es un grial muy buscado de la rama de la informática llamada inteligencia artificial IA.
"La gente ha intentado durante 60 años construir sistemas que puedan escribir código, pero el problema es que estos métodos no son tan buenos con la ambigüedad", dijo el cocreador de Bayou Swarat Chaudhuri, profesor asociado de ciencias de la computación en Rice ".Por lo general, debe dar muchos detalles sobre lo que hace el programa de destino, y escribir estos detalles puede ser tanto trabajo como escribir el código.
"Bayou es una mejora considerable", dijo. "Un desarrollador puede darle a Bayou una cantidad muy pequeña de información, solo unas pocas palabras clave o indicaciones, y Bayou intentará leer la mente del programador y predecir el programaellos quieren."
Chaudhuri dijo que Bayou se entrenó a sí mismo estudiando millones de líneas de código Java escrito por humanos. "Básicamente estudió todo en GitHub, y se basa en eso para escribir su propio código".
El cocreador de Bayou, Chris Jermaine, profesor de ciencias de la computación que codirige el Laboratorio de Sistemas Inteligentes de Software de Rice con Chaudhuri, dijo que Bayou es particularmente útil para sintetizar ejemplos de código para API de software específicas.
"La programación de hoy es muy diferente de lo que era hace 30 o 40 años", dijo Jermaine. "Las computadoras de hoy están en nuestros bolsillos, en nuestras muñecas y en miles de millones de electrodomésticos, vehículos y otros dispositivos. Los días en que un programador podíaescribir código desde cero se ha ido hace mucho tiempo "
El arquitecto de Bayou, Vijay Murali, científico investigador en el laboratorio, dijo: "El desarrollo de software moderno tiene que ver con APls. Estas son reglas, herramientas, definiciones y protocolos específicos del sistema que permiten que un código interactúe con un sistema operativo específico, base de datos, plataforma de hardware u otro sistema de software. Hay cientos de API, y navegar por ellas es muy difícil para los desarrolladores. Pasan mucho tiempo en sitios de preguntas y respuestas como Stack Overflow pidiendo ayuda a otros desarrolladores ".
Murali dijo que los desarrolladores ahora pueden comenzar a hacer algunas de esas preguntas en Bayou, lo que dará una respuesta inmediata.
"Esa retroalimentación inmediata podría resolver el problema de inmediato, y si no lo hace, el código de ejemplo de Bayou debería conducir a una pregunta más informada para sus pares humanos", dijo Murali.
Jermaine dijo que el objetivo principal del equipo es lograr que los desarrolladores intenten extender Bayou, que se ha lanzado bajo una licencia permisiva de código abierto.
"Cuanta más información tengamos sobre lo que la gente quiere de un sistema como Bayou, mejor podremos lograrlo", dijo. "Queremos que tanta gente lo use como podamos". Bayou se basa en un métodollamado aprendizaje de bocetos neuronales, que entrena una red neuronal artificial para reconocer patrones de alto nivel en cientos de miles de programas Java. Lo hace creando un "boceto" para cada programa que lee y luego asociando este boceto con la "intención" quese encuentra detrás del programa.
Cuando un usuario hace preguntas a Bayou, el sistema toma una decisión sobre qué programa se le pide que escriba. Luego crea bocetos para varios de los programas candidatos más probables que el usuario pueda desear.
"Basado en esa suposición, una parte separada de Bayou, un módulo que comprende los detalles de bajo nivel de Java y puede hacer un razonamiento lógico automático, generará cuatro o cinco trozos diferentes de código", dijo Jermaine. "Esva a presentarlos al usuario como visitas en una búsqueda en la web. 'Esta es probablemente la respuesta correcta, pero aquí hay tres más que podrían ser lo que estás buscando' "
Fuente de la historia :
Materiales proporcionado por Universidad de Rice . Original escrito por Jade Boyd. Nota: El contenido puede ser editado por estilo y longitud.
Cite esta página :