Alphabet-owned AI outfit DeepMind claims it has created an AI that can write programming code, find novel solutions to interesting problems, and do it at the level of the mid-ranking human entrants in coding contests.
Dubbed “AlphaCode” and detailed in a pre-print paper [PDF], the tool is said to advance on previous automated coding efforts by displaying the ability to tackle “problems that require a combination of critical thinking, logic, algorithms, coding, and natural language understanding.”
Previous efforts to create code that codes haven’t been able to reach that level of sophistication, but have done decently when asked to handle simple maths or programming chores.
DeepMind’s paper explains that AlphaCode’s developers addressed three important elements:
- Finding a clean dataset to work with, and as coding contests are not hard to find that data was easily secured.
- Designing an appropriate algorithm, along the lines of the transformer-based architectures used for natural language processing or image recognition.
- Creating many sample solutions, then filtering them to find work that would be useful for the problem at hand.
That problem was participating in coding contests run by Codeforces.
One of the challenges AlphaCode took on is described as follows:
AlphaCode’s solution follows.
AlphaCode did rather well at that task. The pre-print paper states it ranked in the top 54.3 per cent of entrants in the contests it … erm … contested.
Yup, that means it beat plenty of humans. Humans who may well code for a living.
The paper considers the broader impact on the world of code that codes, suggesting one potential risk is “advanced AI risks” as automated coding “could lead to systems that can recursively write and improve themselves, rapidly leading to more and more advanced systems.”
Before we need to worry about that, the paper ponders if automated coding is bad news for human programmers.
The authors’ conclusion is that developers should be OK because “writing code is only one portion of the job, and previous instances of partially automating programming (e.g. compilers and IDEs) have only moved programmers to higher levels of abstraction and opened up the field to more people.”
Read them closely, dear reader. They might be the competition for your next job. ®