Hands-On Machine Learning with Azure - Thomas K Abraham - E-Book

Hands-On Machine Learning with Azure E-Book

Thomas K Abraham

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Implementing Machine learning (ML) and Artificial Intelligence (AI) in the cloud had not been possible earlier due to the lack of processing power and storage. However, Azure has created ML and AI services that are easy to implement in the cloud. Hands-On Machine Learning with Azure teaches you how to perform advanced ML projects in the cloud in a cost-effective way.
The book begins by covering the benefits of ML and AI in the cloud. You will then explore Microsoft’s Team Data Science Process to establish a repeatable process for successful AI development and implementation. You will also gain an understanding of AI technologies available in Azure and the Cognitive Services APIs to integrate them into bot applications. This book lets you explore prebuilt templates with Azure Machine Learning Studio and build a model using canned algorithms that can be deployed as web services. The book then takes you through a preconfigured series of virtual machines in Azure targeted at AI development scenarios. You will get to grips with the ML Server and its capabilities in SQL and HDInsight. In the concluding chapters, you’ll integrate patterns with other non-AI services in Azure.
By the end of this book, you will be fully equipped to implement smart cognitive actions in your models.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 295

Veröffentlichungsjahr: 2018

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Hands-On Machine Learning with Azure
Build powerful models with cognitive machine learning and artificial intelligence
Thomas K Abraham
Parashar Shah
Jen Stirrup
Lauri Lehman
Anindita Basak
BIRMINGHAM - MUMBAI

Hands-On Machine Learning with Azure

Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Commissioning Editor: Sunith ShettyAcquisition Editor: Joshua NadarContent Development Editor: Karan ThakkarTechnical Editor: Dinesh PawarCopy Editor: Safis EditorProject Coordinator: Nidhi JoshiProofreader: Safis EditingIndexer: Pratik ShirodkarGraphics:Jisha ChirayilProduction Coordinator:Deepika Naik

First published: October 2018

Production reference: 1311018

Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.

ISBN 978-1-78913-195-6

www.packtpub.com

mapt.io

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.

Why subscribe?

Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

Packt.com

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.

At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.

Contributors

About the authors

Thomas K Abrahamis a cloud solution architect (advanced analytics and AI) at Microsoft in the South Central Region of the USA. Since January 2016, he's been assisting organizations in leveraging technologies such as SQL, Spark, Hadoop, NoSQL, BI, and AI on Azure. Prior to that, Thomas spent 10 years in Ecolab, where he designed algorithms for IoT devices and built solutions for anomaly detection. In the oil and gas division, he designed and built customer-facing analytics solutions for multiple super majors. His work was focused on preventing equipment failure by modeling corrosion, scale, and other stresses. He has a PhD in Chemical Engineering from The Ohio State University in 2005. His thesis focused on the use of nonlinear optimization with reaction models.

I would like to thank my wife, Dr. Anita Joy-Thomas, for being patient and loving while I hid out in the basement to write these chapters, my children, Rebecca and Matthew, for their love, and my parents and family members, who raised and supported me. I would also like to thank my friends and colleagues, especially those who gave me opportunities and trusted in me at Microsoft and Ecolab, and finally my advisor, Dr. Martin Feinberg, who taught me how to write and think with the highest technical rigor.

Parashar Shah is a Senior Program Manager in the Azure Machine Learning platform team. Currently, he works on making Azure Machine Learning services the best place to do e2e machine learning for building custom AI solutions using big data. Previously at Microsoft, he has been a Data Scientist and a Data Solutions Architect in various Cloud and AI teams.

Prior to joining Microsoft, Parashar worked at Nokia Networks as a Solutions Architect & Product Manager building customer experience analytics solutions for global telcos. He also co-founded a carpooling startup, which helped employees carpool safely. He has 10+ years of global work experience. He is an alum of Indian Institute of Management, Bangalore and Gujarat University.

I would like to thank my mom, Nita, my dad, Dr. Mahendra, and my sister, Vidhi, for their unconditional love and support throughout my life. I am thankful to my co-workers at Microsoft for building our awesome cloud and AI offerings. I am thankful to Kevin Walker for the advanced analytics-related opportunities afforded to me when at Alcatel-Lucent. I would like to thank my teachers who, over the years, taught me how to learn. And finally, thanks to my buddies– Ritu, Dhaval, Nikhil, Dhruvit, Arun, Pradip, Subijay, Shamit, Naufal, Dharmesh, and Vicky for their awesome friendship.

