@stanfordnlp: CS336的“问题”不在于大约22小时的视频,而在于完成作业所需的大量时间。…

X AI KOLs Following 新闻

摘要

斯坦福大学的CS336课程宣布开课,从零开始教授语言建模,包含密集的实践作业,涵盖分词器、Transformer、数据和对齐。

CS336的“问题”不在于大约22小时的视频,而在于完成作业所需的大量时间。但这正是真正的学习发生的地方。我们想起了@karpathy的经典推文:https://x.com/karpathy/status/1756380066580455557?s=61… 2026网站:https://cs336.stanford.edu
查看原文
查看缓存全文

缓存时间: 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:从零开始的语言建模

Hacker News Top

斯坦福大学提供一门综合课程CS336,学生将从零开始构建语言模型,涵盖数据收集、Transformer构建、训练和评估。