CS224N 作业说明与学习路线

课程:Stanford CS224N Natural Language Processing with Deep Learning(Winter 2026)

这份文档解决一个具体问题:第一次上 Stanford 的课,连作业入口都找不到。 它给出:官方入口、4 个作业 + 期末项目的全景、作业与讲次/录像的对应、环境准备、 以及官方的合作与 AI 政策原文。 建立:2026-10-15 · 配套读物:本目录下的讲次电子书(第01讲-…/book.html)。 本文所有事实都从官方页面/官方 PDF/官方 notebook 里抽取(不是凭记忆写的), 出处见每条的小字与文末链接。


0. 先读这一段:关于「用 AI 学」

我的立场:我用 AI,不代表我要让 AI 替我写作业、替我完成作业思路。 AI 只用于三件事: 1. 解释我看不懂的概念(例如「为什么负采样能近似 softmax」); 2. 帮我定位入口与官方资料(第一次上 Stanford 的课,连作业在哪都要找半天); 3. 给学习路线指引(「这一节该配哪一讲、该读哪份 material」)。

具体的代码、推导、该自己想的解法 —— 仍然自己做。

这个立场与 CS224N 的官方政策完全一致(不是我给自己找的借口)。课程页「AI Tools Policy」原文:

Students are required to independently submit their solutions for CS224N homework assignments. Collaboration with generative AI tools such as Co-Pilot and ChatGPT is allowed, treating them as collaborators in the problem-solving process. However, the direct solicitation of answers or copying solutions, whether from peers or external sources, is strictly prohibited. Employing AI tools to substantially complete assignments or exams will be considered a violation of the Honor Code.

课程页「Honor Code」原文:

We expect students to not look at solutions or implementations online. […] We sometimes use automated methods to detect overly similar assignment solutions.

课程页「Collaboration」原文:

Study groups are allowed, but students must understand and complete their own assignments, and hand in one assignment per student.

翻译成操作规则:

✅ 允许 把 AI 当讨论伙伴:问概念、问 API 用法、让它解释讲义里的推导、让它出自测问题、让它检查「我这样理解对不对」
❌ 禁止 把题面丢给 AI 要可提交的解法;让 AI 替你把作业做掉;抄网上的 solution / 往届实现
⚠️ 注意 合作作业(study group)也要自己理解并完成,一人一份

一句话:卡住先自己想;想了 20 分钟还卡,去问「概念」而不是要「答案」。 这与课程想教你的「理解 NLP 的数学与实现」是同一件事。


1. 官方入口(先收藏)

用途 链接
课程主页(日程、作业、讲义、政策全在这) https://web.stanford.edu/class/cs224n/
作业代码(W26) a1.zip(0.1 MB)· a2.zip(37 MB)· a3.zip(0.3 MB)· a4.zip(0.04 MB)
作业 handout(题目说明 PDF) a2.pdf(0.5 MB)· a3.pdf(0.2 MB)· a4.pdf(0.1 MB) A1 没有 handout,题目就在 notebook 里
LaTeX 模板(写书面答案用) a2_tex.zip(0.4 MB)· a3_tex.zip(0.2 MB)· a4_tex.zip(1.0 MB)
课程录像(YouTube 播放列表) https://www.youtube.com/playlist?list=PLoROMvodv4rOaMFbaqxPDoLWjDaRAdP9D(Spring 2024,23 个视频)
讲义 slides(PDF) slides_w26/cs224n-2026-lectureNN-*.pdf(例:lecture01-intro.pdf、lecture01-history.pdf)
期末项目 project.html(Custom / Default 两种;Default 是「Build GPT-2」)
Honor Code https://ed.stanford.edu/academics/masters-handbook/honor-code
生成式 AI 政策(校级) https://communitystandards.stanford.edu/generative-ai-policy-guidance

⚠️ 自学者最容易卡住的两点: 1. W26 没有公开录像(课程页只给到 Spring 2024 / Winter 2023 的播放列表)。 用 Spring 2024 的录像学,内容与 W26 讲次基本对应(个别讲次顺序不同,见 §2)。 2. Gradescope 只对注册学生开放。自学者把作业仓库下载下来,用仓库自带的测试 (pytest / 脚本里自带的 sanity check)当验收 —— 官方代码里一般会附「本地自测」入口。


2. 作业与期末项目全景

