Jump to content

AI/ML in Microsoft 2019

Posted on:April 30, 2019 at 02:00 AM

For over last couple of years Microsoft has invested a lot of time and effort into artificial intelligence/machine learning ecosystem. Currently the result can be considered as the first choice platform for enterprise solutions. In this article, I will present the key Microsoft AI/ML solutions available for developers currently.

Why choose Microsoft technologies at all?

Let’s start with “why” (ref. Simon Sinek). Microsoft provides a structured and stable platform. Totally different than hacker’s growing startups that may disappear next month. The platform is backed up by many software engineers around the world. It’s not only Microsoft employees who write the AI/ML code. Actually, each of us can contribute. This is yet another thing happening now - the ideas and solutions are automatically peer-reviewed! Last but not least - Microsoft is the first-choice partner for enterprise businesses. Active Directory, Office 365, sharepoint, technical support, Azure Cloud, competence certifications, and many more activities just speak for itself. The company will not disappear tomorrow. That’s for sure.

What AI/ML components Microsoft provides?

The list of solutions is very wide. Some of them can be used almost out of the box and others require little more academic/technical knowledge to get started.

Cognitive Services

This is a catalogue of services (25 so far and growing) exposed as API in Azure Cloud. The catalogue is divided into 5 categories: Vision, Speech, Language, Anomaly Detection and Search.

Here are interesting services (in my opinion ofc):

The full list of services is available here

Bot Service (chatbots)

Bot Service Framework is a chatbot framework. Below a case-study is visualized.

I had the pleasure to organize a Global AI/ML Bootcamp in Wroclaw (together with Michał Jankowski) where I conducted a BotFramework workshop

Currently BotFramework in version 4. It can be wired it with various channels like Facebook Messenger, Skype, Slack, Microsoft Teams, Telegram, text/SMS, Twilio, Cortana etc. Additionally, it can connect with Cognitive Services and add extra value to the user.

Language Understanding (LUIS) is one of the Cognitive Services deserving extra explanation when talking about Bot Service. LUIS has a concept of intent and sentiment. LUIS is available via API and e.g.: for such an input: “I want to call my HR rep.” it can return following response.

{
  "query": "I want to call my HR rep.",
  "topScoringIntent": {
    "intent": "HRContact",
    "score": 0.921233
  },
  "entities": [
    {
      "entity": "call",
      "type": "Contact Type",
      "startIndex": 10,
      "endIndex": 13,
      "score": 0.7615982
    }
  ]
}

You can read more about LUIS here

Machine Learning Studio (MLS)

Microsoft provides also an environment for more advanced users. Machine Learning Studio is a web-based IDE where data scientists can conduct experiments, edit notebooks (ipynb) and train models. It uses Jupyter notebooks. MLS support Python or R scripts.

Machine Learning Studio solution looks like following

Models trained with Machine Learning Studio are available only on Azure.

ML.NET

ML.NET is a machine learning framework for .NET developers. ML.NET is open source (https://github.com/dotnet/machinelearning) and backed by .NET Foundation. At the moment it’s in 1.0.0-preview version.

ML.NET has a simple development process: load data, transform data and train model. The trained model can be deployed on any device running .NET Core.

ML.NET is available as NuGet package and can be installed with standard NuGet install command:

Install-Package Microsoft.ML

Summary

As we can see from the post Microsoft in 2019 provides a robust platform for AI/ML development. With different and complementary approaches many of customer cases scenarios can be solved. Enterprise developers have now the AI/ML tools in their toolboxes.