@stanfordnlp: CS336的“问题”不在于大约22小时的视频,而在于完成作业所需的大量时间。…
摘要
斯坦福大学的CS336课程宣布开课,从零开始教授语言建模,包含密集的实践作业,涵盖分词器、Transformer、数据和对齐。
查看缓存全文
缓存时间: 2026/06/28 22:07
CS336 的“问题”不在于约 22 小时的视频,而在于完成作业所需的大量时间。但恰恰是这些作业带来了真正的学习收获。我们想起了 @karpathy 的那条经典推文:https://x.com/karpathy/status/1756380066580455557?s=61… 2026 年课程网站:https://cs336.stanford.edu
斯坦福 CS336 | 从零构建语言模型
来源:https://cs336.stanford.edu/
内容
这门课讲什么?
语言模型是现代自然语言处理(NLP)应用的基石,并开创了一种新范式:用单一通用系统解决一系列下游任务。随着人工智能(AI)、机器学习(ML)和 NLP 领域的持续发展,对科学家和工程师而言,深入理解语言模型变得至关重要。本课程旨在通过引导学生完成开发自己语言模型的完整过程,让他们获得对语言模型的全面理解。受操作系统课程(从零构建整个操作系统)的启发,我们将带领学生经历语言模型创建的每一个环节,包括预训练数据的采集与清洗、Transformer 模型构建、模型训练,以及部署前的评估。
先修要求
- 精通 Python
大部分课程作业将以 Python 完成。与其他大多数 AI 课程不同,学生将获得极少的脚手架代码。你需要编写的代码量至少会比其他课程多一个数量级。因此,精通 Python 和软件工程至关重要。 - 具备深度学习与系统优化经验
课程中很大一部分内容涉及如何在多台机器的 GPU 上快速高效地运行神经网络语言模型。我们期望学生能非常熟悉 PyTorch,并理解基本系统概念(如内存层次结构)。 - 大学微积分、线性代数(例如 MATH 51、CME 100)
应能熟练使用矩阵/向量符号与运算。 - 基础概率与统计(例如 CS 109 或同等课程)
应了解概率基础、高斯分布、均值、标准差等。 - 机器学习(例如 CS221、CS229、CS230、CS124、CS224N)
应对机器学习和深度学习有基本了解。
请注意,这是一门 5 学分的课程。这门课非常注重实现,请务必分配足够的时间。
课程作业
作业
- 作业 1:基础(https://github.com/stanford-cs336/assignment1-basics/tree/main)
- 实现训练标准 Transformer 语言模型所需的所有组件(分词器、模型架构、优化器)。
- 训练一个最小化的语言模型。
- 作业 2:系统(https://github.com/stanford-cs336/assignment2-systems/tree/main)
- 使用高级工具对作业 1 中的模型和层进行分析与基准测试,利用自己的 Triton FlashAttention2 实现来优化注意力机制。
- 构建作业 1 模型训练代码的内存高效分布式版本。
- 作业 3:缩放(https://github.com/stanford-cs336/assignment3-scaling/tree/main)
- 理解 Transformer 每个组件的功能。
- 查询训练 API 以拟合缩放定律,从而预测模型缩放。
- 作业 4:数据(https://github.com/stanford-cs336/assignment4-data/tree/main)
- 将原始 Common Crawl 数据转储转换为可用的预训练数据。
- 执行过滤和去重以提升模型性能。
- 作业 5:对齐与推理 RL(https://github.com/stanford-cs336/assignment5-alignment/tree/main)
- 应用监督微调和强化学习,训练语言模型在解决数学问题时进行推理。
- 可选第二部分(https://github.com/stanford-cs336/assignment5-alignment/blob/main/cs336_spring2025_assignment5_supplement_safety_rlhf.pdf):实现并应用安全对齐方法(如 DPO)。
所有(目前暂定)截止日期列在课程安排(https://cs336.stanford.edu/#schedule)中。
自学 GPU 计算资源
如果你在家自学,可以通过云提供商获取 GPU 计算资源来完成作业。
以下是一些选项(2026 年 3 月 28 日单块 B200 GPU 的公开定价):
- Modal(https://modal.com/)(赞助商):$6.25/小时。每月提供 $30 免费计算额度。仅按实际计算量收费(无闲置资源),其用户体验使本地开发与大规模 GPU 实验之间的切换变得简单。(Modal 定价(https://modal.com/pricing))
- Lambda Labs(https://lambda.ai/):$6.69/小时(Lambda 定价(https://lambda.ai/pricing))
- RunPod(https://www.runpod.io/):$4.99/小时(RunPod 定价(https://www.runpod.io/pricing))
- Nebius(https://nebius.com/):$5.50/小时(可抢占式 $3.05/小时)(Nebius 定价(https://nebius.com/prices))
- Together(https://www.together.ai/):$7.49/小时,最少 8 块 GPU,长期承诺更便宜(Together 定价(https://www.together.ai/pricing#gpu-clusters))
为了方便和省钱,我们建议先在 CPU 上调试实现的正确性,然后使用 GPU(数量按作业建议)来完成训练运行(A1、A4、A5)或 GPU 操作基准测试(A2)。
荣誉守则
与斯坦福所有其他课程一样,我们认真对待学生荣誉守则(https://ed.stanford.edu/academics/masters-handbook/honor-code)。请遵守以下政策:
- 合作:允许学习小组,但学生必须理解并独立完成自己的作业,每人提交一份作业。如果小组合作,请在作业开头列出小组成员的名字。如有任何关于合作政策的问题,请询问。
- AI 工具:允许使用 ChatGPT 等大语言模型回答低级编程问题或关于语言模型的高级概念性问题,但禁止直接使用 AI 解题。我们强烈建议你在完成作业时在 IDE 中禁用 AI 自动补全(如 Cursor Tab、GitHub Copilot)(但非 AI 自动补全,例如自动补全函数名称,完全允许)。我们发现 AI 自动补全会大大降低对内容的深入理解。详见 AI 政策(https://docs.google.com/document/d/1SZAlExB1qAc9izHt54gwunNpjKE6wXb8Y7yA_e-baK8)(受此启发(https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac))。
- 现有代码:你将实现的许多内容在网上都有现成实现。我们提供的讲义将自成一体,你无需查阅第三方代码来生成自己的实现。因此,除非讲义中另有说明,否则你不应查看任何现有代码。
提交课程作业
- 所有课程作业通过 Gradescope 在截止日期前提交。请不要通过电子邮件提交。
- 如有任何问题,请在 Slack 中提问或联系课程助教。
- 你可以在截止日期前多次提交,我们将只评分最后一次提交。
- 部分完成也比完全不提交好。
晚交天数
- 每位学生有 6 个晚交日可用。一个晚交日可将截止日期延长 24 小时。
- 每个作业最多可使用 3 个晚交日。
重新评分请求
如果你认为课程人员在评分中犯了客观错误,可以在成绩公布后 3 天内通过 Gradescope 提交重新评分请求。
赞助商
我们要感谢 Modal(https://modal.jobs/)赞助本课程的计算资源。
课程安排(YouTube 播放列表(https://www.youtube.com/watch?v=JuoVZkPBiKk&list=PLoROMvodv4rMqXOcazWaTUHhq-yembLCV))
#日期描述课程资料截止日期1星期一,3月30日概述、分词 [Percy]lecture_01.py(https://cs336.stanford.edu/lectures/?trace=lecture_01)作业 1 发布
[代码](https://github.com/stanford-cs336/assignment1-basics/tree/main)
[预览](https://github.com/stanford-cs336/assignment1-basics/blob/main/cs336_assignment1_basics.pdf)2星期三,4月1日PyTorch(einops)、资源核算(FLOPs、内存、算术强度) [Percy]lecture_02.py(https://cs336.stanford.edu/lectures/?trace=lecture_02)
(录音版本)(https://cs336.stanford.edu/lectures/?trace=lecture_02_recording)3星期一,4月6日架构、超参数 [Tatsu]lecture 3.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_03.pdf)4星期三,4月8日注意力替代方案与混合专家 [Tatsu]lecture 4.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_04.pdf)5星期一,4月13日GPU、TPU [Tatsu]lecture 5.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_05.pdf)6星期三,4月15日内核、Triton [Percy]lecture_06.py(https://cs336.stanford.edu/lectures/?trace=lecture_06)作业 1 截止
作业 2 发布
[代码](https://github.com/stanford-cs336/assignment2-systems/tree/main)
[预览](https://github.com/stanford-cs336/assignment2-systems/blob/main/cs336_assignment2_systems.pdf)7星期一,4月20日并行 [Percy]lecture_07.py(https://cs336.stanford.edu/lectures/?trace=lecture_07)8星期三,4月22日并行 [Tatsu]lecture_08.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_08.pdf)9星期一,4月27日缩放定律 [Tatsu]lecture_09.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_09.pdf)10星期三,4月29日推理 [Percy]lecture_10.py(https://cs336.stanford.edu/lectures/?trace=lecture_10)作业 2 截止
作业 3 发布
[代码](https://github.com/stanford-cs336/assignment3-scaling/tree/main)
[预览](https://github.com/stanford-cs336/assignment3-scaling/blob/main/cs336_assignment3_scaling.pdf)11星期一,5月4日缩放定律 [Tatsu]lecture_11.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_11.pdf)12星期三,5月6日评估 [Percy]lecture_12.py(https://cs336.stanford.edu/lectures/?trace=lecture_12)作业 3 截止
作业 4 发布
[代码](https://github.com/stanford-cs336/assignment4-data/tree/main)
[预览](https://github.com/stanford-cs336/assignment4-data/blob/main/cs336_assignment4_data.pdf)13星期一,5月11日数据(来源、数据集) [Percy]lecture_13.py(https://cs336.stanford.edu/lectures/?trace=lecture_13)14星期三,5月13日数据(过滤、去重、混合、合成数据) [Percy]lecture_14.py(https://cs336.stanford.edu/lectures/?trace=lecture_14)15星期一,5月18日训练中/后训练(SFT/RLHF) [Tatsu]lecture_15.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_15.pdf)16星期三,5月20日后训练——RLVR [Tatsu]lecture_16.pdf(https://github.com/stanford-cs336/lectures/blob/main/lecture_16.pdf)作业 4 截止
作业 5 发布
[代码](https://github.com/stanford-cs336/assignment5-alignment/tree/main)
[预览](https://github.com/stanford-cs336/assignment5-alignment/blob/main/cs336_spring2026_assignment5_alignment.pdf)
[可选第二部分](https://github.com/stanford-cs336/assignment5-alignment/blob/main/cs336_spring2025_assignment5_supplement_safety_rlhf.pdf)星期一,5月25日*停课(阵亡将士纪念日)*17星期三,5月27日对齐——多模态 [Percy]lecture_17.py(https://cs336.stanford.edu/lectures/?trace=lecture_17)18星期一,6月1日客座讲座:Daniel Selsam19星期三,6月3日客座讲座:Dan Fu作业 5 截止
Qihong Ruan (@Qihong53030163):
斯坦福 CS336——《从零构建语言模型》是理解大语言模型端到端构建过程的最佳课程之一。但难点在于:17 次讲座,约 22 小时的视频。
因此我为 2025 年春季完整系列构建了一个配套笔记站点:
👉 https://t.co/RZHko6Hdq5全部 17 个视频的观看链接整理如下:
相似文章
CS336:从零开始的语言建模
斯坦福大学提供一门综合课程CS336,学生将从零开始构建语言模型,涵盖数据收集、Transformer构建、训练和评估。
@tan_maty: 吹爆这个课,计算机专业必看 CS336, 这是一门在 AI 圈子里最近封神的课程。 语言模型从零构建大语言 这门课由 Stanford 开设,授课老师是 NLP 领域的顶尖大佬 Percy Liang 和 Tatsunori Hashim…
A thread promoting Stanford's CS336 course on building language models from scratch, taught by NLP experts Percy Liang and Tatsunori Hashimoto, emphasizing hands-on understanding.
@Rassh_RAJ: 斯坦福CS336: Large Language Models from Scratch (2026) 现已完整上传至YouTube,相比2025版新增了一些内容…
斯坦福大学CS336课程《Large Language Models from Scratch》(2026)现已完整上线YouTube,在2025年播放列表基础上有所扩充,提供超越API调用的LLM深入理解。
@stanfordnlp:学习成功训练最先进语言模型的细节(即“技巧”或“秘诀”)有两条路径……
斯坦福NLP将CS336课程推广为学习成功训练最先进语言模型技巧的途径。
@DanKornas: "斯坦福CS229 I 机器学习 I 构建大型语言模型(LLMs)"(斯坦福在线)... 你将学到:…
斯坦福CS229在线课程公告,涵盖构建大型语言模型、深度神经网络、TensorFlow、Keras、OpenCV以及使用spaCy的自然语言处理。