作业 主题 发布 截止 W26 占比*
A1 Exploring Word Vectors(词向量)—— 计数式(共现矩阵 + SVD)与预测式(GloVe) Week 1(1/6) 1/13(周二)4:30pm 参与评分(见下)
A2 Word2Vec and Dependency Parsing —— 推导 naive softmax 的偏导;Adam 与 Dropout;用 PyTorch 实现并训练依存句法分析器 Week 2(1/13) 1/22(周四)4:30pm 16%
A3 Self-Attention and Transformers —— 自注意力直觉;位置编码的性质推导;(几乎)从零写一个 Transformer 并在笔记本上训练 Week 3(1/22) 2/5(周四)4:30pm 16%
A4 LLM Evals —— LLM 评测的四类方法(闭式 benchmark / LLM-as-judge / …) Week 5(2/5) 2/19(周四)4:30pm 16%
Final Project 自定义项目 或 Default(Build GPT-2);含 proposal → milestone → report 三阶段 Week 3 起 见日程 49%

* 课程页原文提到 Final Project 占 49%,并说明 assignments 2–4 各 16%; 另有「drop 机制」:若 A2–A4 的成绩高于 A1,则不计 A1,按 A2–A4 各 16% 计。 自学者没有分数,这张表的意义是告诉你每份作业的份量(项目几乎占一半,别只顾做题)。

截止日期的性质:这些是给注册学生的硬截止。自学者当节奏参考用 —— 建议按同样的节奏走(每周一份),否则很容易在第 5 周之后掉队。


3. 每个作业要做什么(从官方题面抽取)

A1 · Exploring Word Vectors(25 分,due 1/13)

题目在 notebook 里(student/exploring_word_vectors.ipynb),两大部分:

notebook 里有一条提示:「If you are receiving a 'reset by peer' error, rerun the cell to restart the download.」—— GloVe 向量下载不稳,重跑即可。

配哪几讲:第 1 讲(词向量导论/历史)+ 第 2 讲(Word Vectors / word2vec)。

A2 · Word2Vec and Dependency Parsing(due 1/22)

官方题面(PDF)原文要点: - Part 1:探索 naive softmax 损失下训练 Word2Vec 时涉及的各偏导数; - Part 2:两种通用神经网络技巧 —— Adam 优化与 Dropout; - Part 3:用 Part 2 的技巧实现并训练依存句法分析器,再分析几个错误的依存分析。

配哪几讲:第 2 讲(word2vec)· 第 3 讲(反向传播与 NN 基础)· 第 4 讲(依存句法分析)。

A3 · Self-Attention and Transformers(due 2/5)

官方题面(PDF)原文要点(三个问题): 1. 建立 self-attention 机制的直觉; 2. 推导 位置编码(positional encodings)的若干性质; 3. (几乎)从零实现一个 Transformer,并在你自己的笔记本上开始训练。

题面还提醒:Gradescope 上要给题目正确打标签(否则 TA 扣分);代码提交走 bash create_submission.sh。

配哪几讲:第 6 讲(Transformers)· 第 7 讲(Attention 变体/后续)。

A4 · LLM Evals(due 2/19)

官方题面(PDF)原文要点:LLM 评测大致分四类,其中详细介绍了两类: - Standard closed-ended benchmarking(出题 + 可自动判对错,如 GSM8k、MATH); - LLM as judge(用模型给模型打分); - (题面继续展开另外两类)

配哪几讲:第 8 讲(Post-training)· 第 9 讲(Benchmarking and Evaluation)。

注意:W26 的 a4.pdf 页眉写的是「Winter 2025」—— 官方 handout 的笔误(内容按 W26 发布)。 这类小不一致别自己猜着改,以课程页的发布为准。

Final Project(49%)

两种选择:Custom(自定题目)或 Default(Build GPT-2,project_w25/…Build_GPT_2.pdf)。 三阶段:Proposal → Milestone → Report。自学者建议走 Default:目标明确、有 handout, 而且「从零构建 GPT-2」正好把 A3 的 Transformer 串起来。


4. 环境与先修


5. 建议的学习路线

节奏建议:讲次 → 立刻做对应作业(不要攒到最后)。参考 W26 日程:

