Assignments · Spring 2026

五个作业,从分词器到 RL

全部课业就是 A1–A5,每个配讲义 PDF、代码仓库和测试;每人 6 个 late day,单个作业最多用 3 个。

3/304/64/134/204/275/45/115/185/256/1
A1 · 3/30 发布 · 4/15 截止

Building a Transformer LM

对应讲座 L1 · 暂无笔记L2 · 暂无笔记

版本 26.0.3 · 47 页 · 15 个代码模块全部手写

要实现的:BPE tokenizer(训练 + 编解码)→ Transformer LM(Linear / Embedding / RMSNorm / SwiGLU / RoPE / softmax / scaled dot-product attention / MHA / block / 整模型)→ cross-entropy、SGD、AdamW、cosine + warmup、gradient clipping → 训练循环 + checkpoint → 解码生成。

要跑的:TinyStories 上训 BPE → 编码数据集 → 训小 Transformer → 采样 + 困惑度;再用 OpenWebText 训一版提交 leaderboard。

约束:不许用 torch.nn / torch.nn.functional / torch.optim 里的现成定义(只允许 Parameter、容器类 Module/ModuleList/Sequential、Optimizer 基类),其余 PyTorch 随便用。

部分 Problems(分值)
2 BPE Tokenizer unicode1 (1)、unicode2 (3)、train_bpe (15)、train_bpe_tinystories (2)、train_bpe_expts_owt (2)、tokenizer (15)、tokenizer_experiments (4)
3 Transformer 架构 linear (1)、embedding (1)、rmsnorm (1)、positionwise_feedforward (2)、rope (2)、softmax (1)、scaled_dot_product_attention (5)、multihead_self_attention (5)、transformer_block (3)、transformer_lm (3)、transformer_accounting (5)
4 训练目标与优化器 cross_entropy (1)、learning_rate_tuning (1)、adamw (2)、adamw_accounting (2)、learning_rate_schedule、gradient_clipping (1)
5 训练循环 data_loading (2)、checkpointing (1)、training_together (4)
6 生成 decoding (3)
7 实验 experiment_log (3)、learning_rate (3)、batch_size_experiment (1)、generate (1)、layer_norm_ablation (1)、pre_norm_ablation (1)、no_pos_emb (1)、swiglu_ablation (1)、main_experiment (2)、leaderboard (6)

数据集:TinyStories、OpenWebText(单文件纯文本)。