Code that accompanies this article can be downloaded here. Several months ago I wrote a series of articles about ML.NET. Back then ML.NET was at its infancy and I used 0.3 version to solve some real-world problems. One of my examples even ended up in the official ML.NET GitHub. However, guys at Microsoft decided to change the whole ML.NET API in version 0.6 making my articles somewhat outdated. Apart from that, we had two previews of .NET Core 3 in the last two months, which means it will be out soon-ish. ML.NET should be a part of .NET Core 3 release, so my assumption is that there won't be any ground-breaking changes in the API once again. This is why I decided to write another article on this topic and cover all the things once again, but using the new API. To be honest, changing from 0.3 ML.NET version to 0.10 ML.NET version (latest version) were not as straight-forward as I hoped so. Some of the things I don't like so much, others I adored.
This is the first in a series of articles on implementing Machine Learning scenarios in UWP apps. All of these are cross platform Open Source technologies, all of these are written in C#, all of these are free, and all of these can be used on the UWP platform, albeit with some -hopefully temporary- restrictions. Currently the large majority of the online samples on ML.NET are straightforward console apps. That's fine if want to learn the API, but we want to figure out how ML.NET behaves in a more hostile enterprise-ish environment – where calculations should not block the UI, data should be visualized in sexy graphs, and architectural constraints may apply. Machine learning is a data science technique that allows computers to use existing data to forecast future behaviors, outcomes, and trends.
In Build 2018, Microsoft introduced the preview of ML.NET (Machine Learning .NET) which is a cross platform, open source machine learning framework. Yes, now it's easy to develop our own Machine Learning application or develop a custom module using Machine Learning framework. ML.NET is a machine learning framework which was mainly developed for .NET developers. We can use C# or F# to develop ML.NET applications. ML.NET is an open source which can be run on Windows, Linux and macOS.
Today, coinciding with //BUILD 2019/ conference, we're thrilled by launching ML.NET 1.0 release! You can read the official ML.NET 1.0 release announcement Blog Post here and get started at the ML.NET site here. In this blog post I'm providing quite a few additional technical details along with my personal vision that you might find interesting, though. This is the first main milestone of a great journey in the open that started on May 2018 when we released ML.NET 0.1 as open source. Since then we've been releasing monthly, 12 preview releases plus this final 1.0 release, as shown in the roadmap below: The diagram above shows the the development in the open of ML.NET, however, as explained below, ML.NET has been internally used by Microsoft for quite a few years and used by other Microsoft products such as Bing Ads, Office, Windows, Azure, etc. ML.NET is an open-source and cross-platform machine learning framework (Windows, Linux, macOS), created by Microsoft, for .NET developers.
Ahmed, Zeeshan, Amizadeh, Saeed, Bilenko, Mikhail, Carr, Rogan, Chin, Wei-Sheng, Dekel, Yael, Dupre, Xavier, Eksarevskiy, Vadim, Erhardt, Eric, Eseanu, Costin, Filipi, Senja, Finley, Tom, Goswami, Abhishek, Hoover, Monte, Inglis, Scott, Interlandi, Matteo, Katzenberger, Shon, Kazmi, Najeeb, Krivosheev, Gleb, Luferenko, Pete, Matantsev, Ivan, Matusevych, Sergiy, Moradi, Shahab, Nazirov, Gani, Ormont, Justin, Oshri, Gal, Pagnoni, Artidoro, Parmar, Jignesh, Roy, Prabhat, Shah, Sarthak, Siddiqui, Mohammad Zeeshan, Weimer, Markus, Zahirazami, Shauheen, Zhu, Yiwen
Machine Learning is transitioning from an art and science into a technology available to every developer. In the near future, every application on every platform will incorporate trained models to encode data-based decisions that would be impossible for developers to author. This presents a significant engineering challenge, since currently data science and modeling are largely decoupled from standard software development processes. This separation makes incorporating machine learning capabilities inside applications unnecessarily costly and difficult, and furthermore discourage developers from embracing ML in first place. In this paper we present ML .NET, a framework developed at Microsoft over the last decade in response to the challenge of making it easy to ship machine learning models in large software applications. We present its architecture, and illuminate the application demands that shaped it. Specifically, we introduce DataView, the core data abstraction of ML .NET which allows it to capture full predictive pipelines efficiently and consistently across training and inference lifecycles. We close the paper with a surprisingly favorable performance study of ML .NET compared to more recent entrants, and a discussion of some lessons learned.