编辑:Panda
斯坦福大学 2025 年春季的 CS336 课程「从头开始创造语言模型(Language Models from Scratch)」相关课程和材料现已在网上全面发布!

-
课程视频:https://www.youtube.com/watch?v=SQ3fZ1sAqXI&list=PLoROMvodv4rOY23Y0BoGoBGgQ1zmU_MT_
-
课程主页:https://stanford-cs336.github.io/spring2025/
这是该课程的教职工阵容:

其中,讲师 Tatsunori Hashimoto 现为斯坦福大学计算机科学系助理教授。此前,他是斯坦福大学 John C. Duchi 和 Percy Liang 的博士后,研究机器学习模型平均性能和最差性能之间的权衡。在博士后研究之前,他在麻省理工学院攻读研究生,导师是 Tommi Jaakkola 和 David Gifford。他本科在哈佛大学学习统计学和数学,导师是 Edoardo Airoldi。他的研究成果已总计获得了超 3 万引用。

另一位讲师 Percy Liang 是斯坦福大学计算机科学系副教授,同时也是基础模型研究中心(CRFM)主任,同时也有参与以人类为中心的人工智能(HAI)、人工智能实验室、自然语言处理研究组和机器学习研究组等的研究工作。他本科毕业于 MIT,之后在该校获得工程学硕士学位,导师是 Michael Collins;之后,他在伯克利获得博士学位,导师是 Michael Jordan 和 Dan Klein;后来他进入谷歌从事博士后研究。Percy Liang 是一位引用量超过 10 万的研究大牛,我们此前也曾多次报道他的研究成果。

CS336 课程简介
CS336 课程的目标是「引导学生完成开发自己的语言模型的整个过程,从而帮助他们全面理解语言模型。」该课程借鉴了操作系统课程中从零开始创建完整操作系统的教学方法,引导学生完成语言模型创建的各个环节,包括预训练的数据收集和清理、Transformer 模型的构建、模型训练以及部署前的评估。

该课程包含 5 个单元,分别是基础、系统、扩展、数据、对齐和推理强化学习。
该课程也非常注重实践操作,因此也需要相当多的学习和开发时间。Percy Liang 也在 𝕏 上简单分享了学生需要实践的内容,包括:

-
作业 1(使基本流程正常运行):实现 BPE 分词器、Transformer 架构、Adam 优化器,并在 TinyStories 和 OpenWebText 上训练模型。只允许使用 PyTorch 原语(不能直接调用 torch. nn. Transformer 或 torch. nn. Linear)。
-
作业 2(让 GPU 运行起来):在 Triton 中实现 Flash Attention 2、分布式数据并行 + 优化器分片。
-
作业 3(Scaling Law):使用 IsoFLOP 拟合 Scaling Law。为了模拟训练运行的高风险,学生会获得一个训练 API [超参数→损失] 和一个固定的计算预算,并且必须选择提交哪些运行来收集数据点。在后台,训练 API 是通过在一系列预先计算的运行之间进行插值来支持的。
-
作业 4(数据):将 Common Crawl HTML 转换为文本,过滤(质量、有害内容、PII),删除重复数据。这是一项苦差事,却没有得到足够的重视。
-
作业 5(对齐):实现监督微调、专家迭代、GRPO 和变体,在 Qwen 2.5 Math 1.5B 上运行 RL 以提升在 MATH 上的指标。我们也曾考虑过让学生自己实现推理(inference),但决定(可能是明智的)让人们使用 vllm。
更具体来说,CS336 课程的 5 个单元包含 19 门课。这里简单总结了该课程的目录,你可以在课程主页下载相应的材料:
-
课程概述和 token 化
-
PyTorch 和资源(包括内存和计算资源)
-
架构与超参数
-
混合专家(MoE)
-
GPU
-
Kernel,Triton
-
并行化
-
并行化
-
Scaling Law
-
推理
-
Scaling Law
-
评估
-
数据
-
数据
-
对齐 ——SFT/RLHF
-
对齐 —— 强化学习
-
对齐 —— 强化学习
-
客座讲座:阿里巴巴达摩院研究员、Qwen 团队技术负责人 Junyang Lin(林俊旸)
-
客座讲座:Facebook AI 研究科学家、Llama 3 预训练负责人 Mike Lewis
另外,在考虑学习这门课程之前,你应该先具备以下能力:
-
熟练掌握 Python:大部分课程作业将使用 Python 完成。与大多数其他 AI 课程不同,本课程只会给学生提供极少的脚手架。你编写的代码量将至少比其他课程多一个数量级。因此,熟练掌握 Python 和软件工程至关重要。
-
有深度学习和系统优化经验:本课程的很大一部分内容是关于如何使神经语言模型在多台机器的 GPU 上快速高效地运行。我们希望学生能够熟练掌握 PyTorch,并了解内存层次结构等基本系统概念。
-
大学微积分、线性代数(例如 MATH 51、CME 100):你应该能够轻松理解矩阵 / 向量符号和运算。
-
基础概率与统计(例如 CS 109 或同等课程):你应该了解概率、高斯分布、均值、标准差等基础知识。
-
机器学习(例如 CS221、CS229、CS230、CS124、CS224N):你应该熟悉机器学习和深度学习的基础知识。
顺带一提,CS336 课程还为完成课程的学生赠送了纪念 T 恤,有如下 4 种图案。你觉得如何呢?

©
(文:机器之心)