CS28-机器学习系统

UCAS: 智能计算系统

课程简介

  • 所属大学:中国科学院大学
  • 先修要求:体系结构,深度学习
  • 编程语言:Python, C++, BCL
  • 课程难度:🌟🌟🌟
  • 预计学时:100 小时+

智能计算系统是智能的核心物质载体,每年全球要制造数以十亿计的智能计算系统(包括智能手机、智能服务器、智能可穿戴设备等),需要大量的智能计算系统的设计者和开发者。智能计算系统人才的培养直接关系到我国智能产业的核心竞争力。因此,对智能计算系统的认识和理解是智能时代计算机类专业学生培养方案中不可或缺的重要组成部分,是计算机类专业学生的核心竞争力。

国内的陈云霁老师开的课,在其他若干个大学也都有开对应的课程。这门课用一个个实验带大家以一个完整的视野理解人工智能的技术栈。从上层的深度学习框架,到用底层语言编写算子,再到硬件中 MLU 的设计,让大家形成系统思维,体会自上而下,融会贯通的乐趣。

我做了其中的 2,3,4,5 这几个实验,其中综合实验和硬件实验没有做,如果有做了的同学欢迎大家补上你的链接。

个人体会是第三章实现算子的实验让我对深度学习框架的了解加深了很多。第五章的实验BCL语言编写算子如果了解 CUDA 的话会感觉很熟悉。

推荐去买一本教材看一看,会让我们理解整体的技术栈。熟悉深度学习的同学可以直接从第五章开始看,看看深度学习框架底层到底是什么样的。

我因为这门课的启发,参考一本书(书名在仓库中)写了一个简易的深度学习框架。在这个框架里可以看到智能计算系统实验中的一些影子。同时受到 build-your-own-x 系列的启发,我也打算写一下教程,教大家写一个自己的深度学习框架。代码用 Python 写的,代码量较少,适合有一定基础的同学阅读。之后打算添加更多的算子,有望实现一个较为全面的框架,并希望移植到 C++ 中,以兼顾性能与开发效率。

课程资源

  • 课程网站:官网
  • 课程视频:bilibili
  • 课程教材:智能计算系统(陈云霁)

资源汇总

2024年新版实验

  • 2024 年的智能计算系统实验内容对知识体系、实验题目及实验手册进行了大范围的调整,调整内容包括全面使用 PyTorch ,不再使用 TensorFlow 以及添加大模型相关实验等。
  • 由于新版实验题目及实验手册未在寒武纪论坛进行更新,因此提供以下存储仓库,用于存储新版智能计算系统的实验题目、实验手册以及个人的实验答案
  • 新版实验的资源跟随国科大 2024 年春季学期的课程进度进行更新,预计 2024 年 6 月更新完毕
  • @Yuichi 编写的 2024 新版实验题目、手册及答案:https://github.com/Yuichi1001/2024-AICS-EXP

旧版实验

 

 

CMU 10-414/714: Deep Learning Systems

课程简介

  • 所属大学:CMU
  • 先修要求:系统入门(eg.15-213)、深度学习入门、基本的数学知识
  • 编程语言:Python, C++
  • 课程难度:🌟🌟🌟
  • 预计学时:100小时

深度学习的快速发展和广泛使用很大程度上得益于一系列简单好用且强大的编程框架,例如 Pytorch 和 Tensorflow 等等。但大多数从业者只是这些框架的“调包侠”,对于这些框架内部的细节实现却了解甚少。如果你希望从事深度学习底层框架的开发,或者只是像我一样好奇这些框架的内部实现,那么这门课将会是一个很好的起点。

课程的内容大纲覆盖了深度学习系统“全栈”的知识体系。从现代深度学习系统框架的顶层设计,到自微分算法的原理和实现,再到底层硬件加速和实际生产部署。为了更好地掌握理论知识,学生将会在5个课程作业中从头开始设计和实现一个完整的深度学习库 Needle,使其能对计算图进行自动微分,能在 GPU 上实现硬件加速,并且支持各类损失函数、数据加载器和优化器。在此基础上,学生将实现几类常见的神经网络,包括 CNN,RNN,LSTM,Transformer 等等。

