2. The Microsoft AI Platform – Building Intelligent Apps with Cognitive APIs

Chapter 2. The Microsoft AI Platform

Microsoft uses AI broadly in its own products and services, and makes its learnings, techniques, and products available to developers through a variety of services, infrastructure, and tools. It all starts with Microsoft Research, which has been navigating the cutting edge of AI for over 25 years. Every day, thousands of researchers explore new ideas, tackle unsolved challenges, and develop innovative techniques that repeatedly set new records. These records range from designing ResNet (the algorithm that now underpins many image recognition systems) to matching human abilities in translation and in understanding images, speech, text, and questions.

The techniques developed by Microsoft Research already drive features in Microsoft tools like Windows and Office. These AI-powered features range from protecting your account from attack to suggesting the best layout for your PowerPoint slides. The techniques and services are also made available as tools for all types of users, ranging from data scientists looking to boost their productivity or take advantage of Azure’s cloud scale to developers who want to quickly infuse intelligent capabilities into their solutions.

Microsoft has also added AI into familiar products. For example, SQL Server Machine Learning Services offers an analytics engine that supports R and Python libraries inside SQL Server so developers can use machine learning like any other database functions they’re writing. Running machine learning models where the data resides delivers the lowest latency and highest performance because the data doesn’t have to move around.

Figure 2-1 summarizes the machine learning tools available to developers and data scientists in Azure. Microsoft provides a comprehensive set of capabilities, from the hardware to SaaS offerings.

Figure 2-1. A high-level overview of Microsoft’s cloud AI offerings

The aim of the Microsoft AI Platform is to bring AI to every developer, empowering developers to innovate and accelerate with a variety of services, infrastructure, and tools. From Azure Cognitive Services to Azure Machine Learning (AML) for building custom AI models, the Microsoft AI Platform meets developers where they are and lets them use the tool and language of their choice. To help you get started, you can leverage the resources that are available on the Azure AI website. In the next section, we explore how you can develop your next intelligent application using the Microsoft AI Platform.

Machine Learning Services in Azure

Microsoft offers several machine learning cloud services. Each product targets a different level of expertise and desired way of working. The first choice you have to make is whether you are interested in building your own model or prefer to leverage prebuilt ones provided by Microsoft. In this report, we assume you want to use prebuilt models.

For highly custom use cases, you may need more control over the models. For these scenarios, developers should look at the Azure Machine Learning services. AML is a managed cloud service that allows you to train, deploy, and manage models in the cloud or on edge devices, using Python and tools like Jupyter notebooks. You can even deploy some TensorFlow image classification and recognition models (using a variety of deep neural networks) to Microsoft’s Project Brainwave FPGA hardware in Azure for inference and training, which offers high-scale throughput and low latency. Using 800 FPGAs on Azure, Microsoft was able to process 20 TB of images in just over 10 minutes, generating over 400,000 inferences a second with just 1.8 milliseconds latency—enough images to analyze the entire continental United States with a 1-meter-per-pixel resolution.

The flowchart in Figure 2-2 is a useful tool for deciding which products to use within Azure Cognitive Services.

Figure 2-2. A flowchart for deciding which Azure services to use for your use case

Cloud services can also be a great way for organizations to take advantage of the latest breakthroughs, using products that require little or no coding. For example, a few years ago, Microsoft Research created an AI support agent that handles support requests for Microsoft. This agent resolves up to 40% of these interactions without needing to involve a human. The same agent is now available as a service in Dynamics 365 and is used by companies like HP and Macy’s.

For organizations that do not have a team of developers but are looking to apply intelligence to their business processes, the Microsoft Power Platform provides a set of low-code tools such as Power BI, PowerApps, and Microsoft Flow that let you quickly and easily analyze data and act on it through custom applications and automated business processes. Many of these tools contain integrations with the Cognitive Services and other machine learning tools.

Power BI, for example, includes a data preparation workflow and can now use automated machine learning from the Azure Machine Learning service to allow business analysts to train, validate, and call binary prediction, classification, and regression models to analyze their data. Power BI automatically finds the most relevant features to include in the model, selects the right algorithm, tunes the model, and generates a report explaining the performance and contributing factors.

One of Microsoft’s newest products, AI Builder, provides a low-code way for users to train, build, and deploy their own models within a business process without writing a single line of code. Using a simple wizard-like experience, users can perform binary classification, text classification, object detection, and data extraction from forms.