Jen Stirrup is a data strategist and technologist, a Microsoft Most Valuable Professional (MVP), and a Microsoft Regional Director, a tech community advocate, a public speaker and blogger, a published author, and a keynote speaker. Jen is the founder of a boutique consultancy based in the UK, Data Relish, which focuses on delivering successful business intelligence and artificial intelligence solutions that add real value to customers worldwide. She has featured on the BBC as a guest expert on topics relating to data.

Lauri Lehmanis a data scientist who is focused on machine learning tools in Azure. He helps customers to design and implement machine learning solutions in the cloud. He works for the software consultancy company, Zure, based in Helsinki, Finland. For the past 4 years, Lauri has specialized in data and machine learning in Azure. He has worked on many machine learning projects, developing solutions for demand estimation, text analytics, and image recognition, for example. Lauri has previously worked as an academic researcher in theoretical physics, after obtaining his PhD on topological quantum walks. He still likes to follow the progress of modern physics and is eagerly a waiting the era of quantum machine learning!

I would like to thank my colleague, Karl Ots, for the opportunity to contribute to this book. I also want to thank all my colleagues for creating an awesome environment in which to work !

Anindita Basakworks as a cloud solution architect in data analytics and AI platforms and has been working with Microsoft Azure from its inception. With over a decade of experience, she helps enterprises to enable their digital transformation journey empowered with cloud, data, and AI. She has worked with various teams at Microsoft as FTE in the role of Azure Development Support Engineer, Pro-Direct Delivery Manager, and Technical Consultant. She recently co-authored the bookStream Analytics with Microsoft Azure,and was a technical reviewer for various technologies, including data-intensive applications, Azure HDInsigt, SQL Server BI, IoT, and Decision Science for Packt. She has also authored two video courses onAzure Stream Analyticsfrom Packt.

I'd like to thank to my family for their encouragement and my friend, Ramakrishna, for his support while writing this book. I could not have reached my goal without your contributions.

About the reviewer

Florian Klaffenbach is currently working as a technology solutions professional at Microsoft. He a well-known expert when it comes to hybrid cloud scenarios, cloud connectivity, and cloud environment optimization. Before he started at Microsoft, he worked at several companies in different roles; as a technical community manager and a solution expert at Dell, and as solutions architect at CGI Germany. He is also one of Packt's authors and has worked on books such as Implementing Azure Solutions, First and Second Edition, and Multicloud for Architect. He spends his free time with his wife, who is currently awaiting their second child, and his little boy.

Packt is searching for authors like you

If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.

Table of Contents

Title Page

Copyright and Credits

Hands-On Machine Learning with Azure

Packt Upsell

Why subscribe?

Packt.com

Contributors

About the authors

About the reviewer

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files

Download the color images

Conventions used

Get in touch

Reviews

AI Cloud Foundations

The importance of artificial intelligence

The emergence of the cloud

Essential cloud components for AI

The Microsoft cloud – Azure

Choosing AI tools on Azure

Cognitive Services/bots

Azure Machine Learning Studio

ML Server

Azure ML Services

Azure Databricks

Summary

Data Science Process

TDSP stages

Business understanding

Deliverable

Data acquisition and understanding

Deliverable

Modeling

Deliverable

Deployment

Deliverable

Customer acceptance

Deliverable

Tools for TDSP

IDEAR tool for R

Automated modeling and reporting (AMAR) in R

Summary

Cognitive Services

Cognitive Services for Vision APIs

The Computer Vision API

Face API

Cognitive Services for Language APIs

Text Analytics

Cognitive Services for Speech APIs

Speech to Text

Cognitive Services for Knowledge APIs

QnA Maker

Cognitive Services for Search APIs

Bing Visual Search

Summary

Reference

Bot Framework

What is a bot?

Bot Builder SDK

Bot Framework

QnA Maker

Bot Service

Creating a bot with Bot Service

LUIS application

Summary

Azure Machine Learning Studio

Deploying an Azure AI Gallery template

Building an experiment

Importing and preprocessing data

Choosing and configuring algorithms

Feature selection

Comparing models and parameters

Deploying a model as a web service

Creating a predictive experiment

Deploying and testing a web service

Summary

Scalable Computing for Data Science

Different scalable compute options in Azure

