TinyML 与高效深度学习计算
这门课学什么
这门课讲怎样让神经网络变小、变快。内容包括剪枝、量化、神经架构搜索、蒸馏、单片机部署、大模型和扩散模型的高效推理、分布式训练和端侧训练。实验带你压缩一个大模型并在笔记本上运行。
内容摘要
这门课的主线是一个问题:模型越来越大,怎样让它在手机、单片机和笔记本上跑起来。课程先用 2 讲建立衡量效率的指标,例如参数量、计算量、延迟和能耗,然后分 4 章展开。
第 1 章讲高效推理,占全课一半篇幅。课程依次讲剪枝、量化、神经架构搜索和知识蒸馏,再落到单片机部署:MCUNet 和 TinyEngine 两讲说明怎样在几百 KB 内存里运行神经网络。第 2 章针对具体模型做优化,覆盖大语言模型推理与后训练、长上下文、视觉 Transformer、GAN、视频、点云和扩散模型。
第 3 章讲高效训练:数据并行、流水线并行、张量并行,梯度压缩,以及在设备上直接训练和微调。第 4 章用 2 讲介绍量子机器学习,作为拓展内容。
作业是 5 个实验:剪枝、量化、神经架构搜索、大模型压缩、在笔记本上部署大模型。期末项目 4–5 人一组,要交提案、做海报展示、写 4 页 NeurIPS 格式报告。课程没有考试。学完后,你能读懂并复现主流的模型压缩方法,并能把一个 70 亿参数的大模型压缩后放到笔记本上运行。
讲课贴近研究前沿。很多方法出自韩松团队自己的论文,课上会讲方法为什么有效、在什么硬件上有效。课程定位是博士级,要求先修计算机体系结构和机器学习入门。
为什么值得学
韩松团队提出了 Deep Compression、AWQ 这类模型压缩标准方法。这门课由方法的原作者亲自讲。
课程信息
- 学校
- 麻省理工(MIT)
- 课程号
- 6.5940
- 讲师
- 韩松(Song Han)
- 学期
- Fall 2024
- 平台
- 课程官网
- 费用
- 免费
- 难度
- 高级
- 学时
- 23 讲 + 5 个实验
- 先修
- 学过深度学习,会 PyTorch。
- 材料
- 视频、幻灯片、代码
- 许可证
- 未注明
课程大纲 · 共 24 节
大纲依据:Fall 2024 课程官网 Schedule(查看原始页面 ↗)
- 1导论Introduction
说明模型规模和算力需求增长很快,而端侧硬件资源有限。介绍课程结构和 5 个实验。
- 2深度学习基础Basics of Deep Learning
复习神经网络的常用层,定义参数量、模型大小、计算量、延迟和能耗这些效率指标。
- 3剪枝与稀疏性(上)Pruning and Sparsity (Part I)
讲剪枝的基本思路:剪枝粒度从单个权重到整个通道,以及判断哪些权重可以剪掉的标准。
- 4剪枝与稀疏性(下)Pruning and Sparsity (Part II)
讲怎样为每一层选择剪枝比例、剪枝后怎样微调,以及稀疏模型在硬件上加速的条件。
- 5量化(上)Quantization (Part I)
讲数值格式和低比特表示,介绍 K-means 量化和线性量化。
- 6量化(下)Quantization (Part II)
讲训练后量化、量化感知训练、二值与三值网络,以及混合精度量化。
- 7神经架构搜索(上)Neural Architecture Search (Part I)
讲搜索空间怎样设计,以及强化学习、进化算法、可微搜索这几类搜索策略。
- 8神经架构搜索(下)Neural Architecture Search (Part II)
讲降低搜索成本的方法,例如权重共享和一次训练、多次部署的超网络,以及把硬件延迟纳入搜索目标。
- 9知识蒸馏Knowledge Distillation
讲用大模型(教师)指导小模型(学生)训练,比较匹配输出、匹配中间特征和匹配样本关系几种做法。
- 10MCUNet:单片机上的 TinyMLMCUNet: TinyML on Microcontrollers
讲在只有几百 KB 内存的单片机上做深度学习,方法是让网络结构和推理引擎协同设计。
- 11TinyEngine 与并行计算TinyEngine and Parallel Processing
讲推理引擎的底层优化:循环展开、分块、向量化、多线程和原地计算。
- 12Transformer 与大语言模型Transformer and LLM
讲 Transformer 结构和大语言模型的主流设计,为后面几讲的优化打基础。
- 13大语言模型的高效部署Efficient LLM Deployment
讲大模型推理的瓶颈,以及权重与激活量化、KV 缓存管理和推理系统优化。
- 14大语言模型后训练LLM Post Training
讲预训练之后的微调与对齐,以及降低微调成本的参数高效方法。
- 15长上下文大语言模型Long Context LLM
讲上下文变长后注意力计算和 KV 缓存的开销,以及缓解这些开销的方法。
- 16视觉 TransformerVision Transformer
讲视觉 Transformer 的结构,以及处理高分辨率图像时的高效注意力设计。
- 17GAN、视频与点云GAN, Video, and Point Cloud
分别讲生成对抗网络、视频理解和点云模型的计算瓶颈和加速方法。
- 18扩散模型Diffusion Model
讲扩散模型的原理和加速思路,包括减少采样步数、量化和稀疏计算。
- 19分布式训练(上)Distributed Training (Part I)
讲数据并行、流水线并行和张量并行的原理与取舍。
- 20分布式训练(下)Distributed Training (Part II)
讲多种并行方式的组合,以及用梯度压缩减少节点间通信。
- 21端侧训练与迁移学习On-Device Training and Transfer Learning
讲在内存受限的设备上训练和微调模型,例如只更新部分参数、做稀疏反向传播。
- 22课程总结与量子机器学习(一)Course Summary + Quantum Machine Learning I
回顾全课内容,再介绍量子计算基础和量子机器学习。
- 23量子机器学习(二)Quantum Machine Learning II
继续讲量子机器学习,重点是在有噪声的量子硬件上训练出稳健的模型。
- 24–26期末项目展示Final Project Presentation
各小组展示期末项目。