July 17th, 2019

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

Cesar De la Torre
Principal Program Manager

We are excited to announce ML.NET 1.2 and updates to Model Builder and the CLI. ML.NET is an open-source and cross-platform machine learning framework for .NET developers. ML.NET also includes Model Builder (a simple UI tool for Visual Studio) and the ML.NET CLI (Command-line interface) to make it super easy to build custom Machine Learning (ML) models using Automated Machine Learning (AutoML).

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

The following are some of the key highlights in this update:

ML.NET Updates

ML.NET 1.2 is a backwards compatible release with no breaking changes so please update to get the latest changes.

General availability of TimeSeries support for forecasting and anomaly detection

Developers can use the Microsoft.ML.TimeSeries package for many scenarios such as: detecting spikes and changes in product sales using an anomaly detection model or creating sales forecasts which could be affected by seasonality and other time related context.

Learn more through these samples.

General availability of ML.NET packages to use TensorFlow and ONNX models

ML.NET has been designed as an extensible platform so that you can consume other popular ML models such as TensorFlow and ONNX models and have access to even more machine learning and deep learning scenarios, like image classification, object detection, and more.

Learn more through these code samples for Microsoft.ML.OnnxTransformer and Microsoft.ML.TensorFlow and the end-to-end ML.NET computer vision sample apps:

Easily integrate ML.NET models in web or serverless apps with Microsoft.Extensions.ML integration package (preview)

This package makes it easier to integrate loading ML.NET model for scoring in ASP.NET apps, Azure Functions and web services. Specifically, the package allows a developer to use Microsoft.Extensions.ML for loading the ML.NET model using Dependency Injection, and optimizing the model’s execution and performance in multi-threaded environments such as ASP.NET Core apps. Learn more here.

MLNet CLI updated to 0.14 (preview)

You can use the ML.NET CLI to automatically generate an ML.NET model and underlying C# code. You can run the ML.NET CLI on any command-prompt (Windows, Mac, or Linux).

You simply need to provide your own dataset and select the machine learning task you want to implement (such as classification or regression), and the CLI uses the AutoML engine to create model generation and deployment source code, as well as the binary model.

The CLI is updated to 0.14 addressing customer feedback.

Learn more about the CLI here:

Model Builder updates

ML.NET Model Builder provides an easy to understand visual interface to build, train, and deploy custom machine learning models.

Expanding support to .txt files and more delimiters for values

Users can now use .txt files for training the model. In the initial previews, Model Builder supported only .csv and .tsv files. Values can be separated by the following delimiters: space, comma, tab and semicolon.

No limits on training data size!

Based on popular request, we have removed the 1GB limit on the training data size. Developers can now upload files of any size.

Smart defaults for training time for large datasets

The default training time is now set based on the size of your data. It was 10 seconds before. This will allow Model Builder to find at least 1 model within that time.

Learn more about how long you should train for?

Improve model consumption experience

In the code generation step at the end of the model building process, Model Builder now also adds the ML.NET 1.2 NuGet package.

Update to ML.NET 1.2

Model Builder uses the latest version of ML.NET and the generated code will reference 1.2. In the earlier previews It was using ML.NET 1.0.

Customer feedback addressed

There were many issues fixed in this release. Learn more in the release notes.

Need help to go to production – Fill out this form!

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.

Try ML.NET and Model Builder today!

  • Get started with ML.NET here.
  • Get started with Model Builder here.

Summary

We are excited to release these updates for you and we look forward to seeing what you will build with ML.NET. If you have any questions or feedback, you can ask them here for ML.NET and Model Builder.

Your friends @ML.NET

Author

Cesar De la Torre
Principal Program Manager

Principal Program Manager at the Azure team.

4 comments

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

  • Hiroumi Nan

    Are you planning to make ImagenetData compatible with in-memory?

    • Cesar De la TorreMicrosoft employee Author

      What do you mean? Are you experiencing any issue with that scenario? 
      We support in-memory images in ML.NET since v1.0. You can see an example here:
      https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/end-to-end-apps/DeepLearning_ImageClassification_TensorFlow
      Not sure if you mean anything else when talking about "compatible with in-memory"?
      For further feedback on ML.NET you can also contact me directly at "cesardl at microsoft.com"
      Thanks,

      Read more
  • Mark Adamson

    Nice to see time series getting in there, I hope to have an experiment with this soon. One thing that jumps out from the samples is that it's very verbose for doing simple things. For example, just creating an input set from some fixed numbers can surely make use of a simple number array rather than:```var data = new List<TimeSeriesData>() {                        new TimeSeriesData(0),  ...

    Read more
    • Cesar De la TorreMicrosoft employee Author

      @Mark Adamson – Thanks Mark for the feedback, I just provided it to the team so we take it into account for upcoming versions. Please, while trying/experimenting with TIME SERIES, keep sending us feedback, probably better as ISSUES at the ML.NET repo (https://github.com/dotnet/machinelearning/issues) so we can track it down, ok? – Thanks a lot for your interest! 🙂