Upgrading from IntelliCode custom team completions models to deep learning.

Aaron Yim

TL;DR – A deep learning model will now help provide starred completions for custom methods in the IntelliSense list. All users of Visual Studio 2022 will receive this improvement automatically.

With original IntelliCode, a custom trained model was previously useful for ranking custom methods in a user’s code.

When IntelliCode first shipped in Visual Studio, it used a simple Markov-chain model to rank methods in the IntelliSense list. This model couldn’t rank custom methods that are specific to your code, so we enabled developers to train repository-associated team & personal models to rank custom methods specific to your code in the IntelliSense list.

Image Picture1

Deep learning enables IntelliCode in Visual Studio 2022 to rank custom methods in the IntelliSense list out of the box.

Since the Visual Studio 2022 release (version 17.0+), custom methods are ranked with the help of a neural encoder model. This deep learning model ranks candidates provided by static analyzer to provide the following benefits to developers:

  • Provide completions even on unseen libraries – for instance, private user code which is not present in the training set.
  • Completions tailored to your code – all without the need to train a personal / repository associated team completions model.
  • All your code stays local – the model runs right on your computer, so there’s no need to transmit code to a remote server for custom model training. This is enabled by our machine learning system design, which led to dramatically reduced memory footprint and improved inference speed.

In fact, the deep learning model provides better suggestions over time by observing the following context:

  • The specific programming language being used, libraries and frameworks, and other contextual information.
  • The user’s editing history to dynamically update the ranking model based on the user’s recent code changes.
Real world telemetry shows that the deep learning model provides a better IntelliSense experience and improved productivity for developers in Visual Studio.

While users were still able to access the repository-associated team & personal models in Visual Studio 2022, the team wanted to conclusively prove that the deep learning model was better even for custom code.

With the confidence from telemetry in hand, the option to train a custom model is now disabled.

All Visual Studio 2022 users will automatically switchover to using the improved deep learning model – including those who had previously trained custom repository-associated team & personal models.

Thanks for being a part of the IntelliCode journey.

2 comments

Discussion is closed. Login to edit/delete existing comments.

  • John Munro 1

    How can we tell when we’ve been switched over to the new version?

  • Lasse Hansen 0

    I have never understood why code completion was so bad in VS. I was appalled back when I switched from Delphi 15 years ago. It’s still atrocious. Is AI going to help?

    What I’ve always wanted and expected is a filtered result ordered and colored by the distance (namespace-wise) to current code.

Feedback usabilla icon