CS31-深度生成模型
深度生成模型学习路线
近几年大语言模型成为大热的方向,也和笔者博士期间的课题非常相关。这篇路线图旨在分享笔者在熟悉和深入深度生成模型这一领域过程中学习和参考的各类课程资料,方便相关领域的从业者或者对生成模型的底层原理感兴趣的朋友共同学习。由于笔者科研之余时间有限,很多课程的实验并未完成,等后续有时间完成之后会在该目录下一一添加。
其实,大语言模型只是深度生成模型的一个分支,而其他生成模型例如 VAE,GAN,Diffusion Model,Flow 等等,都还在“生成”这一领域占有重要地位,所谓的 AIGC,就是泛指这一类技术。 推荐学习下列课程:
- MIT 6.S184: Generative AI with Stochastic Differential Equations: MIT IAP 小学期的 GenAI 入门课程,主要通过微分方程的视角讲解了 Flow Matching 和 Diffusion Model 背后的数学原理,并且配有简单的小实验让学生在实践中理解,适合对底层数学原理感兴趣的同学入门。
- MIT 6.S978: Deep Generative Models: MIT 新晋明星教授何恺明亲授,涵盖了各种生成模型的基础理论和相关前沿论文,几次作业都有丰富的脚手架代码,难度不高但能加深理解,能对这个领域有个快速全貌了解。
- UCB CS294-158-SP24: Deep Unsupervised Learning: 强化学习领域的顶级巨佬 Pieter Abbeel 主讲,相比 MIT 的课程内容更加丰富全面,并且有配套课程视频和 Slides。此外课后作业只有测试代码,需要学生自主编写模型架构定义和训练代码,虽然硬核但很适合有志于炼丹的同学练手。众所周知,深度学习理论实践中存在着很多经验技巧,魔鬼往往存在于细节里。没有什么比自己上手训一个模型更能掌握这些细节了。
- CMU 10423: Generative AI: CMU 的 GenAI 课程,相比前两门课更侧重于大语言模型一些,其他内容和前两门课重合较多。不过课程作业都挺有意思,推荐闲暇时间练练手。
OpenAI 的 GPT 系列让大语言模型在 Scaling Law 的指引下展现出惊人的效果,在数学和代码领域取得了很大进展。如果你主要关注大语言模型这个方向,那么推荐如下课程:
- Stanford CS336: Language Modeling from Scratch: 正如课程标题写的,在这门课程中你将从头编写大语言模型的所有核心组件,例如 Tokenizer,模型架构,训练优化器,底层算子,训练数据清洗,后训练算法等等。每次作业的 handout 都有四五十页 pdf,相当硬核。如果你想充分吃透大语言模型的所有底层细节,那么非常推荐学习这门课程。
- CMU 11868: Large Language Model Systems: CMU 的大语言模型系统课程,侧重底层系统优化,例如 GPU 加速,分布式训练和推理,以及各种前沿技术。非常适合从事系统领域的同学对这个方向有个全貌性的了解。课表里还包含了一篇我发表的 PD 分离相关的文章,因此私心推荐一下。课程作业的话会让你先实现一个迷你 Pytorch,然后在上面实现各种大语言模型的系统级优化。
- CMU 11667: Large Language Models: Methods and Applications 和 CMU 11711: Advanced NLP: 和前两门课相比,这两门课更偏重上层算法和应用,而且每节课都列举了很多相关阅读材料,适合对大语言模型发展前沿的各个方向都有个粗糙的认识,如果对某个子领域感兴趣的话再寻着参考资料深入学习。
除了课程以外,还有很多不错的资料作为参考:
- Awesome-LLM: 大语言模型相关资料汇总
- LLMSys-PaperList: 大语言模型系统相关论文汇总
- MLsys-Guide: 深度学习系统入门指南
MIT6.S184: Generative AI with Stochastic Differential Equations
课程简介
- 所属大学:MIT
- 先修要求:Basic understanding of deep learning, and be comfortable with calculus and linear algebra
- 编程语言:Python (with PyTorch)
- 课程难度:🌟🌟🌟🌟
- 预计学时:20
这门课程是由 MIT CSAIL 的 IAP 小学期开办的扩散模型入门课程。该课程由 MIT 学生 Peter Holderrieth 和 Ezra Erives 主讲,从微分方程的视角深入浅出地讲解了扩散模型和流匹配模型的数学理论基础,并且配以实践让学生从零构建扩散模型,最后通过讲座介绍其在分子设计和机器人学等前沿技术中的应用。
课程配套的教材笔记写得非常好,推荐仔细阅读。
课程资源
- 课程网站:https://diffusion.csail.mit.edu/
- 课程视频:参见课程网站
- 课程教材:An Introduction to Flow Matching and Diffusion Models
- 课程作业:三个实验,具体参见课程网站
大语言模型
CMU 11-868: Large Language Model Systems
课程简介
- 所属大学:Carnegie Mellon University
- 先修要求:强烈建议已修读 Deep Learning (11785) 或 Advanced NLP (11-611 或 11-711)
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:120 学时
该课程面向研究生开设,聚焦“从算法到工程”的大语言模型系统构建全过程。课程内容包括但不限于:
- GPU 编程与自动微分:掌握 CUDA kernel 调用、并行编程基础,以及深度学习框架设计原理。
- 模型训练与分布式系统:学习高效的训练算法、通信优化(ZeRO、FlashAttention)、分布式训练框架(DDP、GPipe、Megatron-LM)。
- 模型压缩与加速:量化(GPTQ)、稀疏化(MoE)、编译技术(JAX、Triton)、以及推理时的服务化设计(vLLM、CacheGen)。
- 前沿技术与系统实践:涵盖检索增强生成(RAG)、多模态 LLM、RLHF 系统,以及端到端的在线维护和监控。
与同类课程相比,本课程的优势在于紧密结合最新论文与开源实现(通过 miniTorch 框架动手扩展 CUDA 支持);项目驱动的作业体系(五次编程作业 + 期末大项目);以及工业嘉宾讲座,能让学生近距离了解真实世界中 LLM 工程实践的挑战与解决方案。
自学建议:
- 提前配置好支持 CUDA 的开发环境(NVIDIA GPU + CUDA Toolkit + PyTorch)。
- 复习并行计算和深度学习基础(自动微分、张量运算)。
- 阅读每次课前指定的论文与幻灯片,跟着作业把 miniTorch 框架从纯 Python 拓展到真实 CUDA 内核。
该课程要求你对深度学习有一定的预备知识,不适合纯小白入手,可见 FAQ 的先修要求。 实验总体来说是有难度的,主要内容如下:
- Assignment1: 自动微分框架 + CUDA 手写算子 + 基础神经网络构建
- Assignmant2: GPT2 模型构建
- Assignment3: 通过手写 CUDA 的 Softmax 和 LayerNorm 算子优化模型训练速度
- Assignment4: 分布式模型训练,自学的话可能不太好配置环境
课程资源
- 课程网站:https://llmsystem.github.io/llmsystem2025spring/
- 课程大纲:https://llmsystem.github.io/llmsystem2025spring/docs/Syllabus/
- 课程作业:https://llmsystem.github.io/llmsystem2025springhw/
- 课程教材:精选论文 + 《Programming Massively Parallel Processors, 4th Ed》 部分章节
CMU11-667: Large Language Models: Methods and Applications
课程简介
- 所属大学:Carnegie Mellon University
- 先修要求:具备机器学习基础(相当于 CMU 的 10-301/10-601)和自然语言处理基础(相当于 11-411/11-611);熟练掌握 Python,熟悉 PyTorch 等深度学习框架。
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:100 学时以上
该研究生课程全面介绍了大型语言模型(LLM)的方法与应用,涵盖从基础架构到前沿技术的广泛主题。课程内容包括:
- 基础知识:语言模型的网络架构、训练、推理和评估方法。
- 进阶主题:模型解释性、对齐方法、涌现能力,以及在语言任务和非文本任务中的应用。
- 扩展技术:大规模预训练技术、模型部署优化,以及高效的训练和推理方法。
- 伦理与安全:模型偏见、攻击方法、法律问题等。
课程采用讲座、阅读材料、小测验、互动活动、作业和项目相结合的方式进行,旨在为学生提供深入理解 LLM 的机会,并为进一步的研究或应用打下坚实基础。
自学建议:
- 认真阅读每次课前指定的论文和材料。
- 熟悉 PyTorch 等深度学习框架,动手实现模型和算法。
- 扎实完成课程作业。
课程资源
- 课程网站:https://cmu-llms.org/
- 课程视频:部分讲座幻灯片和材料可在课程网站获取,完整视频可能需通过 CMU 内部平台访问。
- 课程教材:精选论文和资料,具体阅读列表详见课程网站。
- 课程作业:共六次作业,涵盖预训练数据准备、Transformer 实现、检索增强生成、模型比较与偏见缓解、训练效率提升等主题,详情见 https://cmu-llms.org/assignments/
CMU 11-711: Advanced Natural Language Processing (ANLP)
课程简介
- 所属大学:Carnegie Mellon University
- 先修要求:无硬性先修要求,但需具备 Python 编程经验,以及概率论和线性代数基础;有神经网络使用经验者更佳。
- 编程语言:Python
- 课程难度:🌟🌟🌟🌟
- 预计学时:100 学时
该课程为研究生级别的 NLP 入门与进阶课程,覆盖从词表征、序列建模,到注意力机制、Transformer 架构,再到大规模语言模型预训练、指令微调与复杂推理、多模态和安全性等前沿主题。与其他同类课程相比,本课程:
- 内容全面且紧跟最新研究:除经典算法外,深入讲解近年热门的大模型方法(如 LLaMa、GPT-4 等)。
- 实践性强:每次课配套代码演示与在线小测,学期末项目需复现并改进一篇前沿论文。
- 互动良好:Piazza 讨论、Canvas 测验及现场答疑,学习体验沉浸而有节奏。
自学建议:
- 提前阅读课前推荐文献,跟着阅读顺序循序渐进。
- 准备好 Python 环境并熟悉 PyTorch/Hugging Face,因为大量实战代码示例基于此。
- 扎实完成课程作业。
课程资源
- 课程网站:https://www.phontron.com/class/anlp-fall2024/
- 课程视频:课堂讲座录制并上传至 Canvas(需 CMU 帐号登录)
- 课程教材:各类经典与前沿论文+Goldberg《A Primer on Neural Network Models for Natural Language Processing》章节阅读
- 课程作业:https://www.phontron.com/class/anlp-fall2024/assignments/