04-652   Artificial Intelligence System Design

Location: Africa

Units: 12

Semester Offered: Spring

Course description

To understand and protect computer networks and their associated systems from hackers, it is crucial to have equal or superior skills to them. Ethical hackers use the same techniques to probe and bypass security controls as their unprincipled counterparts, but rather than taking advantage of any vulnerability discovered, they document them and provide reasonable advice on how to fix them, so the organization can improve its overall security. Vulnerabilities found on most systems are due to poor system configurations, unpatched and outdated software/operating systems, and operational weaknesses. However, a positive vulnerability assessment and testing does not necessarily suggest that a network or system is 100% secure, but it should be able to resist most attacks to an acceptable level.

Artificial intelligence can be defined as the study of the design of rational agents where an agent is something that acts, and rational means that the agent acts to achieve the best-expected outcome. AI has a long history, extending at least as far back as the 1950s. Machine learning can be considered as a sub-field of AI focused on how a rational agent can adapt to new circumstances as well as detect and extrapolate patterns. The implementation of an AI system typically relies on many different hardware and software components.

Learning objectives

This course focuses on two aspects of AI system design:

  • Performing ML inferences in resource-constrained edge devices such as one might find in an IoT network.
  • ML model performance analysis and maintenance in the cloud. Students will study Edge ML in the context of Raspberry Pi's connected to Arduinos and use TensorFlow to design models. They will use various AWS and web technologies to learn how to design distributed and cloud-based systems for analyzing and maintaining ML models. This course provides a foundation students can use to design and implement complex AI systems that use both edge and cloud components.

Outcomes

After completing this course, students will be able to do the following:

  • Configure a Raspberry Pi as an edge gateway
  • Use the Raspberry Pi as a development platform for designing simple TensorFlow ML models
  • Develop programs incorporating TinyML models for Arduino's on the Raspberry Pi, and deploy them
  • Communicate data bi-directionally between the Raspberry Pi and Arduino in real-time, and assess the real-time performance of edge ML models running on the Arduino, including memory utilization and speed of execution
  • Understand principles of REST API design and complete client and server-side implementations for accessing ML models using common SDKs such as Flask for Python applications.
  • Understand how to package software components as images and containers.
  • Be able to implement simple user interfaces using a dashboard framework.
  • Understand principles of cloud-based identity and access management such as roles, policies, users, groups, and API key credentials
  • Stream data to a cloud database, such as DynamoDB (AWS), where it can be analyzed and queried
  • Analyze data stored in the cloud to assess model performance
  • Update ML model

Content details

Mini 1: TinyML

  1. Introduction to AI System Design
  2. System overview
  3. Real time introduction
  4. C, C++sketch making
  5. Machine Learning Introduction
  6. EdgeML Applications, Training Sets, Model
  7. Design and Model Deployment
  8. Key Workflow Processes
  9. Integer Arithmetic
  10. DSP for Audio
  11. Neural Networks

Mini 2: CloudML

  1. Principles of web interface design
  2. Benefits of virtualization of web components as images and containers
  3. User interface design using the DASH framework
  4. Cloud-based identity and access control principles
  5. Using serverless functions and cloud-based databases to track model performance

Prerequisites

None

Faculty

Christine Niyizamwiyitira and Charles Wiecha