Meet ‘CodeGen’: An AI Model That Turns Simple Natural Language Requests Into Executable Code

Please don't forget to join our ML Subreddit

Imagine being able to tell a machine to write an app simply by telling it what the app does. As far-fetched as it may appear, this scenario is already a reality.

According to Salesforce AI Research, conversational AI programming is a new paradigm that brings this vision to life, thanks to an AI system that builds software.

Introducing CodeGen: Creating Programs from Prompts

The large-scale language model, CodeGen, which converts simple English prompts into executable code, is the first step toward this objective. The person doesn’t write any code; instead, (s)he describes what (s)he wants the code to perform in normal language, and the computer does the rest.

Conversational AI refers to technologies that allow a human and a computer to engage naturally through a conversation. Chatbots, voice assistants, and virtual agents are examples of conversational AI.

Source: https://blog.salesforceairesearch.com/codegen/

A Different Kind of Coding Problem: Learning a New Language

Up till now, there have been two ways to get computers to do valuable work –

  • use pre-existing computer programs that do what you want the machine to do
  • write a new program to do it.

Option 1 is great when the computer programs that are needed are available.

But Option 2 has a built-in barrier: if the type of program needed does not exist, creating new programs has always been limited to those who can speak the computer’s language.

Here are three of the present programming paradigm’s key drawbacks:

  • Time-consuming: one must learn a programming language and correctly apply what they’ve learned.
  • Difficult: some people find learning a new language to be a difficult task, and other people fail to complete the training.
  • Costly: Coding schools are pretty expensive.

These issues frequently obstruct or discourage new programmers’ education and development, particularly among people from historically disadvantaged communities. To put it another way, traditional programming often presents people with a distinct kind of “code difficulty” — one that isn’t posed on a test but rather a formidable real-world challenge that many people cannot overcome.

The CodeGen Approach: Make Coding as Simple as Speaking

CodeGen makes programming as simple as talking, which is the great promise of conversational AI programming. The conversational AI programming implementation offers a glimpse into the future of democratizing software engineering for the general public. An “AI assistant” converts English descriptions into usable Python code – allowing anyone to write code, even if they have no programming experience. This conversational paradigm is enabled by the underlying language model, CodeGen, which will be made open source to speed up research.

CodeGen’s Two Faces: For Non-Coders and Programmers alike

While anyone, including non-coders, can use CodeGen to create the software from scratch, it can benefit in some circumstances to have some programming experience. Knowing coding ideas, for example, can help one come up with follow-up commands to offer CodeGen and suggest new directions to go down while writing the code (like using hash maps or recursion – or not using these techniques).

While the objective is to produce ideal programs for any problem by simply telling the computer what you want and not having to know how to code, the reality is that learning how to code can often assist CodeGen in finding a decent solution. This is especially true for more complicated situations, where having the user suggest various ways may assist the software in finding a working – or more efficient – solution. Even for seasoned programmers, CodeGen enables getting to a working solution faster and easier and allows rapid exploration of other approaches. In other words, CodeGen is advantageous to programmers of all levels.

Why Conversational AI Programming is Important: Societal Benefits and Impact

While programming is a valuable ability now, it will be a must in many tech positions in the coming decade. Every part of society requires more and more code, and these programs are becoming increasingly sophisticated. As a result, solutions like CodeGen (which help speed up the programming process while making it easier and more controllable) should play a key part in finishing increasingly huge coding projects and attracting a new generation of programmers to the field.

Conversational AI programming tools like CodeGen appear destined to become vital to our future, both at Salesforce and at other enterprises. But there’s another problem on the horizon: what will happen when future programming needs become so complicated that the talents required to produce them exceed human capabilities? Digital ecosystems are growing into systems with ever-increasing functional complexity, and the complexity of these systems may eventually exceed human ability to comprehend, let alone design, them. Soon there will be a point when projects require technology like conversational AI programming to construct the mega-complex software systems of the future — both on the vast scale needed and at a timescale that would be hard for a team of human programmers to achieve on their own. In other words, the fast-increasing code complexity necessitates a paradigm shift.

CodeGen democratizes programming, which has societal benefits

Salesforce’s objective includes developing technology that benefits all of society, not just the firm, and this research does just that. The conversational AI programming revolution that CodeGen represents will help many people. Here are a few illustrations –

Improving equality and fairness – Opening up coding to everyone – democratizing access to the world of programming – will assist in bringing traditionally underserved groups into the world of programming, resulting in increased job options and earnings for them.

Education/teaching/learning – Kids will learn to program interactively with the help of “AI teachers,” creating worlds and games in their language while learning and absorbing how to transfer their ideas into programming languages.

Engineers, data scientists, and developers are examples of software professionals. With the help of “AI assistants,” software engineers will be able to comprehend the architecture, design patterns, and essential routes of legacy systems. An artificial pair-programmer aids in the analysis of complexity in space and time, security vulnerabilities, design patterns, refactorings, and test generation.

Professionals who are not in the software industry – In collaboration with “AI analysts,” business analysts will integrate complex external data sources and systems, correlate and standardize data, undertake exploratory analysis, and illustrate discoveries.

In principle, democratizing coding should benefit society as a whole.

Conclusion

Conversational AI programming (coding by talking) flips the traditional notion of writing code for a machine on its head. Rather than needing a human to create code for a computer, the machine (automatic programming) generates code for the human through a dialogue between the two (conversational AI). CodeGen uses natural language to solve both simple and challenging issues. With little or no prior programming experience, most users can handle very straightforward coding tasks.

More challenging scenarios may necessitate a basic understanding of programming or computer science ideas to assist the system in its quest for a solution (i.e., working code that solves the stated problem). Even for seasoned programmers, CodeGen enables getting to a working solution faster and easier and allows rapid exploration of other approaches.

This innovative technique democratizes software development by allowing anyone to create apps with the help of an “AI helper” or “teacher” without having to learn to program in the traditional sense. Opening up coding to everybody will assist in bringing traditionally underserved populations into the programming industry, resulting in greater employment options and higher earnings for them.

Paper: https://arxiv.org/pdf/2203.13474.pdf

Github: https://github.com/salesforce/CodeGen

Reference: https://blog.salesforceairesearch.com/codegen/