Although machine learning has advanced in leaps and bounds, it is difficult to create an AI that is good at multiple things. Thus, a machine can be trained with data to handle one class of programming challenges, but will fail if given a different problem to tackle. Hence, the team decided to skip all training on algorithms and code structures instead of treating it more as a translation problem.
A programming challenge usually includes a description of the task, and the code submitted by a human participant is technically an expression of the description. AI works in two stages: it takes the description and converts it into an internal representation. Then, it uses that representation to generate working code based on the data shown in training. And there was a lot of information.
DeepMind feeds AI 700GB of code on GitHub, complete with comments that explain the code As Ars Technica points out, that’s a huge amount of text data. With the essence of internal programming, DeepMind sets up its own programming competition and feeds the results to AI to fine-tune the model’s performance. The team says this is an order of magnitude more training data than coding machines of the past, and that made all the difference.
The researchers found that AlphaCode was able to generate a large number of possible answers to a coding problem, but about 40 percent of them would run through all available system memory or fail to reach the answer in a reasonable amount of time. The data needs to be filtered to find the one percent solution that is actually good code. DeepMind found that clusters of similar codes indicated better answers, whereas mistakes were randomly distributed. By focusing on these answers, AlphaCode was able to correctly answer about one-third of the coding challenges. It turns out that many human programmers are a bit better, so Alphacode is placed in the top 54 percent. It’s not supposed to take jobs from DeepMind engineers, but give it time.