Introduction to DSVMs

Provisioning a DSVM

DLVM

Batch AI service

Provisioning a Batch AI service

ACI

AKS

Summary

Machine Learning Server

What is Microsoft ML Server?

How to get started with Microsoft ML Server

Configuring the DSVM

Machine learning with Python

Getting started with Python

Set up your Python environment in Visual Studio

Writing your own code with Python in Microsoft ML Server

Walk-through: reading data in and out in Microsoft ML Server

Introducing regression with Python in Microsoft ML Server

More data visualization charts in Python and the Microsoft Machine Learning service

Regression code walk-through with Python and Microsoft ML Server

Analyzing results in machine learning models

Measuring the fit of the model

Cross validation

Variance and bias

Summary

HDInsight

R with HDInsight

Getting started with Azure HDInsight and ML services

Setup and configuration of HDInsight

Basic configuration of HDInsight

Storage options for Azure HDInsight

Connect to the HDInsight cluster using SSH

Accessing Microsoft ML Services on Azure HDInsight

HDInsight and data analytics with R

How do Azure Data Factory and HDInsight interact?

Running queries on Azure HDInsight with ML Services

RevoScaleR in Azure

How can we read data into HDInsight using ML Services?

What kind of analyzes can we do with R in ML Services on HDinsight?

Reading data from files into Azure HDInsight ML Services

Converting text and CSV files to the preferred XDF format

Using the new XDF file in Microsoft ML Services

XDF versus flat text files

Reading data from SQL Server

Connecting to a SQL Server database

Extracting data from a table retrieving data from Microsoft SQL Server

Installing R packages on Microsoft ML Services

Analyzing and summarizing data in Microsoft ML Services

Cross tabs and univariate statistics

Working with cubes of data

Grouping data using Microsoft ML Server and R

Computing quantiles with R in Microsoft ML Server

Logistic regression in Microsoft ML Services

Predicting values with the model

Visualizing data

Creating histograms

Creating line plots

Enriching data for analysis

rxDataSteps

Summary

Machine Learning with Spark

Machine learning with Azure Databricks

What challenges is Databricks trying to solve?

Getting started with Apache Spark and Azure Databricks

Creating a cluster

Create a Databricks Notebook

Using SQL in Azure Databricks

Displaying data

Machine Learning with HDInsight

What is Spark?

HDInsight and Spark

The YARN operation system in Apache Spark

Working with data in a Spark environment

Using Jupyter Notebooks

Configuring the data science virtual machine

Running Spark MLib commands in Jupyter

Data ingestion

Data exploration

Feature engineering in Spark

Using Spark for prediction

Loading a pipeline model and evaluating the test data

Setting up an HDInsight cluster with Spark

Provisioning an HDInsight cluster

Summary

Further references

Building Deep Learning Solutions

What is deep learning?

Differences between traditional machine learning and deep learning

Common Deep Learning Neural Networks (DNNs)

Overview of the Azure Notebook service

Pivot table formation with Azure Notebook

Overview of Azure Deep Learning Virtual Machine toolkits

Open source deep learning frameworks

In-depth analysis of Microsoft deep learning tools

Overview of Microsoft CNTK

The architecture building blocks of CNTK

Concepts on CNTK

Developing and deploying CNTK layers in the Azure Deep Learning VM to implement a neural network

CNTK inputs and variables declaration

CNTK variables section

Data readers for CNTK

Operations in CNTK

Layers of the Microsoft CNTK

CNTK layer provision helpers

CNTK modules for losses and error handling

Input training models in CNTK

Instantiating the Trainer object

Defining the training session object

The CNTK testing model

Deploying CNTK tools by using Azure Containers (Docker)

Keras as a backend for Microsoft CNTK

An overview of the Microsoft Machine Learning Library for Apache Spark (MMLSpark)

Environment setup for MMLSpark

Execution of MMLSpark notebooks using a Docker container

Azure HDInsight Spark cluster setup for MMLSpark

Overview of TensorFlow on Azure

Simple computation graph on TensorFlow

TensorFlow operations

Declaration of the TensorFlow placeholder

Neural Network Formation using TensorFlow

TensorFlow training

Execution of TensorFlow on Azure using Docker container services

Running TensorFlow containers on an Azure Kubernetes Cluster (AKS)

Other deep learning libraries

Summary

Integration with Other Azure Services

