Google AI Team Explain How ML and Semantic Engines Improve Developer Productivity
Google AI researchers have come up with a novel code completion algorithm that works in sync with Semantic Engines (SE) in integrated development environments (IDEs).
Machine learning based Semantic Engines could be the future of software development in the coming months. The business value of AI could reach $5.1 billion by 2025. Software companies are shifting their focus from big data to custom software development tools to meet the growing demands of their customers. There are many reasons why software development firms are looking to adopt ML-based Semantic Engines and other AI capabilities. Let’s discuss them in this article.
AI’s role in software development remains a very strong market for the modern day developers and Machine Learning (ML) engineers. As the complexity of codes grows, DevOps teams are exploring smarter ways to manage the software development life cycles using a bunch of ML algorithms. Code complexity creates various challenges for the development team, such as lack of visibility into software outcomes and its effectiveness in solving problems for which it is created; limitations in UX upgrades; and mitigating quality problems in time. These challenges delay the project life cycles resulting in inflated cost of software development. According to Deloitte, US organizations lost $319 billion due to poor software quality! AI-assisted software development, therefore, has emerged as the single-biggest opportunity for developers to scale their development and utilize ML to enhance coding speed and accuracy. Google AI researchers showed how this can be done at their testing lab.
Recently, Google AI researchers have come up with a novel code completion algorithm that works in sync with Semantic Engines (SE) in integrated development environments (IDEs). The researchers applied the outcomes of applying ML and Semantic engines to existing Large Language Models (LLMs) such as PaLM and CodeX to analyze how these impact the overall productivity and accuracy levels of the developers working in the IDEs.
What are Semantic Engines (SEs)?
Semantic Engines are automated ML-based programming language support models that enable developers to complete codes, or highlight syntax based on semantic search principles. ML-based SEs can do different functions based on programming demands. For instance, they can be used for “search and replace”, highlight anomalies in the coding lines, and integrate suggestions from compilers and interpreters in IDEs. This automation in software development with PaLM and CodeX has allowed GitHub’s Copilot to grow and flourish in the AI space. But, now Google AI team wants to go ahead with providing software developers more power and authority in ML-based Semantic Engine in IDEs. And, one reason for doing so is to enhance the overall productivity of development models with the Language Server Protocol (LSP).
Google does it by using hybrid Transformer — a Recurrent Neural Network (RNN) architecture specifically built to take software development “beyond computational performance.” The latest ML and SE combination highlights how Transformer architecture could deliver a higher accuracy through a highly-advanced self-attention mechanism.
Auto-completion using Semantic Engines and Transformer RNN
Google’s internal developers and ML engineers are the target users of the newly developed ML+SE Transformer-based auto code completion model. The Google developers would benefit from having this ML code completion model in multiple ways which include authenticating and re-ranking SE single token suggestions and multi-line continuity. Google AI team has reported significant reduction in the coding iteration time and context switches, which directly indicate how further involvement of Semantic Engines in IDEs could enhance developer productivity using ML-generated completion suggestions.
Google AI has trained its Transformer RNN architecture to mimic coding sequences on eight different programming languages, such as:
Transformer with ML and SE works with Google’s version control system called ‘monorepo’, which delivers equal performance for all the programming languages. This not only improves the ease of reuse and code completion but also eliminates the need to build different ML RNNs for semantic search for each programming platform.
As per Google AI team. semantic engines were able to identify and filter out 80 percent of the non-compile-able suggestions on Go. With time, as trust developed, semantic checking accuracy or acceptance rate improved by 1.9 times in six weeks for single-line code completion. In comparison to languages for which there was non semantic checking using ML-based semantic engines, acceptance rate increased by only 1.3 times.
The Future of ML-based Software Development with Semantic Engines
Many companies are using AI or advocating the use of AI for software development.
With more research going into developing advanced AI applications specifically for code completion and programming language compatibility in IDEs, we can expect ML-based software development industry to grow exponentially by 2025. According to Gartner, IT leaders and CIOs should focus on mastering the technology to build competitive organization. Within IT teams, software developers must embrace the advantages of AI and machine learning to automate project management for faster, accurate and agile deliveries. No doubt, the budgets will also explode by bringing in AI at the center of all DevOps.
Source: Google AI blog
If you have an interesting ML project brewing in your AI lab, please write to email@example.com