# AI-System
**Repository Path**: aibuilderx/MS-AI-System
## Basic Information
- **Project Name**: AI-System
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: YanjieGao-patch-1
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-01
- **Last Updated**: 2024-09-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AI-System
[简体中文](./README.md)
This is an online AI System Course to help students learn the whole stack of systems that support AI, and practice them in the real projects. In this course, we will use terms **AI-System** and **System for AI** alternately.
This course is one of the AI-related course in [微软人工智能教育与共建社区](https://github.com/microsoft/ai-edu). Under the [A-基础教程](https://github.com/microsoft/ai-edu/tree/master/A-%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B) module. The course numbe an name are *A6-人工智能系统*.
Welcome to [A-基础教程](https://github.com/microsoft/ai-edu/tree/master/A-%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B) module to access more related content.
It is strongly recommended that learners who want to learn or consolidate the core knowledge of artificial intelligence, first learn [A2-神经网络基本原理简明教程](https://aka.ms/beginnerAI),also known as the **9-step learn Neural Network**。It will bring great help to the study of this course.
## Background
In recent years, the rapid development of artificial intelligence, especially deep learning technology, is inseparable from the continuous progress of hardware and software systems. In the foreseeable future, the development of artificial intelligence technology will still rely on a joint innovation model that combines computer systems and artificial intelligence. Computer systems are now empowering artificial intelligence with a larger scale and higher complexity. This requires not only more system innovation, but also systematic thinking and methodology. At the same time, artificial intelligence in turn provides support for the design of complex systems.
We have noticed that most of the current artificial intelligence-related courses, especially deep learning and machine learning related courses, mainly focus on related theories, algorithms or applications, but system-related courses are rare. We hope that the course of artificial intelligence systems can make artificial intelligence related education more comprehensive and in-depth, so as to jointly promote the cultivation of talents that intersect artificial intelligence and systems.
## Purpose
This course aims to help students:
1. Completely understand the computer system architecture that supports deep learning, and learn the system design under the full life cycle of deep learning through practical problems.
2. Introduce cutting-edge systems and artificial intelligence research work, including AI for Systems and Systems for AI, to help senior undergraduates and graduate students better find and define meaningful research questions.
3. Design experimental courses from the perspective of system research. Encourage students to implement and optimize system modules by operating and applying mainstream and latest frameworks, platforms and tools to improve their ability to solve practical problems, not just understanding the use of tools.
**Prerequisites:** C/C++/Python, Computer Architecture, Introduction to algorithms
## Characteristic
The course mainly includes the following three modules:
The first part is the basic knowledge of artificial intelligence and a full-stack overview of artificial intelligence systems; and the systematic design and methodology of deep learning systems.
The second part of the advanced courses includes the most cutting-edge systems and artificial intelligence research fields.
The third part is the supporting experimental courses, including the most mainstream frameworks, platforms and tools, and a series of experimental projects.
The content of the first part will focus on basic knowledge, while the content of the other two parts will be dynamically adjusted with the technological progress of academia and industry. The content of the latter two parts will be organized in a modular form to facilitate adjustment or combination with other CS courses (such as compilation principles, etc.) as advanced lectures or internship projects.
The design of this course will also draw on the research results and experience of Microsoft Research Asia in the intersection of artificial intelligence and systems, including some platforms and tools developed by Microsoft and the research institute. The course also encourages other schools and teachers to add and adjust more advanced topics or other experiments according to their needs.
## Syllabus
### [Lectures](./Lectures)
Lectures have two parts--basic courses and advanced courses. The first part is focus on basic theories, from lesson 1 to 6, while the second part involves more cutting-edge research, from lesson 7 to 14.
*Basic Courses*
| | | |
|---|---|---|
| Course No.|Lecture Name|Remarks|
|1|Introduction|Overview and system/AI basics|
|2|System perspective of Systems for AI|Systems for AI: a historic view; Fundamentals of neural networks; Fundamentals of Systems for AI|
|3|Computation frameworks for DNN|Backprop and AD, Tensor, DAG, Execution graph.
Papers and systems: PyTorch, TensorFlow|
|4|Computer architecture for Matrix computation|Matrix computation, CPU/SIMD, GPGPU, ASIC/TPU
Papers and systems: Blas, TPU|
|5|Distributed training algorithms|Data parallelism, model parallelism, distributed SGD
Papers and systems: PipeDream|
|6|Distributed training systems|MPI, parameter servers, all-reduce, RDMA
Papers and systems: Horovod|
|7|Scheduling and resource management system|Running dnn job on cluster: container, resource allocation, scheduling
Papers and systems: Kubeflow, OpenPAI,Gandiva|
|8|Inference systems|Efficiency, latency, throughput, and deployment
Papers and systems: TensorRT, TensorflowLite, ONNX|
||||
*Advanced Courses*
| | | |
|---|---|---|
| Course No.|Course Name|Remarks|
|9|Computation graph compilation and optimization|IR, sub-graph pattern match, Matrix multiplication and memory optimization
Papers and systems: XLA, MLIR, TVM, NNFusion|
|10|Efficiency via compression and sparsity|Model compression, Sparsity, Pruning|
|11|AutoML systems|Hyper parameter tuning, NAS
Papers and systems: Hyperband, SMAC, ENAS, AutoKeras, NNI|
|12|Reinforcement learning systems|Theory of RL, systems for RL
Papers and systems: AC3, RLlib, AlphaZero|
|13|Security and Privacy|Federated learning, security, privacy
Papers and systems: DeepFake|
|14|AI for systems|AI for traditional systems problems, for system algorithms
Papers and systems: Learned Indexes, Learned query path|
||||
### [Labs](./Labs)
Labs also have two parts: The first part is configured to make sure students can run most of Labs at local machine. The advanced part may need a small cluster (local or on Cloud) with GPU support.
*Basic Labs*
||||
|---|---|---|
|