Machine learning for .NET devs: ML.NET goes GA
ZDNet’s Mary Jo Foley handicaps Microsoft’s vision to lead with its three core clouds: Azure, Microsoft 365 and gaming. Here’s the plan and other goodies developers will get. Read more: https://zd.net/2Wtzlh5
It’s all well and good to deliver successive machine learning (ML) platforms for data scientists, but if we don’t bring business developers on board, ML and Artificial Intelligence (AI) just won’t become mainstream in the Enterprise. Microsoft, given its contemporary focus on AI, and its historical, sustained focus on developers, perhaps feels this issue most acutely. And, so, with Microsoft’s dev-focused Build conference kicking off in Seattle today, it’s appropriate that the company would announce the general availability of its ML.NET framework.
You probably know that .NET is Microsoft’s Enterprise software development platform, just a few years shy of completing its second decade. You might not know that with a flavor of .NET called .NET Core, the platform is now open source and works across macOS and Linux, as well as Microsoft’s own Windows operating system. ML.NET is similarly open source and cross-platform, and it brings the ML goodies home to .NET developers.
Instead of glibly telling .NET developers to go learn Python, Microsoft is letting them know that they can now do machine learning work in the more familiar surroundings of the mainstream C# language. ML.NET makes this possible, and Microsoft has a GitHub repo with an array of samples to help .NET developers see how.
Developers can work directly with the ML.NET application programming interface (API) or its perhaps more convenient command line interface (CLI). Under the hood, ML.NET leverages its own set of ML algorithms (based on ML technology used internally at Microsoft for many years) as well as data-types, and provides extensions supporting the popular TensorFlow deep learning framework, among others. It also provides support for the ONNX cross-framework standard for AI model deployment.
AutoML and the Model Builder
Microsoft’s own Automated Machine Learning (AutoML) can be used to select the appropriate ML algorithm and accompanying configuration settings known as hyperparameters, simply by supplying training/test data and identifying which column is the one whose values should be predicted. AutoML can be used from the ML.NET CLI, and its API.
But it’s really the Visual Studio Model Builder extension — shown in the figure at the top of this post and being launched today in preview — where Microsoft is making an impressive play. Model Builder lets developers pick a scenario, then identity their dataset and target column (label) within it.
Model Builder will then, according to Microsoft, “quickly iterate over many models and featurization pipelines to find you the best performing model.” It will also generate model training and consumption code for the best performing model, making short work of embedding AI in custom software.
Easy as 1-2-3?
Redmond’s goal is to make machine learning as commonplace in Enterprise applications as database access is now, and just as easy to add. It’s as if the team has made “right-click, add AI” its mantra.
For a while, perhaps, that mantra will remain aspirational. But it’s a realistic goal. While data science isn’t trivial, there’s a lot of applied data science that can be partially or fully automated. There are also parts of AI work that are in any case rote and tedious. Data scientists shouldn’t have to do that work manually, and their customers and clients shouldn’t have to pay them to.
What’s the scenario?
Microsoft’s AutoML presently caters to ML scenarios involving classification and regression. Meanwhile, the non-AutoML side of ML.NET targets scenarios including sentiment analysis, issue classification, forecasting, recommendations, fraud detection and image classification, among others. Eventually, AutoML will catch up and address most, if not all, of those scenarios as well. And Model Builder will make it convenient for .NET developers to take advantage of it.
(Note the Model Builder extension is, for now, available for the full Visual Studio IDE product for Windows, and not Visual Studio Code or Visual Studio for Mac)
Bear in mind that Microsoft has a number of AI/ML properties beyond ML.NET. In the cloud, there’s Azure Machine Learning, Cognitive Services, Azure Databricks and the Spark and ML Services cluster type on HDInsight. On-premises, there’s SQL Server Machine Learning Services as well as miscellaneous technologies like the Cognitive Toolkit.
Microsoft will need to rationalize that portfolio of AI/ML technologies and it may well be that its AutoML technology will be the uniter, surfacing as a feature across these various products and services. For the good of its ecosystem, Microsoft should expedite creation of this union. Today’s ML.NET announcements seem a good sign that it’s doing just that.