Today at ICLR in Vancouver, researchers from Rice University presented a deep learning-based application that helps programmers write code in the growing multitude of application programming interfaces or APIs.
The application, called Bayou, was developed by a team of computer scientists from the Intelligent Software Systems Laboratory at Rice University and funded by DARPA, the defense department’s research agency.
“People have tried for 60 years to build systems that can write code, but the problem is that these methods aren’t that good with ambiguity,” said Bayou co-creator Swarat Chaudhuri, associate professor of computer science at Rice University. “A developer can give Bayou a minimal amount of information — just a few keywords or prompts, really — and Bayou will try to read the programmer’s mind and predict the program they want.”
Using NVIDIA Tesla GPUs and the cuDNN-accelerated TensorFlow deep learning framework, the team trained their system on 100 million lines of code and validated their work on a dataset comprised of 10,000 programs.
“Its basically studied everything on GitHub, and it draws on that to write its own code,” said Chaudhuri.
The researchers designed their application on a method called neural sketch learning, which trains an artificial neural network to recognize patterns in thousands of Java programs. The technique sketches each program and associates the sketch with how the program operates.
“There are hundreds of APIs, and navigating them is very difficult for developers. They spend lots of time at question-answer sites like Stack Overflow asking other developers for help,” Bayou architect Vijay Murali, a research scientist at the university’s lab said. “That immediate feedback [Bayou offers] could solve the problem right away, and if it doesn’t, Bayou’s example code should lead to a more informed question for their human peers,” Murali said.
The team has made their application available to the public and people can try it out at askbayou.com. The team also published a research paper that outlines their process.
Read more >