Azure Artificial Intelligence Services
Design for IoT
Design Messaging Solution Architectures
Design Media Service Solutions
The course is part of these learning paths
This course is focused on creating practical solutions using Azure technologies in areas such as AI, messaging, the Internet of Things, and video media. This will require familiarity with dozens of Azure solutions.
This course will take you through all of the relevant technologies and ensure you know which ones to pick to solve specific problems. This course is for developers, engineering managers, and cloud architects looking to get a better understanding of Azure services.
Whether your app deals with artificial intelligence, managing IoT devices, video media, or push notifications for smartphones, Azure has an answer for every use case. This course will help you get the most out of your Azure account by preparing you to make use of many different solutions.
Design solutions using Azure AI technologies
Design solutions for IoT applications using Azure technologies
Create a scalable messaging infrastructure using Azure messaging technologies
- Design media solutions using Azure media technologies and file encoding
People who want to become Azure cloud architects
General knowledge of IT architecture
‘Artificial Intelligence’ and ‘Machine Learning’ are related terms that until now I have used somewhat interchangeably. It is worth explaining the exact difference before we start talking about Azure products. Artificial Intelligence, or AI for short, refers to intelligent decision making performed by non-living agents such as computers. Machine Learning, also called ML, is the science of teaching computers to improve at specific tasks by using algorithms that cause the computer to ‘learn’. With some reflection it should become clear how AI and ML are related. Machine learning is one of the core disciplines that powers AI.
AI and ML power a number of software applications. Apple’s Siri personal assistant is an example of AI. She has to intelligently respond to user questions and provide useful answers. Machine learning is what powers Siri’s understanding. Siri’s understanding of language comes from training against thousands of hours of audio of human conversations. This training fuels her intelligence - her ability to understand what a human is asking for and how to properly respond.
With Microsoft Azure you get a number of services that can help you to build similar systems that employ machine learning and AI. They are all listed under the Azure Artificial Intelligence category. As you can see there are several products as well as a number of command line tools, frameworks, SDKs, and extensions. We will not go in depth into every single offering this course. It would take too long and isn’t actually necessary for the 70-535 exam. Instead we will cover some of the most important products and then in the next lesson talk about which services solve specific problems.
Just to further emphasize the scope it is worth mentioning that Azure also has a large set of Analytics services (https://docs.microsoft.com/en-us/azure/#analytics). These include tools like Data Catalog and Azure Stream Analytics. You can see the entire catalog using the link below. This course will only very briefly mention Azure Analytical tools where they may help differentiate use cases. In general, however, they are out of scope for this course, as data analytics is a distinct domain from AI. The science of analytics is about deriving useful information from your data. By contrast AI is about putting that data to work in some intelligent way.
So for our purposes, the best place to start is with Azure Machine Learning. This is Azure’s flagship product for anything related to ML. As you can see from the diagram the Azure Machine Learning studio does A LOT. Once you import your data, you have a lot of tools for processing, cleanup, visualization, and model training. You can easily shuffle and split your data into training sets and test different learning algorithms. You also get great third party support for things like Jupyter notebooks and Hadoop.
Making use of Azure Machine Learning requires a solid knowledge of data science and programming. It integrates with a number of systems and API’s such as Spark, Docker, Jupyter, Kubernetes, TensorFlow, and many others. The platform itself is actually built on top of many of these systems. See the slides here for a more exhaustive list.
Azure also has a separate related product called Machine Learning Studio. Unlike the core Azure Machine Learning platform, Studio is a drag and drop service with a narrower focus. It is designed to simplify creating predictive tools on top of an existing data set.
Cloud Academy has an in-depth course focused solely on Azure Machine Learning Studio. I recommend going and checking that out if you want to get really thorough walkthroughs and explanations. For our purposes, the high level overview and diagrams should be enough to get you started.
Now Azure has another powerful offering in the algorithm training space called Azure Batch AI. There is a lot of overlap in Batch AI with Azure Machine Learning so to simplify we are going to focus on the differences. Batch AI, somewhat like Machine Learning Studio, is a more comprehensive ML solution. It offers ML job scheduling and resource coordination. To this end when you create a Batch AI job, it will take as an input a description of your cluster, which are the resources, and your job, which is the task. The cluster input is really just the hardware, so basically you will tell Azure how many VMs you need, what type, what disk image to use, what region, and what remote storage to access for the data. The ML job description will reference the cluster you just defined and also take other inputs such as a particular AI framework, command line arguments, VMs, and input or output directory locations.
Batch AI, as the name implies, is better suited to one-off jobs of a larger scale. While it can be incorporated into a long-lived application stack, you may be better off with something more configurable such as Azure Machine Learning.
Azure also has a service that covers both analytics and ML for people with a background in Apache Spark. It is called Azure Databricks. Databricks is an, “Apache Spark-based analytics platform optimized for the Microsoft Azure cloud services platform.” It incorporates the entire set of Spark open source API’s and services including Spark streaming, Spark ML, SparkSQL, and GraphX. So if you have some expertise with Spark or an existing Spark codebase, Databricks may be the way to go. Setup is similar to Batch AI. You go into the portal and create a Databricks workspace. You define your cluster resources and your Spark job. Clusters can be configured to live only for a set amount of time to reduce costs as well. Thus in short, Databricks is basically just “easy mode Spark” for Azure.
The last big offering Microsoft Azure Cognitive Services are, “a set of APIs, SDKs and services available to developers to make their applications more intelligent.” In short, Cognitive Services refers to a set of ready to use AI tools that you can add to an existing application. They include things like image classifiers for faces and text analysis tools for automatic phrase completion and search. To make use of these tools you need to create a Cognitive Services API account in the Azure portal. This is easy to do with a few clicks. You can even get a free account if your transactions are below a certain threshold per month.
In the final part of this section I’ll just briefly mention some AI products with a narrower focus. There is Microsoft Genomics, a tool for people working with gene sequencing. I know precious little about genetics so I won’t even try to explain the use case. Suffice to say if you are working in that field you should check out the Microsoft Genomics documentation linked below. There is also the Azure Bot Service. This is basically a toolkit for creating interactive agents such as chatbots. You can create a wide variety of bots by training them to respond in specific ways to different inputs. The Bot Service is also serverless, so you don’t need to worry about administration, which is nice. And finally there is also Azure Search. As the name implies this is Search as a Service.
So that about wraps up our discussion of Azure AI services. You should have a good broad understanding of each offering. In our next lesson we will start talking about how to pick the right AI tool for your specific needs. See you there.
About the Author
Jonathan Bethune is a senior technical consultant working with several companies including TopTal, BCG, and Instaclustr. He is an experienced devops specialist, data engineer, and software developer. Jonathan has spent years mastering the art of system automation with a variety of different cloud providers and tools. Before he became an engineer, Jonathan was a musician and teacher in New York City. Jonathan is based in Tokyo where he continues to work in technology and write for various publications in his free time.