Tuesday, September 7, 2021

How to take an engineering-led approach in teaching AI for Edge devices

 

azure iot.png

Background

The Artificial Intelligence: Cloud and Edge implementations is a full-stack AI course I teach at the University of Oxford. Because the course covers MLOps, Edge, and AI – the scope is vast. In addition, the course takes an engineering-led approach. This blog explains the rationale and implications of taking an engineering-led approach for teaching AI for Edge devices and how we use Microsoft LEARN to achieve our course objectives.

 

The ubiquitous computing vision

 

Mark Weiser first proposed the ubiquitous computing vision in the 1990s. Fast forward twenty years, and we have still not quite achieved the vision of any device connecting to any other device to achieve ubiquitous, seamless computing. But we have achieved a lot within the context of a cloud (and for enterprises). By that, I mean we can connect IoT devices and drive the processes using AI algorithms by using a cloud platform framework. Furthermore, we can run trained models on edge devices if we deploy models using containers and train AI models in the cloud. Thus, we have the foundations for building complex engineering systems spanning the cloud and the edge powered by intelligence (machine learning / deep learning models).

 

The challenges in teaching AI Edge Engineering

Enticing as this AI Edge Engineering vision sounds, teaching this subject in the context of a cloud platform like Azure is not easy.

As a technology, the cloud is evolving rapidly.

We encounter too many cognitive dependencies and risk cognitive overload for the students. In other words, concepts depend on other concepts, and learners risk being overloaded by many new ideas in a short period. Hence, we encapsulated the learning as an AI Edge Engineer learning path.

 

AIEdgePath.PNG


This learning path includes everything that students need to learn to master the domain.

So, we could subdivide these modules as

Modules covering fundamentals:

  • Introduction to Azure IoT
  • Introduction to Azure IoT Hub
  • Introduction to Azure IoT Edge
  • Deploy a pre-built module to the Edge device
  • Train and package an Azure machine learning module for deployment to IoT Edge device

Modules covering deployment using Azure functions or containers:

  • Introduction to Azure Functions for IoT
  • Connecting IoT devices to Cognitive Services using Azure Functions
  • Run Cognitive Services on IoT Edge
  • Introduction to MLOps for IoT Edge
  • Implement CI/CD for IoT Edge

 

Modules covering image recognition and object detection:

  • Create an image recognition solution with Azure IoT Edge and Azure Cognitive Services
  • Void detection on Edge devices with Live Video Analytics using own images and video
  • Object detection on Edge devices with Live Video Analytics using YOLO model

Modules covering Azure Sphere (secure IoT devices)

  • Introduction to Azure Sphere
  • Develop secure IoT solutions for Azure Sphere, Azure RTOS, and Azure IoT Central
  • Image classification using Azure Sphere
  • Develop secure IoT Solutions for Azure Sphere with IoT Hub

 

Implications of teaching AI Edge Engineering

So, how does the AI Edge Engineer learning path help in overcoming learner challenges?

The interplay between AI, cloud, and edge is a rapidly evolving domain. Currently, many IoT solutions are based on basic telemetry. The telemetry function captures data from edge devices and stores it in a data store. But for the true engineering capabilities, you have to extend beyond basic telemetry.

We aim to model problems in the real world through machine learning and deep learning algorithms and implement the model through AI and Cloud on to edge devices. Containers are central to this approach. When deployed to edge devices, containers can encapsulate deployment environments for a range of diverse hardware. CICD (Continuous integration - continuous deployment) is a logical extension to deploying containers on edge devices.

So, as you see from the modules listed above, learners are provided a logical path comprising progressive complexity levels to provide a smooth learning curve.

 

Insights and conclusion

We should note that related concepts are not necessarily connected to the idea of “AI Edge Engineering." If we take an interdisciplinary approach to learning, a learner may need to draw upon a much wider repertoire of concepts – especially as cloud platforms themselves evolve rapidly.  Here are some examples:

 

  • Many complex areas for deployment for AI on edge devices need domain knowledge – for example, drones, autonomous vehicles, etc.
  • You may need to draw upon themes/pedagogies for engineering education such as Systems thinking, Experimentation and Problem solving
  • You may need to demonstrate the societal impact of engineering, aesthetics, scale, etc  
  • You may need to demonstrate the connections between an ever-widening set of technologies (like security) but also mature technologies (like SQL)

In all these cases, the LEARN platform provides a scaffolding/framework for learning complex technologies and the interconnections between them – both at a peer level and a hierarchical level – thereby making the learning of complex subjects easier

Welcome your comments and feedback, especially from educators

 

Image source: Introduction to Azure IoT – part of the AI Edge Engineer learning path. showing how to depict a process in LEARN modules

 

Posted at https://sl.advdat.com/2YpDybo