At the Ignite 2019, Microsoft shared a few improvements to the Visual Studio IntelliCode, Microsoft’s tool for AI-assisted coding that offers intelligent suggestions to improve code quality and productivity.
Amanda Silver, a director of Microsoft’s developer division, in her official blog post writes, “At Microsoft Ignite, we showed a vision of how AI can be applied to developer tools. After talking with thousands of developers over the last couple years, we found that the most highly effective assistance can only come from one source: the collective knowledge of the open source, GitHub community.”
Latest improvements in Microsoft’s IntelliCode
Whole-line code completions and AI-assisted suggestions
IntelliCode provides whole-line code completion suggestions IntelliCode extends the GPT-2 transformer language model to learn about programming languages and coding patterns.
OpenAI-generated GPT model architecture has the ability to generate conditional synthetic text examples without needing domain-specific training datasets. For initial language-specific base models, the team adopted an unsupervised learning approach that learns from over 3000 top GitHub repositories. The base model then extracts statistical coding patterns and learns the intricacies of programming languages from GitHub repos to assist developers in their coding. Based on the code context, as the user types, IntelliCode uses semantic information and sourced patterns to predict the most likely completion in-line with the user’s code.
IntelliCode has also extended machine-learning model training capabilities beyond the initial base model to enable teams to train their own team completions.
AI-assisted refactoring detection
IntelliCode suggests code changes in the IDE and also locally synthesizes, on-demand, edit scripts from any set of repetitive pattern changes. IntelliCode saves developers a lot of time with a new AI technology called program synthesis or programming-by-examples (PBE).
PBE has been developed at Microsoft by the PROSE team and has been applied to various products including Flash Fill in Excel and webpage table extraction in PowerBI. “IntelliCode advances the state-of-the-art in PBE by allowing patterns to be learned from noisy traces as opposed to explicitly provided examples, without any additional steps on your part,” Silver writes.
Talking about security, Silver says, “our PROSE-based models work entirely locally, so your code never leaves your machine.” She also said that over the past few months, the team has used unsupervised machine learning techniques to create a model that is predictive for Python.
Silver also told VentureBeat, “So the result is that as you’re coding Python, it actually feels more like the editing experience that you might get from a statically typed programming language — without actually having to make Python statically typed. And so as you type, you get statement completion for APIs and you can get argument completion that’s based on the context of the code that you’ve written thus far.”
Many users are impressed with the improvements in IntelliCode. A user tweeted, “Training ML against repos is super clever.”
Training ML against repos is super clever. Everyone thought that owning GitHub was going to be used for evil, but this so awesome!
— Nathaniel C Avery (@nathaniel_avery) November 5, 2019
This is so freakin cool! 🙂
Do you know if MS is doing any work on how to use this approach aimed at smoothing the learning curve for beginning developers — eg where it would not only provide suggestions but help you understand why?
— Anders Schneiderman (@raschneiderman) November 5, 2019
To know more about improvements in IntelliCode, in detail, read Microsoft’s official blog post.