周 讲次(W26 主题) 该做的作业 电子书
1 NLP 历史 · 词向量 A1 out → 立刻做 第01讲-NLP的历史/(已生成)
2 反向传播与 NN 基础 · 语言模型与 RNN A2 out → 做 A2 —
3 Transformers · 期末项目说明 A3 out;定项目题目 —
4 预训练(Scaling/Systems/Data)· 后训练(RLHF/SFT/DPO) 推进项目 —
5 高效适配(Prompting + PEFT)· Agents/Tool Use/RAG A4 out —
6–9 Benchmarking/Evaluation · Reasoning · 嘉宾讲座 项目 milestone/report —

做题时的用法建议(与 §0 一致): 1. 先读题面(handout / notebook),自己列出「这题要什么、我缺什么知识」; 2. 缺的知识去电子书/讲义里找(这正是这套电子书的用途),找不到再来问 AI 概念; 3. 卡 20 分钟以上 → 问「这个概念/这个 API 是怎么回事」,不要问「这题答案是什么」; 4. 做完后可以让 AI 扮演 TA 提问(例如「你为什么在这里用 TruncatedSVD 而不是 PCA?」) —— 这是检验自己理解的合法用法。


6. 官方政策原文(备查)


7. 已知情况与边界(诚实记录)

  1. W26 没有公开录像 —— 书与路线图用 Spring 2024 的录像(23 个视频)。 讲次顺序可能与 W26 略有差异,以 W26 日程表为准。
  2. 讲义是 PDF —— 当前电子书流水线还读不了 PDF 的文字(fitz/PyMuPDF 在本机可用, 但 vb 的材料层还没接)。所以第 01 讲目前是「录像字幕 + 视频帧」, PDF 讲义只作为原件存在 course/ 里备考。这是已知缺口,不是遗漏。
  3. A1 没有 handout —— 题目在 notebook 内(本文 §3 的题目清单是从 notebook 里抽的)。
  4. 截止日期是给注册学生的;自学者当节奏参考。
  5. 本文的数字与引用都来自:课程主页 HTML、assignments_w26/*.pdf(用 PyMuPDF 抽文本)、 a1.zip 内的 notebook。若课程页更新,以官方页面为准。

8. 怎么把材料弄到本地(两种情形)

情形 A:你自己在做(已经下载到本地)

材料放在 _local/(只服务本地:不进书架、不进公开版导出): _local/A1/a1.zip、_local/A2/a2.zip… 解压后按各作业仓库自带的 README 配置环境。

生成/更新本地材料:

python src/vb.py assignments "<课次目录>" --fetch            # 下**全部**材料
python src/vb.py assignments "<课次目录>" --fetch --dry-run  # 只列要下什么、多大

⚠️ 默认下全部,不跳过任何文件 —— 这一条是刻意的 ✓。 少下一个文件而不吭声,比明确报错危险得多:做题出问题时你会先怀疑自己 ✗, 而不是怀疑材料没下全。所以:没下成的文件一律大声列出来,并且退出码非 0 ✓; 真下不动时,页面顶部会写「本地材料不完整」。 (要刻意跳过大的,才用 --max-mb N ✓ —— 那是显式选择,也是显式警告 ✓。)

情形 B:朋友拿到的是分享版(没有 _local/)

公开版按白名单导出("书架能引用到的文件"✓),所以作业材料不在里面 ✗ —— 朋友需要自己下。给 TA 一段能直接粘给 coding-agent 的提示词:

请帮我把 Stanford CS224N 的作业材料下载到本地,来源是课程官网
https://web.stanford.edu/class/cs224n/assignments_w26/

要下的文件:
- 作业代码:a1.zip a2.zip a3.zip a4.zip
- 题目说明:a2.pdf a3.pdf a4.pdf(A1 的题目在它自己的 notebook 里)
- LaTeX 模板:a2_tex.zip a3_tex.zip a4_tex.zip

请:
1. 在 ./cs224n-assignments/ 下按 A1..A4 建目录,把对应文件放进去并解压;
2. 每个目录里若有 README,把「怎么装环境、怎么跑测试」两节翻译成中文告诉我;
3. 如果某个文件下载失败(例如 404 或需要登录),**不要猜别的地址**,直接告诉我它的名字。

把"CS224N / 上面的文件名 / URL"换成你要做的课程即可 ✓。 这一段的意义:初学者的困难往往不是"不会做作业",而是"找不到材料" ✗ —— 所以这里给的不是安慰,是一条能执行的路 ✓。