Logic Apps

Triggers and actions

Twitter sentiment analysis

Adding language detection

Azure Functions

Triggers

Blob-triggered function

Azure Data Lake Analytics

Developing with U-SQL

U-SQL databases

Simple format conversion for blobs

Integration with Cognitive Services

Azure Data Factory

Datasets, pipelines, and linked services

File format conversion

Automate U-SQL scripts

Running Databricks jobs

Summary

End-to-End Machine Learning

Using the Azure Machine Learning SDK for E2E machine learning

Summary

Other Books You May Enjoy

Leave a review - let other readers know what you think

Preface

This book will teach you how advanced machine learning can be performed in the cloud in a very cheap way. You will learn more about Azure Machine Learning processes as an enterprise-ready methodology. This book lets you explore prebuilt templates with Azure Machine Learning Studio and build a model using canned algorithms that can be deployed as web services. It will help you to discover the different benefits of leveraging the cloud for machine learning and AI, deploy virtual machines in AI development scenarios, and how to apply R, Python, SQL Server, and Spark in Azure.

By the end of this book, you will be able to implement machine learning and AI concepts in your model to solve real-world problems.

Who this book is for

If you are a data scientist or developer familiar with Azure Machine Learning and Cognitive Services, and want to create smart models and make sense of data in the cloud, this book is for you. You'll also find this book useful if you want to bring powerful machine learning services into your cloud applications. Some experience with data manipulation and processing, and using languages such as SQL, Python, and R, will help you to understand the concepts covered in this book

What this book covers

Chapter 1, AI CloudFoundations, introduces readers to the Microsoft Azure cloud and the reasons for choosing it as a platform for AI projects. We also describe the important services available to users looking to build AI solutions. This chapter also describes a decision flowchart to help pick and choose the right services on Azure that fit the business needs of an AI project.

Chapter 2, Data Science Process, focuses on the frameworks available for data science projects in a structured and organized manner. We will look at the principles of Team Data Science Process (TDSP) and the utilities available to support it. This chapter goes into the details of each step and helps define the criteria for success at every stage of the process.

Chapter 3, Cognitive Services, covers Cognitive Services in Azure, which makes it quick and simple to build smart applications. We will take a deep dive at some of the API that can be used to build AI applications without being a machine learning expert.

Chapter 4, Bot Framework, explains how to build bots using bot-related services in Azure. We will go through these options in a step-by-step manner to help you get started quickly.

Chapter 5, Azure Machine Learning Studio, explores Azure Machine Learning Studio and its advantages, and shows how we can build experiments in Azure Machine Learning Studio.

Chapter 6, Scalable Computing for Data Science, covers the vertical and horizontal scaling options in Azure to leverage cloud computing.

Chapter 7, Machine Learning Server, explains what the Microsoft Machine Learning Server is and also looks at key parts of the R and Python architecture.

Chapter 8, HDInsight, covers various functions of HDInsight in R and how to use them.

Chapter 9, Machine Learning with Spark, explains how to use Azure HDInsight in Spark, and explains what machine learning with Azure Databricks is like.

Chapter 10, Building Deep Learning Solutions, executes the steps of the popular open source deep learning tool, TensorFlow, on an Azure deep learning VM, and also covers the features of Azure Notebooks. The chapter also highlights the utilization of other deep learning frameworks, such as Keras, Pytorch, Caffe, Theano, and Chainer, using AI tools for Visual Studio/VS code and specifies deeper insights.

Chapter 11, Integration with Other Azure Services, covers typical integration patterns with other non-AI services in Azure. The reader will gain a deeper understanding of the options and best practices for integrating with functions, ADLA, and logic apps in AI solutions.

Chapter 12, End-to-End Machine Learning, explains how to get started with Azure Machine Learning services for end-to-end custom machine learning.

To get the most out of this book

For this book, you will require a prior knowledge of Azure and have an Azure subscription.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

Log in or register at

www.packt.com

.

Select the

SUPPORT

tab.

Click on

Code Downloads & Errata

.

Enter the name of the book in the

Search

box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

WinRAR/7-Zip for Windows

Zipeg/iZip/UnRarX for Mac

7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub athttps://github.com/PacktPublishing/Hands-On-Machine-Learning-with-Azure. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available athttps://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/9781789131956_ColorImages.pdf.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

AI Cloud Foundations