即使你是深度学习领域的小白也不必过于担心,课程将会循序渐进地从简单分类问题和反向传播优化讲起,一些相对复杂的神经网络都会有配套的 jupyter notebook 详细地描述实现细节。如果你有一定的相关基础知识,那么在学习完自微分部分的内容之后便可以直接上手课程作业,难度虽然不大但相信一定会给你带来新的理解。

这门课两位授课教师 Zico KolterTianqi Chen 将所有课程内容都发布了对应的开源版本,但在线评测账号和课程论坛的注册时间已经结束,只剩下框架代码里的本地测试供大家调试代码。或许可以期待明年秋季学期的课程还会发布相应的在线版本供大家学习。

课程资源

资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CMU10-714 – GitHub 中。

 

 

MIT 6.5940: TinyML and Efficient Deep Learning Computing

课程简介

  • 所属大学:MIT
  • 先修要求:体系结构、深度学习基础、
  • 编程语言:Python
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:50小时

这门课由 MIT 的 Song Han 教授讲授,侧重于高效的机器学习训练、推理技术。学生需要有一定的深度学习方面的知识基础。

课程主要分为三个部分,首先讲授了让神经网络轻量化的各种关键技术,例如剪枝、量化、蒸馏、网络架构搜索等等。有了这些基础之后,课程第二部分会讲授面向特定领域场景的各种高效优化技术,涉及了目前深度学习最前沿热门的各个方向,例如大语言模型的推理、长上下文支持、后训练加速、多模态大语言模型、GAN、扩散模型等等。课程第三部分主要涉及各类高效训练技术,例如大规模分布式并行、自动并行优化、梯度压缩、边缘训练等等。Song Han 教授的讲解深入浅出,覆盖的知识面很广,且都是当前热门的领域方向,如果是想对大语言模型有初步了解也可以重点关注第二和第三部分的内容。

课程内容和资源都可以在课程网站上找到,视频在油管上有官方版本,B站也有生肉和熟肉搬运,可以自行查找。课程作业一共有5个,前三个分别考察了量化、剪枝和 NAS,后两个主要是对大语言模型的压缩和高效部署,总体难度相对简单,但能很好地巩固核心知识。

课程资源

资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/MIT6.5940_TinyML – GitHub 中。

 

 

Bilibili: Machine Learning Compilation

课程简介

  • 所属大学:Bilibili 大学
  • 先修要求:机器学习/深度学习基础
  • 编程语言:Python
  • 课程难度:🌟🌟🌟
  • 预计学时:30小时

这门课是机器学习编译领域的顶尖学者陈天奇在2022年暑期开设的一门在线课程。其实机器学习编译无论在工业界还是学术界仍然是一个非常前沿且快速更迭的领域,国内外此前还没有为这个方向专门开设的相关课程。因此如果对机器学习编译感兴趣想有个全貌性的感知的话,可以学习一下这门课。

本课程主要以 Apache TVM 这一主流的机器学习编译框架为例(陈天奇是这个框架的创始人之一),聚焦于如何将开发模式下(如 Tensorflow, Pytorch, Jax)的各类机器学习模型,通过一套普适的抽象和优化算法,变换为拥有更高性能并且适配各类底层硬件的部署模式。课程讲授的知识点都是相对 High-Level 的宏观概念,同时每节课都会有一个配套的 Jupyter Notebook 来通过具体的代码讲解知识点,因此如果从事 TVM 相关的编程开发的话,这门课有丰富且规范的代码示例以供参考。

所有的课程资源全部开源并且有中文和英文两个版本,B站和油管分别有中文和英文的课程录影。

课程资源

 

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...