Announcing ML.NET 1.1 and Model Builder updates (Machine Learning for .NET)

Cesar De la Torre

alt text

ML.NET is an open-source and cross-platform machine learning framework (Windows, Linux, macOS) for .NET developers.

ML.NET offers Model Builder Model Builder (a simple UI tool for Visual Studio) and CLI to make it super easy to build custom ML Models using AutoML.

Using ML.NET, developers can leverage their existing tools and skillsets to develop and infuse custom AI into their applications by creating custom machine learning models for common scenarios like Sentiment Analysis, Recommendation, Image Classification and more!.

Today we’re announcing ML.NET 1.1 which includes updates for ML.NET (v1.0 was released on May 2019) and Model Builder for Visual Studio.

Following are the key highlights:

ML.NET updates

  • Added support for in-memory ‘image type’ in IDataview: In previous versions of ML.NET whenever you used images in a model (such as when scoring a TensorFlow or ONNX model using images) you needed to load the images from files placed on a drive by specifying file paths. In ML.NET 1.1 you can now load in-memory images and process them directly.

  • New Anomaly Detection algorithm (in preview): Added a new Anomaly Detection algorithm named SrCnnAnomalyDetection to the Time Series NuGet package. This algorithm based on a Super-Resolution Deep Convolutional Network. One of the advantages of this algorithm is that it does not require any prior training. This contribution comes from the Azure Anomaly Detector team.

    For further learning see this sample code for anomaly detection

  • New Time Series Forecasting components (in preview): This new feature added to the Time Series NuGet package allows you to implement a time series forecasting model based on Singular Spectrum Analysis(SSA). It is named in ML.NET as AdaptiveSingularSpectrumSequenceModeler. This type of time series forecasting prediction is very useful when your data has some kind of periodic component where events have a causal relationship and they happen (or miss to happen) in some point of time. For example, sales forecasts impacted by different seassons (Holiday-season, sales timeframe, weekends, etc.) or any other type of data where the time component is important.

    For further learning see this sample code for forecasting

  • Additional enhancements and remarks:

    • Upgrade internal TensorFlow version from 1.12.0 to 1.13.1
    • Microsoft.ML.TensorFlow NuGet package has been upgraded from 0.12 to 0.13 (preview).
  • Bug fixing: For further learning on bug fixes released on v1.1 go to the ML.NET v1.1 Release Notes

Model Builder updates

This release of Model Builder adds support for a new scenario and address many customer reported issues.

alt text

  • New Issue Classification Template: This scenario enables a user to add support for classifying tabular data into many classes. This template uses multi-class classification which can be used for classifying data into 3+ categories. E.g You can use this template for predicting GitHub issues, customer support ticket routing, classifying emails into different categories and many more scenarios.

  • Improve Evaluate step: Evaluate step now shows more correct information about the top models explored. This was the most commonly requested fix reported by customers.

  • Improve code generation step: Improve instructions for easily consuming generated code by referring to the project names.

  • Address customer feedback: This release also address many customer reported issues around installation errors, usability feedback and stability improvements and more.

Planning to go to production?

alt text

If you are using ML.NET in your app and looking to go into production, you can talk to an engineer on the ML.NET team to:

Fill out this form and leave your contact information at the end if you’d like someone from the ML.NET team to contact you.

Get started with ML.NET and Model Builder for Visual Studio

alt text

Get started with ML.NET here.

Get started with Model Builder here.

Next, going further explore some other resources:

Thanks and happy coding with ML.NET!

The ML.NET Team.

This blog was authored by Cesar de la Torre, Pranav Rastogi plus additional contributions of the ML.NET team