Today, every organization aspires to be a leader in adopting the latest technological advancements. The success of such adoption in recent years has been achieved by leveraging the data landscape surrounding businesses. In this chapter, we will talk about how AI can be leveraged using Microsoft's Azure platform to derive business value from that data landscape. Azure offers several hundred services, and choosing the right service is challenging. In this chapter, we will give a high-level overview of the choices a data scientist, developer, or data engineer has for building and deploying AI solutions for their organization. We will start with a decision tree that can guide technology choices so that you understand which services you should consider.

In this chapter, we will cover the following topics:

Cognitive Services/bots

Azure Machine Learning Studio

Azure Machine Learning services

Machine Learning Server

Azure Databricks

The importance of artificial intelligence

Artificial intelligence (AI) is ever-increasingly being interwoven into the complex fabric of our technology-driven lives. Whether we realize it or not, AI is becoming an enabler for us to accomplish our day-to-day tasks more efficiently than we've ever done before. Personal assistants such as Siri, Cortana, and Alexa are some of the most visible AI tools that we come across frequently. Less obvious AI tools are ones such as those used by rideshare firms that suggest drivers move to a high-density area, and adjust prices dynamically based on demand.

Across the world, there are organizations at different stages of the AI journey. To some organizations, AI is the core of their business model. In other organizations, they see the potential of leveraging AI to compete and innovate their business. Successful organizations recognize that digital transformation through AI is key to their survival over the long term. Sometimes, this involves changing an organization's business model to incorporate AI through new technologies such as the Internet of Things (IoT). Across this spectrum of AI maturity, organizations face challenges implementing AI solutions. Challenges are typically related to scalability, algorithms, libraries, accuracy, retraining, pipelines, integration with other systems, and so on.

The field of AI has been around for several decades now, but it's growth and adoption over the last decade has been tremendous. This can be attributed to three main drivers: large data, large compute, and enhanced algorithms. The growth in data stems mostly from entities that generate data, or from human interactions with those entities. The growth in compute can be attributed to improved chip design, as well as innovative compute technologies. Algorithms have improved partly due to the open source community and partly due to the availability of larger data and compute.

The emergence of the cloud

Developing AI solutions in the cloud helps organizations leapfrog their innovation, in addition to alleviating the challenges described here. One of the first steps is to bring all the data close together or in the same tool for easy retrieval. The cloud is the most optimal landing zone that meets this requirement. The cloud provides near-infinite storage, easy access to other data sources, and on-demand compute. Solutions that are built on the cloud are easier to maintain and update, due to there being a single pane of control. The availability of improved or customized hardware at the click of a button was unthinkable a few years back.

Innovation in the cloud is so rapid that developers can build a large variety of applications very efficiently. The ability to scale solutions on-demand and tear them down after use is very economical in multiple use cases. This permits projects to start small and scale up as demand goes up. Lastly, the cloud provides the ability to deploy applications globally in a manner that's consistent for both the end user and developers.

Essential cloud components for AI

Any cloud AI solution will have different components, all modular, individually elastic, and integrated with each other. A broad framework for cloud AI is depicted in the following diagram. At the very base isStorage, which is separate fromCompute. This separation of Storage and Compute is one of the key benefits of the cloud, which permits the user to scale one separate from the other. Storage itself may be tiered based on throughput, availability, and other features. Until a few years back, theComputeoptions were limited to the speed and generation of the underlying CPU chips. Now, we have options for GPU and FPGA (short- for field-programmable gate array) chips as well. Leveraging Storage and Compute, various services are built on the cloud fabric, which makes it easier to use ingest data, transform it, and build models. Services based on Relational Databases, NoSQL, Hadoop, Spark, and Microservices are some of the most frequent ones used to build AI solutions:

Essential building blocks of cloud AI

At the highest level of complexity are the various AI-focused services that are available on the cloud. These services fall on a spectrum with fully customizable solutions at one end, and easy-to-build solutions at the other. Custom AI is typically a solution that allows the user to bring in their own libraries or use proprietary ones to build an end-to-end solution. This typically involves a lot of hands-on coding and gives the builder complete control over different parts of the solution. Pre-Built AI is typically in the form of APIs that expose some type of service that can be easily incorporated into your solution. Examples of these include custom vision, text, and language-based AI solutions.

However complex the underlying AI may be, the goal of most applications is to make the end user experience as seamless as possible. This means that AI solutions need to integrate with general applications that reside in the organization solution stack. A lot of solutions use Dashboards or reports in the traditional BI space. These interfaces allow the user to explore the data generated by the AI solution. Conversational Apps are usually in the form of an intelligent interface (such as a bot) that interacts with the user in a conversational mode.

The Microsoft cloud – Azure

Microsoft's mission is been to empower every person and organization on Earth to achieve more. Microsoft Azure is a cloud platform designed to help customers achieve the intelligent cloud and the intelligent edge. Their vision is to help customers infuse AI into every application, both in the cloud and on compute devices of all form factors. With this in mind, Microsoft has developed a wide set of tools that can help its customer build AI into their applications with ease.

The following table shows the different tools that can be used to develop end-to-end AI solutions with Azure. The Azure Service column indicates those services that are owned and managed by Microsoft (first-party services). The Azure Marketplace column indicates third-party services or implementations of Microsoft products on Azure virtual machines, Infrastructure as a service (IaaS):

Azure services that assist in AI solution building

The preceding table shows the different tools that can be used to develop end-to-end AI solutions on Azure. Due to the pace of the innovation of Azure, it is not easy to keep up with all the services and their updates.

One of the challenges that architects, developers, and data scientists face is picking the right Azure components for their solution.

Picking the right components for a full, end-to-end solution is outside the scope of this book. Instead, we will focus on just the AI-specific tools that a developer, data engineer, or data scientist will need to use for their solution.

Choosing AI tools on Azure

In this book, we will assume that the you have knowledge and experience of AI in general. The goal here is not to touch on the basics of the various kinds of AI or to choose the correct algorithm; we assume you have a good understanding of what algorithms to choose in order to solve a given business need.

The following diagram shows a decision tree that can help you choose the right Azure AI tools. It is not meant to be comprehensive; just a guide to the correct technology choices. There are a lot of options that cross over, and this was difficult to depict on this diagram. Also keep in mind that an efficient AI solution would leverage multiple tools in combination:

Decision tree guide to choosing AI tools on Azure

The preceding diagram shows a decision tree that helps users of Microsoft's AI platform. Starting from the top, the first question is whether you would like to Build your own models or consume pre-trained models. If you are building your own models, then it involves data scientists, data engineers, and developers at various stages of the process. In some use cases, developers prefer to just consume pre-trained models.

Cognitive Services/bots

Developers who would like to consume pre-trained AI models, typically use one of Microsoft's Cognitive Services. For those who are building conversational applications, a combination of Bot Framework and Cognitive Services is the recommended path. We will go into the details of Cognitive Services in Chapter 3, Cognitive Services, and Chapter 4, Bot Framework, but it is important to understand when to choose Cognitive Services.

Cognitive Services were built with the goal of giving developers the tools to rapidly build and deploy AI applications. Cognitive Services are pre-trained, customizable AI models that are exposed via APIs with accompanying SDKs and web services. They perform certain tasks, and are designed to scale based on the load against it. In addition, they are also designed to be compliant with security standards and other data isolation requirements. At the time of writing, there are broadly five types of Cognitive Services offered by Azure:

Knowledge

Language

Search

Speech

Vision

Knowledge services are focused on building data-based intelligence into your application. QnA Maker is one such service that helps drive a question-and-answer service with all kinds of structured and semi-structured content. Underneath, the service leverages multiple services in Azure. It abstracts all that complexity from the user and makes it easy to create and manage.

Language services are focused on building text-based intelligence into your application. The Language Understanding Intelligent Service, (LUIS) is one type of service that allows users to build applications that can understand natural conversation and pass on the context of the conversation, also known as NLP (short for Natural-language processing), to the requesting application.

Search services are focused on providing services that integrate very specialized search tools for your application. These services are based on Microsoft's Bing search engine, but can be customized in multiple ways to integrate search into enterprise applications. The Bing Entity Search service is one such API that returns information about entities that Bing determines are relevant to a user's query.

Speech services are focused on providing services that allow developers to integrate powerful speech-enabled features into their applications, such as dictation, transcription, and voice command control. The custom speech service enables developers to build customized language modules and acoustic models tailored to specific types of applications and user profiles.

Vision services provide a variety of vision-based intelligent APIs that work on images or videos. The Custom Vision Service can be trained to detect a certain class of images after it has been trained on all the possible classes that the application is looking for.