CS336 Language Modeling from Scratch 课程资料研读图谱

CS336 Language Modeling from Scratch 课程资料研读图谱

资料来源:

总览

CS336 的定位不是“使用 API 做 NLP”,而是把语言模型当成一个需要亲手拆装的工程系统。课程从 BPE tokenizer、Transformer、AdamW 和 training loop 起步,再进入 GPU kernel、Triton、parallelism、scaling laws、inference serving、evaluation、data curation、post-training、RLVR 和 multimodal。

核心读法:每一讲都可以放进同一个优化问题里:在固定 compute、data、memory、latency 和人类反馈预算下,怎样最大化模型质量和可部署性。换句话说,课程不是只教一个 Transformer,而是在训练学生把 architecture、data、systems、scaling、evaluation 和 alignment 作为一个耦合系统来思考。

学习栈

栈 关键词 你应该能回答的问题
Tokenization 字符、字节、词、BPE、压缩率、未知词处理 为什么 tokenizer 会影响上下文长度、参数量和多语言能力?
Architecture pre-norm、RoPE、SwiGLU、GQA、MoE、attention alternatives 哪些现代 LM 组件是稳定共识,哪些仍是经验性选择?
Training Systems FLOPs、MFU、GPU memory、Triton kernels、parallelism 一个训练 run 为什么慢、为什么爆显存、为什么 MFU 低?
Scaling Kaplan、Chinchilla、muP、batch/LR/token/model size recipes 给定固定 compute,模型大小和 token 数该怎么选?
Data/Eval Common Crawl、dedup、mixing、MMLU、agent benchmarks、contamination 数据和评测如何共同决定模型“看起来有多聪明”?
Alignment SFT、RLHF、DPO、PPO/GRPO、RLVR、多模态 tokenization base model 如何变成 assistant,文本模型如何扩展到图像/视频?

课程目录

  • L01 Mar 30:Overview, tokenization(Percy)
  • L02 Apr 1:PyTorch, einops, FLOPs, memory, arithmetic intensity(Percy)
  • L03 Apr 6:Architectures, hyperparameters(Tatsu)
  • L04 Apr 8:Attention alternatives and mixture of experts(Tatsu)
  • L05 Apr 13:GPUs, TPUs(Tatsu)
  • L06 Apr 15:Kernels, Triton(Percy)
  • L07 Apr 20:Parallelism I(Percy)
  • L08 Apr 22:Parallelism II(Tatsu)
  • L09 Apr 27:Scaling laws I(Tatsu)
  • L10 Apr 29:Inference(Percy)
  • L11 May 4:Scaling laws II(Tatsu)
  • L12 May 6:Evaluation(Percy)
  • L13 May 11:Data I: sources, datasets(Percy)
  • L14 May 13:Data II: filtering, deduplication, mixing, synthetic data(Percy)
  • L15 May 18:Mid/post-training: SFT/RLHF(Tatsu)
  • L16 May 20:Post-training: RLVR(Tatsu)
  • L17 May 27:Alignment - multimodality(Percy)
  • L18 Jun 1:Guest lecture: Daniel Selsam(Guest)
  • L19 Jun 3:Guest lecture: Dan Fu(Guest)

每节课详细笔记

L01 Overview, tokenization

  • 日期:Mar 30
  • 讲师:Percy
  • 标签:foundation / tokenization / history
  • 课件:Python trace

一句话定位: 课程开场把 CS336 定义为从底层理解 LM 的工程课,并用 tokenization 作为第一块可实现组件。

核心脉络: 第一讲把整门课的边界画清楚:不要只停留在 prompt/API 层,而要能从 tokenizer、Transformer、optimizer、training loop 到 data 和 alignment 都自己解释和实现。tokenization 是第一个练习点,因为它把“自然语言”变成模型能处理的离散序列。

详细展开:

  • 课程动机:现代研究者越来越远离底层实现。2016 年很多 NLP 研究会自己训练模型;2018 年进入下载 BERT 然后 fine-tune 的时代;现在大量工作只是调用 GPT/Claude/Gemini API。抽象层变高提升效率,但也让底层系统变成黑盒。
  • 工业化现实:frontier models 训练成本巨大,GPT-4 级别模型训练细节不公开。课程承认学生不可能复刻 frontier model,但可以学习可迁移的 mechanics 和 mindset。
  • 三类知识:mechanics 是 Transformer、parallelism、optimizer 怎么工作;mindset 是如何榨干硬件、认真对待 scaling;intuition 是数据与建模选择如何影响 accuracy,其中 intuition 最容易随 scale 和数据分布失效。
  • 语言模型历史线:Shannon entropy 和 n-gram 是统计语言建模源头;LSTM/seq2seq/attention 是神经序列建模阶段;Transformer 和 scaling laws 则开启 foundation model 阶段。
  • open models 线索:LLaMA、Mistral、DeepSeek、Qwen、Kimi、OLMo、Nemotron、Marin 等让课程可以讨论现代模型 recipe,但 open-weight 不等于 fully open。
  • BPE 的核心不是“分词更聪明”,而是压缩:从字节/字符开始,反复合并最频繁相邻 token,在词表大小、序列长度和泛化之间折中。

关键公式/工程要点:

  • BPE 训练循环:统计相邻 token pair 频次 -> 选择最高频 pair -> 分配新 token id -> 替换语料中的该 pair -> 重复 num_merges 次。
  • 压缩率可粗略写作 compression_ratio = 原始字符数 / token 数;词表越大通常 token 数越少,但 embedding/unembedding 参数也更大。

容易混淆或踩坑:

  • 不要把 tokenizer 当成预处理小工具。它会影响上下文长度、罕见词处理、多语言公平性、byte fallback 和训练效率。
  • 不要直接把 frontier model 的未公开细节当作课程结论。CS336 更强调公开模型和可实现机制。

自检问题:

  • 你能手写 BPE 的 merge 函数吗?
  • 为什么 byte-level tokenizer 可以避免 unknown token?
  • open-weight、open-source、open-development 三者有什么区别?

原页面摘要保留:

  • 语言模型的知识分三类:mechanics、mindset、intuition;课程重点是可迁移的 mechanics 与硬件效率 mindset。
  • 回顾从 Shannon entropy、n-gram、LSTM、seq2seq、attention、Transformer 到 GPT-3/Chinchilla/open models 的路线。
  • BPE 的关键是反复合并最频繁相邻 token,对压缩率、词表规模和未知词处理做折中。
  • 作业线覆盖 tokenizer、Transformer、optimizer、systems、scaling、data、alignment,强调最小脚手架和大量手写代码。

关联论文/主题: Shannon 1950;Bengio 2003;Transformer 2017;GPT-2;Kaplan 2020;Chinchilla 2022

L02 PyTorch, einops, FLOPs, memory, arithmetic intensity

  • 日期:Apr 1
  • 讲师:Percy
  • 标签:pytorch / flops / memory / mfu
  • 课件:Python trace

一句话定位: 这一讲把训练成本拆成数据类型、FLOPs、显存、带宽和 MFU,目标是能估算一个 70B/15T 训练任务需要多久。

核心脉络: 第二讲把“训练一个模型需要多久/多少显存”变成可算的问题。它连接 PyTorch/einops 编程、数据类型、FLOPs、显存、带宽和 MFU。

详细展开:

  • 数据类型:fp32 稳定但贵;fp16 省显存但指数范围小;bf16 有 fp32 级指数范围、常用于训练;fp8/fp4 更激进,多用于特定硬件路径或推理/混合精度策略。
  • mixed precision 的思路是:矩阵乘法用低精度 tensor core 加速,关键累加、norm、optimizer state 保持更高精度,以兼顾速度和稳定性。
  • FLOPs 估算从线性层开始。一个矩阵乘法 A[m,k] @ B[k,n] 大约是 2mkn FLOPs;Transformer 的大头来自 attention projections、FFN 和 logits。
  • 训练成本通常约为 forward 的 3 倍左右:一次 forward、一次 backward through activations、一次 backward to parameters。课程用这种近似建立资源直觉,而不是迷信精确到个位数的 FLOP 公式。
  • 显存拆解:parameters、gradients、optimizer states、activations、temporary buffers。AdamW 会为每个参数维护一阶/二阶矩,因此 optimizer memory 很重。
  • MFU = 实际训练吞吐对应 FLOPs / 理论峰值 FLOPs。它比 tokens/sec 更可迁移,因为不同模型每 token FLOPs 不同。

关键公式/工程要点:

  • MatMul FLOPs: C = A[m,k]B[k,n] 约 2mkn。
  • 粗略训练 FLOPs: total ≈ 6 × 参数量 × 训练 token 数。这个近似常用于 decoder-only LM 的预算估计。
  • MFU ≈ observed_tokens_per_second × FLOPs_per_token / hardware_peak_FLOPs。

容易混淆或踩坑:

  • 显存不是只看参数量,activation 与 optimizer states 常常才是训练限制。
  • FLOPs 多不等于慢;如果 kernel memory-bound,瓶颈在带宽和数据搬运。

自检问题:

  • 70B 模型用 AdamW 训练,参数、梯度、optimizer state 分别大约占多少?
  • 为什么 bf16 比 fp16 更适合训练?
  • MFU 低时,你会先检查 kernel、通信还是数据加载?

原页面摘要保留:

  • fp32、fp16、bf16、fp8/fp4 的差异不只是精度,也决定 tensor core 路径和内存压力。
  • 训练一步的粗略 FLOPs 可以从矩阵乘法 forward/backward 叠加得到,Transformer 总成本近似和参数量与 token 数相乘。
  • MFU 衡量实际 token/sec 对理论峰值 FLOPs 的利用率,是从课程第 2 讲延伸到系统作业的核心指标。
  • 内存不仅包括参数,还包括梯度、优化器状态、activation、临时 buffer;AdamW 的状态常常比模型参数本身更重。

关联论文/主题: Adagrad 2011;PaLM 2022

L03 Architectures, hyperparameters

  • 日期:Apr 6
  • 讲师:Tatsu
  • 标签:architecture / hyperparameters / normalization
  • 课件:course material

一句话定位: 讲 modern Transformer 的共识与分歧:LLaMA-like 架构、pre-norm、RoPE、SwiGLU、bias-free linear,以及稳定性技巧。

核心脉络: 第三讲解释现代 decoder-only Transformer 的“默认件”:pre-norm、RoPE、SwiGLU、bias-free linear/RMSNorm,以及为什么很多架构选择来自经验性 scaling。

详细展开:

  • 原始 Transformer 使用 post-norm、sinusoidal position embedding 和 ReLU FFN;现代 LLaMA-like 架构通常使用 pre-norm、RoPE、SwiGLU/RMSNorm,并去掉许多 bias。
  • pre-norm 的直觉是让 residual stream 成为主路径,normalization 不阻断残差信号流,使深层训练更稳定。post-norm 在浅层或 BERT 时代可用,但大规模 decoder-only 中更难训。
  • RoPE 通过对 query/key 成对维度做旋转,把绝对位置变成 attention score 中的相对位置信息。它是长上下文扩展、位置插值和多模态 MRoPE 的基础。
  • FFN 是 Transformer 参数和 FLOPs 的大头。SwiGLU 通过门控乘法提升表达力,但三矩阵结构会改变 hidden dimension 的配置。
  • head dimension、num heads、kv heads、ffn hidden size、vocab size、depth/width ratio 都是 architecture 与 systems 的交界点。
  • 稳定性技巧包括 QK norm、residual scaling、初始化策略、learning-rate/batch recipe。课程的态度是:优先复用已被公开模型验证的 recipe,再用 scaling sweep 验证。

关键公式/工程要点:

  • Pre-norm block: x -> x + Attention(Norm(x)); x -> x + FFN(Norm(x))。
  • SwiGLU: FFN(x) = (Swish(xW1) ⊙ xW2)W3。
  • RoPE: 对每一对 hidden dims 应用位置相关旋转矩阵 R_pos,然后用 (R_i q)^T(R_j k) 表示相对位置影响。

容易混淆或踩坑:

  • 不要把“LLaMA-like”理解成唯一正确架构。2024-2026 模型仍在尝试 hybrid attention、QK norm、MoE、linear attention。
  • 架构 ablation 在小模型上成立,不代表大模型一定成立。

自检问题:

  • pre-norm 为什么比 post-norm 更适合很深的 decoder-only LM?
  • SwiGLU 为什么通常要调小 hidden dimension?
  • RoPE 和 learned absolute embedding 的差异是什么?

原页面摘要保留:

  • 现代 LM 大多从原始 Transformer 偏移到 pre-norm residual path,减少深层训练不稳定。
  • RoPE 把绝对位置编码成旋转,使 attention 分数天然带相对位置信息,且更适合长上下文外推。
  • SwiGLU/GeGLU 体现 gated FFN 思路:用乘性门控提高 FFN 表达力,但要相应调整 hidden dimension。
  • 超参数不是孤立选择:head dim、ffn dim、vocab size、norm placement、初始化和 optimizer 都与 scale 交互。

关联论文/主题: LayerNorm;RoPE;SwiGLU;RMSNorm;QK-norm

L04 Attention alternatives and mixture of experts

  • 日期:Apr 8
  • 讲师:Tatsu
  • 标签:attention / mamba / moe
  • 课件:course material

一句话定位: 这一讲围绕长上下文成本展开:local/global attention、linear attention、Mamba/GDN,以及 MoE 的稀疏激活。

核心脉络: 第四讲围绕 attention 的二次成本和稀疏/线性/状态空间替代路线展开,同时介绍 MoE 通过稀疏激活扩容的思想。

详细展开:

  • 标准 attention 成本随序列长度 n 二次增长,长上下文时 QK^T 和 attention matrix 的计算/存储都很贵。
  • local + global attention 是保守工具箱:局部窗口控制成本,少量 global token 维持跨段信息流。Longformer 和 Sparse Transformer 是代表。
  • linear attention 的基础观察是当 softmax 被替换/近似后,QK^T V 可以重排成 Q(K^T V),从 O(n^2) 变成 O(n)。
  • recurrent form 把历史压进 state S_t,使训练可并行、推理可递推。Mamba-2、Gated Delta Net 等是在这个方向上加 gating、decay、selective erase。
  • MoE 的目标是增加总参数容量但每 token 只激活少量 experts。它改善 compute/parameter tradeoff,但引入 routing、load balancing、expert parallel 和 all-to-all 通信。
  • 课程强调缺少严格可控 ablation:许多 hybrid attention/MoE 方案在真实大模型里有效,但具体收益依赖 recipe。

关键公式/工程要点:

  • 标准 attention: softmax(QK^T / sqrt(d))V。
  • 线性重排直觉:QK^T V = Q(K^T V),避免显式 n×n attention matrix。
  • Mamba/GDN 式 state: St = γ_t S{t-1} + k_t v_t^T,并通过门控控制写入和遗忘。

容易混淆或踩坑:

  • linear attention 的速度优势通常伴随表达能力或训练 recipe 的代价。
  • MoE 参数更多不等于每 token 更贵,但通信和负载不均可能吃掉收益。

自检问题:

  • 为什么 decode 阶段更喜欢 recurrent/stateful 形式?
  • MoE 为什么需要 load-balancing loss 或 auxiliary-free routing?
  • local attention 会损失什么类型的信息?

原页面摘要保留:

  • 标准 attention 的二次成本来自 QK^T,linear attention 通过重排 Q(K^T V) 获得线性时间视角。
  • linear attention 的 recurrent form 让训练和推理可以使用不同计算形态,是 Mamba/GDN 等模型的桥梁。
  • Mamba-2 和 Gated Delta Net 通过 gating、state decay、selective erase 增强线性/状态空间模型表达力。
  • MoE 用稀疏路由提高参数容量,但带来 load balancing、expert parallelism 和通信复杂度。

关联论文/主题: Linear Attention;Mamba-2;Gated Delta Net;Switch Transformer;Mixtral

L05 GPUs, TPUs

  • 日期:Apr 13
  • 讲师:Tatsu
  • 标签:gpu / tpu / roofline / flashattention
  • 课件:course material

一句话定位: 用 GPU 执行模型训练不是魔法:它是 SM、warp、SRAM/HBM、matmul 形状和 IO-aware 算法的组合问题。

核心脉络: 第五讲把 GPU 拆成可理解的硬件:SM、warp、shared memory、L2/HBM、SIMT 执行模型,并用 FlashAttention 展示 IO-aware 算法如何改变实际性能。

详细展开:

  • CPU 优化少量复杂线程的低延迟;GPU 优化大量简单线程的吞吐。语言模型训练的大矩阵乘法正好适合 GPU,但前提是数据布局和 kernel 写得好。
  • SM 是 GPU 的执行单元,block 被调度到 SM,thread 以 warp 为单位执行。分支发散会让同一 warp 内线程走不同路径,从而浪费吞吐。
  • 内存层级决定很多性能:register/shared memory/L1 快但小,L2 和 HBM 更大但慢。现代 kernel 优化常常是减少 HBM 往返。
  • roofline 模型:如果 arithmetic intensity 低,kernel memory-bound;如果足够高,才可能接近 compute peak。
  • FlashAttention 不近似 attention,而是通过 tiling 在线计算 softmax 和输出,把 n×n attention matrix 的中间结果留在 SRAM/寄存器附近。
  • TPU 与 GPU 的重要差异在互连和矩阵单元设计;它影响 parallelism 策略,而不只是单卡 FLOPs。

关键公式/工程要点:

  • Arithmetic intensity = FLOPs / bytes moved。
  • Memory-bound 上界 ≈ bandwidth × arithmetic_intensity;compute-bound 上界 ≈ peak FLOPs。
  • FlashAttention 维护分块 softmax 的 running max 与 normalization,避免 materialize 全 attention matrix。

容易混淆或踩坑:

  • 不要只看理论 FLOPs。一个 FLOP 少但 HBM 访问多的算法可能更慢。
  • GPU 优化不是盲目加线程,occupancy、coalescing、bank conflict、register pressure 都要看。

自检问题:

  • 为什么 elementwise add 通常 memory-bound?
  • FlashAttention 为什么叫 exact attention?
  • shared memory 为什么既宝贵又危险?

原页面摘要保留:

  • CPU 优化低延迟的少量复杂线程,GPU 优化大量简单线程的吞吐量。
  • GPU 层级存储中 shared memory/L1 更快但更小,HBM 更大但带宽/延迟受限;算法快慢常由数据搬运决定。
  • roofline 视角把 kernel 分成 compute-bound 与 memory-bound;arithmetic intensity 决定优化方向。
  • FlashAttention 的关键是 IO-awareness:分块把 attention 中间矩阵留在 SRAM 中,避免 materialize 巨大的 attention matrix。

关联论文/主题: FlashAttention;Kaplan 2020

L06 Kernels, Triton

  • 日期:Apr 15
  • 讲师:Percy
  • 标签:triton / kernels / profiling
  • 课件:Python trace

一句话定位: 从 add、matmul、GELU 等小 kernel 出发,理解 Triton 的 block/programming model 与硬件执行模型的接缝。

核心脉络: 第六讲从 PyTorch profile 进入 Triton kernel 编写,目标是理解 programming model 和硬件执行模型之间的映射。

详细展开:

  • Triton 的 program 类似一个 block/tile,program id 决定当前 tile 处理哪一段数据。你写的是 tile-level SIMD 风格代码,而不是每个线程的 CUDA C。
  • add(dim=2048) 这类 elementwise kernel 主要受内存带宽限制,优化重点是连续访问、coalescing、减少 launch/读写次数。
  • matmul 的优化重点是 tiling:把 A/B tile 载入更快的层级,复用数据,最后写回 C。维度大小、tile size 和 tensor core 路径都会影响速度。
  • GELU 例子展示 fused/compiled kernel 的价值。naive 写法会把中间结果写回 HBM;融合后可在寄存器/片上完成更多操作。
  • profiling 的关键不是看一个总耗时,而是定位是 kernel launch、memory bandwidth、tensor core utilization、还是 Python overhead。
  • Triton 让写高性能 kernel 更容易,但仍需要理解 block occupancy、warp 数、shared memory、register pressure。

关键公式/工程要点:

  • Tiling matmul: C[i:i+B, j:j+B] += A[i:i+B, k:k+B] @ B[k:k+B, j:j+B]。
  • GELU 常用近似:0.5x(1 + tanh(sqrt(2/pi)(x + 0.044715x^3)))。

容易混淆或踩坑:

  • Triton 代码短不代表自动最快。tile size 和 num_warps 不合适会明显掉速。
  • profile 时要 warmup,并区分 compile time 与 steady-state runtime。

自检问题:

  • 为什么 fused GELU 可能比单独调用多个 PyTorch op 快?
  • matmul dim=128 和 dim=2048 的性能瓶颈可能有什么不同?
  • memory coalescing 是什么?

原页面摘要保留:

  • warp occupancy、block occupancy、bank conflict、memory coalescing 是 kernel 性能的日常诊断词汇。
  • 简单 elementwise add 多半 memory-bound;matmul 更可能 compute-bound,但小矩阵和差 tiling 会浪费 tensor core。
  • naive GELU、builtin GELU、compiled GELU 的差别体现了融合 kernel 与减少内存往返的重要性。
  • Tiling 是 Triton matmul 的核心:把 global memory 访问改写成可复用的块,并用 program id 管理 tile 网格。

关联论文/主题: FlashAttention;Triton practice

L07 Parallelism I

  • 日期:Apr 20
  • 讲师:Percy
  • 标签:parallelism / collectives / nccl
  • 课件:Python trace

一句话定位: 先不急着记各种并行名词,先掌握 collective operations:broadcast、scatter、gather、reduce、all-reduce、all-to-all。

核心脉络: 第七讲是分布式训练通信原语课。先理解 broadcast/scatter/gather/reduce/all-reduce/all-to-all,后面所有并行策略都只是这些原语的组合。

详细展开:

  • rank 是一个参与分布式计算的进程/GPU;world size 是 rank 总数。大多数分布式训练 bug 都可以追溯到 rank 间 tensor shape、同步顺序或通信组出错。
  • broadcast 把一个 rank 的 tensor 复制给所有 rank;scatter/gather 是拆分和收集;reduce 是聚合;all-reduce 是所有 rank 都拿到聚合结果。
  • all-reduce 可以分解成 reduce-scatter + all-gather,这也是理解高效梯度同步和 ZeRO/FSDP 的关键。
  • all-to-all 是最通用的通信:每个 rank 给每个 rank 发一段数据。MoE expert routing 常需要它,因此网络拓扑和带宽会成为瓶颈。
  • NCCL 提供 GPU collective 通信实现,会根据拓扑选择 ring/tree 等算法。
  • 真正的训练系统会 overlap communication and computation,否则 GPU 等网络,MFU 会掉。

关键公式/工程要点:

  • Data parallel gradient sync: 每个 rank 计算本地梯度 g_i,然后 all-reduce 求平均 g = sum_i g_i / world_size。
  • Bandwidth-limited all-reduce 最优实现常看成 reduce-scatter + all-gather。

容易混淆或踩坑:

  • 不要在概念上把 all-reduce 当成魔法;它的通信量会随参数量和 world size 影响 step time。
  • all-to-all 在 MoE 中尤其昂贵,expert imbalance 会让慢 rank 拖住所有人。

自检问题:

  • reduce 和 all-reduce 差在哪?
  • 为什么 ZeRO 要用 reduce-scatter/all-gather?
  • expert parallel 为什么偏好高带宽 all-to-all 网络?

原页面摘要保留:

  • rank 是具体 GPU/进程,world size 是总参与者数;分布式训练的很多复杂性来自 tensor 在 rank 间如何移动。
  • all-reduce 可以拆成 reduce-scatter 与 all-gather;这是理解 data parallel gradient sync 和 ZeRO 的入口。
  • all-to-all 是最一般也最昂贵的通信形态,MoE 的 expert routing 很容易触发它。
  • NCCL 是 GPU 集群通信实际使用的基础库,性能受拓扑、消息大小、带宽和 overlap 影响。

关联论文/主题: NCCL;ZeRO;Megatron-LM

L08 Parallelism II

  • 日期:Apr 22
  • 讲师:Tatsu
  • 标签:data parallel / tensor parallel / pipeline parallel / networking
  • 课件:course material

一句话定位: 第二次 parallelism 更偏大模型训练系统:单卡受显存和算力限制,必须组合数据、张量、流水、序列和专家并行。

核心脉络: 第八讲把通信原语组合成真实大模型并行策略:data parallel、tensor parallel、pipeline parallel、sequence/context parallel、expert parallel 和 optimizer state sharding。

详细展开:

  • 单 GPU 限制有两类:算不够快、放不下。并行训练既要切 compute,也要切 memory。
  • data parallel 最简单:每张卡复制模型,处理不同 batch shard,再同步梯度。它扩展性受梯度 all-reduce 限制,也浪费 optimizer/parameter memory。
  • tensor parallel 切矩阵乘法,比如把 FFN 或 attention projection 的列/行分给多卡,需要在层内做 all-reduce/all-gather。
  • pipeline parallel 按层切模型,用 micro-batch 填流水线;主要问题是 bubble 和激活传输。
  • FSDP/ZeRO 把参数、梯度、optimizer states 分片,减显存但增加通信和参数 gather。
  • 多维并行组合是大模型常态:例如 DP × TP × PP × EP,同时还要考虑 checkpointing、activation recomputation 和网络拓扑。

关键公式/工程要点:

  • Pipeline bubble 粗略随 pipeline stages 和 micro-batches 比例变化;micro-batches 越少,bubble 越明显。
  • ZeRO memory saving 来自将 optimizer state/gradient/parameter 按 data parallel ranks 分片。

容易混淆或踩坑:

  • 并行维度不是越多越好。每加一种并行都增加通信、调度和 debug 成本。
  • 小模型上 tensor parallel 可能反而慢,因为通信开销超过计算收益。

自检问题:

  • 什么时候 data parallel 足够?
  • tensor parallel 和 pipeline parallel 分别切了模型的哪个维度?
  • FSDP 为什么可能降低显存但降低吞吐?

原页面摘要保留:

  • 多 GPU 训练同时解决两件事:模型/optimizer/activation 放不下,以及单卡训练太慢。
  • GPU 与 TPU 的互连拓扑不同,会影响 all-reduce、all-to-all、tensor parallel 和 expert parallel 的代价。
  • data parallel 简单但复制模型;tensor parallel 切矩阵;pipeline parallel 切层;ZeRO/FSDP 切 optimizer/gradient/parameter 状态。
  • 实际大训练通常是多维并行组合,而不是单一 parallelism trick。

关联论文/主题: GPipe;Megatron-LM;ZeRO;Megatron parallelism

L09 Scaling laws I

  • 日期:Apr 27
  • 讲师:Tatsu
  • 标签:scaling / kaplan / sample complexity
  • 课件:course material

一句话定位: 从统计学习中的 sample complexity 到现代 neural scaling laws:小模型 sweep 能否预测大模型训练选择?

核心脉络: 第九讲进入 scaling laws 的基本思想:用小规模实验拟合可外推规律,帮助决定大训练中的模型大小、token 数和 compute 分配。

详细展开:

  • 课程用一个问题开场:如果你有 10000 张 B200 一个月,要训练一个开源 LM,应该训练多大?这不是靠直觉拍脑袋,而需要 scaling law。
  • 早期 sample complexity 给出理论上界,但真实 neural network loss 往往有更稳定的经验幂律。
  • Hestness 等早期工作发现多任务上 loss 随数据/compute 可预测下降;Kaplan 将模型大小、数据和 compute 系统化。
  • scaling laws 的工程价值是外推:在小预算下扫模型和数据,再预测大预算最优点,减少昂贵试错。
  • 危险在于 extrapolation fragility:如果架构、数据分布、optimizer、训练 horizon 变了,拟合曲线可能失效。
  • 课程后续会用 Chinchilla 和现代案例修正 Kaplan 式结论。

关键公式/工程要点:

  • 典型幂律形式:loss ≈ irreducible_loss + A/N^α + B/D^β,其中 N 是参数量,D 是 token 数。
  • compute budget 粗略 C ≈ 6ND,用来把模型大小和训练 token 数联系起来。

容易混淆或踩坑:

  • 不要只记“越大越好”。compute-optimal 关注的是固定预算下 N 和 D 的配比。
  • 小模型 sweep 的数据质量必须和大模型训练尽量一致。

自检问题:

  • Kaplan 和 Chinchilla 的结论差异是什么?
  • 为什么 scaling law 可以帮你决定 model size?
  • 哪些 recipe 变化会破坏外推?

原页面摘要保留:

  • 课程把 scaling laws 当作工程决策工具:给定 10000 张 B200 一个月,应该选多大模型、多少 token、什么 batch/LR。
  • 早期 scaling work 观察到数据量与任务性能呈可预测曲线;Kaplan 将模型大小、数据、compute 放进统一幂律框架。
  • scaling law 的价值不在漂亮拟合,而在减少昂贵大模型试错。
  • 风险是外推条件被破坏:架构、数据分布、optimizer、训练 recipe 变了,旧曲线未必还成立。

关联论文/主题: Hestness 2017;Kaplan 2020;Chinchilla 2022

L10 Inference

  • 日期:Apr 29
  • 讲师:Percy
  • 标签:inference / kv cache / quantization
  • 课件:Python trace

一句话定位: 推理和训练不是同一个 workload:prefill 像训练,decode 是自回归小步循环,KV cache 让显存和带宽成为主角。

核心脉络: 第十讲把推理拆成 prefill 和 decode,并解释为什么服务端优化重点从训练时的 FLOPs 转向 KV cache、batching、latency/throughput 和量化。

详细展开:

  • prefill 处理 prompt,所有输入 token 已知,像训练一样可并行;decode 每次只生成一个 token,强自回归,容易被 KV cache 读写限制。
  • KV cache 让模型不用重复计算过去 token 的 K/V,但显存随 batch × sequence length × layers × kv_heads × head_dim 增长。
  • GQA/MQA 通过共享 K/V heads 降低 cache;MLA 用 latent 表示进一步压缩;local attention/sliding window 限制可见历史。
  • latency 和 throughput 冲突:大 batch 吞吐高但单请求延迟可能变差;continuous batching 让动态请求更高效。
  • lossy shortcut 包括量化、近似 attention、剪枝;lossless shortcut 包括 prefix caching、speculative decoding 后验证、kernel 优化。
  • 服务系统还要处理动态 workload:不同 prompt 长度、不同输出长度、请求到达时间和 SLA。

关键公式/工程要点:

  • KV cache size ≈ batch × seq_len × layers × 2(K,V) × kv_heads × head_dim × bytes。
  • Decode 每步主要读历史 KV,长上下文下 memory bandwidth 很容易成为瓶颈。

容易混淆或踩坑:

  • 训练快的模型不一定推理便宜。attention/KV 设计对 serving 成本影响巨大。
  • 量化需要逐任务评测,不能只看 perplexity 或小样本 demo。

自检问题:

  • prefill 和 decode 谁更 compute-bound?谁更 memory-bound?
  • GQA 为什么能省 KV cache?
  • speculative decoding 为什么需要 verifier?

原页面摘要保留:

  • prefill 可以并行处理输入 tokens,decode 每步只生成一个 token,但要读写越来越大的 KV cache。
  • latency 与 throughput 存在 tradeoff;batching、continuous batching、speculative decoding 和 cache 管理都服务于这个折中。
  • GQA/MQA/MLA/CLA/local attention 共同目标是降低 KV cache 或 attention 计算成本,同时尽量少损失质量。
  • AWQ 等量化方法是 lossy shortcut;部署时必须用 evaluation 和 regression tests double check。

关联论文/主题: GQA;MLA;Longformer;Mistral 7B;AWQ

L11 Scaling laws II

  • 日期:May 4
  • 讲师:Tatsu
  • 标签:scaling / mup / minicpm / deepseek
  • 课件:course material

一句话定位: 从 case study 看 scaling recipe:MiniCPM、DeepSeek、muP、学习率、batch size 与 token/model ratios。

核心脉络: 第十一讲是 scaling law 的案例研究课,关注现代 recipe 如何用 muP、batch/LR sweep 和公开模型报告来降低超参迁移成本。

详细展开:

  • Chinchilla 给出 compute-optimal 方向,但实际训练还要选初始化、optimizer、batch、LR、depth/width ratio 和数据 mix。
  • muP 的目标是让宽度扩展时最优超参更稳定。若成立,小模型上调好的 LR 可以更可信地迁移到大模型。
  • MiniCPM 展示小模型也可以通过细致 scaling recipe、muP 和数据/训练优化达到强性能。
  • DeepSeek 系列报告展示现代开源模型如何公开部分架构、MoE、MLA、训练预算和 scaling 细节。
  • optimal batch size 随模型规模和数据量变化;太小吞吐差,太大可能样本效率下降或需要 LR 调整。
  • 课程强调 scaling recipe 是系统工程,不只是拟合一条 loss 曲线。

关键公式/工程要点:

  • muP 关注参数化方式,使 width 变化时 activation/gradient scale 保持可比。
  • IsoFLOP 分析:固定 compute,扫不同 N 和 D,找最小 validation loss。

容易混淆或踩坑:

  • 不要把 Chinchilla ratio 当作固定法则。数据质量和目标任务变了,最优 token/param 会变。
  • LR/batch 与模型 scale 强交互,不能只从单一小模型外推。

自检问题:

  • muP 想解决什么问题?
  • IsoFLOP 曲线怎么用于选模型大小?
  • 为什么 optimal batch 是 scaling recipe 的一部分?

原页面摘要保留:

  • Chinchilla 提供 compute-optimal 直觉,但真实 recipe 还要处理初始化、optimizer、architecture 和数据质量。
  • muP 试图让不同宽度模型的最优学习率等超参更稳定,从而降低 scaling sweep 成本。
  • MiniCPM 展示小模型也能靠细致 recipe 取得强性能;DeepSeek 系列展示现代开源模型如何公开一部分 scaling 细节。
  • 模型 size、data size、batch 和 LR 最好一起 sweep;孤立调一个超参容易误判。

关联论文/主题: Chinchilla 2022;muP;MiniCPM;DeepSeek

L12 Evaluation

  • 日期:May 6
  • 讲师:Percy
  • 标签:evaluation / benchmarks / contamination
  • 课件:Python trace

一句话定位: Evaluation 的难点是把抽象的“好”变成具体 metric,同时避免 leaderboard 过拟合、数据污染和生态无效。

核心脉络: 第十二讲讨论 evaluation:把抽象的“模型好不好”压成指标时,会引入任务选择、数据污染、评测质量和生态有效性问题。

详细展开:

  • perplexity 直接对应语言建模目标,但用户关心的常常是推理、代码、代理、医学、安全、工具使用等复杂能力。
  • MMLU/MMLU-Pro/GPQA/HLE 测知识和推理;SWE-bench/TerminalBench/CyBench/MLEBench 测更接近真实任务的执行能力。
  • open-ended response 很难自动打分,于是出现 Chatbot Arena、AlpacaEval、WildBench 等偏好/模型裁判路线。
  • 评测污染是核心风险:如果 benchmark 或近似样本进入 pretraining/SFT/RL 数据,分数会虚高。
  • dataset quality 包括题目是否无歧义、答案是否正确、是否覆盖真实任务分布、是否能区分强模型。
  • 评价的最终目的不是排行榜,而是为模型开发提供反馈:发现短板、做回归测试、控制部署风险。

关键公式/工程要点:

  • 抽象能力 -> 任务定义 -> 数据集 -> metric -> 置信区间/显著性;每一步都可能引入偏差。

容易混淆或踩坑:

  • 不要把 benchmark 分数当作“智能”的完整定义。
  • 模型裁判可能偏好长答案、特定风格或同源模型。

自检问题:

  • 什么是 ecological validity?
  • 如何检测 train-test overlap?
  • 为什么 agent benchmark 比多选题更难稳定评测?

原页面摘要保留:

  • perplexity 是可重复的语言建模指标,但不等价于用户任务表现。
  • MMLU、MMLU-Pro、GPQA、HLE、SWE-bench、TerminalBench、ARC-AGI 等分别测知识、推理、代码、代理和安全能力。
  • Chatbot Arena 和 AlpacaEval 引入偏好/对战式评价,但会受模型裁判偏差、风格偏好和样本分布影响。
  • 核心风险:train-test overlap、dataset quality、benchmark 被刷爆后失去区分度。

关联论文/主题: MMLU;GPQA;SWE-bench;Chatbot Arena

L13 Data I: sources, datasets

  • 日期:May 11
  • 讲师:Percy
  • 标签:data / copyright / common crawl
  • 课件:Python trace

一句话定位: 这讲把 pretraining data 当作模型质量的核心变量,同时讨论数据来源、版权、license、fair use、TOS 和诉讼风险。

核心脉络: 第十三讲进入数据:pretraining data 是 LM 最重要也最难公开复现的部分,涉及来源、质量、版权、license、TOS 和法律风险。

详细展开:

  • Common Crawl 是许多模型的基础,但 raw crawl 不能直接训练,需要 extraction、language filtering、quality filtering、dedup、PII/toxicity 处理。
  • 数据来源包括网页、书籍、代码、论文、论坛、百科、新闻、合成数据等;每类数据影响不同能力,也带来不同法律和偏见风险。
  • OpenWebText 试图复刻 GPT-2 的 WebText 思路;The Pile 更强调多源混合;Dolma/OLMo 更强调开放 pipeline。
  • copyright law、fair use、license、terms of service 是训练数据不可回避的问题。课程不是法律课,但要求知道风险边界。
  • model-based filtering 用小模型或分类器判断文本质量,但分类器本身会带偏差。
  • 数据质量会直接影响 scaling law;更干净的数据可能让同样 compute 达到更低 loss。

关键公式/工程要点:

  • Data pipeline: crawl -> extract text -> language ID -> quality filter -> safety/PII filter -> dedup -> mix -> tokenize -> shard。

容易混淆或踩坑:

  • 不要把“公开可下载”理解成“可合法训练”。
  • 质量过滤器可能系统性删除少数语言、方言或非主流文本。

自检问题:

  • Common Crawl 为什么不能直接喂给 tokenizer?
  • fair use 通常考虑哪些因素?
  • OpenWebText、The Pile、Dolma 的理念差异是什么?

原页面摘要保留:

  • 数据不是越多越好,来源、清洗、去重、混合比例和法律约束都会改变最终模型能力。
  • Common Crawl 是基础原料,但要经过 extraction、language ID、quality filtering、toxicity/PII 处理和 dedup。
  • OpenWebText、The Pile、Dolma、DCLM、Nemotron-CC、OLMo 等代表不同开放程度和处理理念。
  • 法律部分关注 copyright、license、fair use、terms of service 与模型训练诉讼。

关联论文/主题: OpenWebText;The Pile;DCLM;Dolma;OLMo

L14 Data II: filtering, deduplication, mixing, synthetic data

  • 日期:May 13
  • 讲师:Percy
  • 标签:dedup / minhash / data mixing
  • 课件:Python trace

一句话定位: 延续 Data I,把数据工程拆到可实现层:C4-style cleaning、Jaccard、MinHash、质量分类器、数据混合和 synthetic data。

核心脉络: 第十四讲把数据工程落到算法:C4-style cleaning、Jaccard/MinHash 去重、质量过滤、数据混合和 synthetic data。

详细展开:

  • C4 展示了从 Common Crawl 到可训练语料的一套规则化清洗流程,但规则会影响语料分布,例如过滤掉包含特定词或格式的文本。
  • near-duplicate 是大规模训练的大问题。完全重复浪费 token,近重复会导致 memorization 和 evaluation contamination。
  • Jaccard similarity 衡量集合相似度;MinHash 用随机哈希估计 Jaccard,让大规模近重复检测可行。
  • 数据混合决定模型能力侧重。代码、数学、网页、书籍、对话、学术文本的比例会改变 downstream 表现。
  • DCLM/DataComp 思路是把数据处理策略变成可比较 benchmark,而不是凭直觉选过滤规则。
  • synthetic data 对 instruction、math、code、reasoning 有用,但要防止模型自我强化错误和评价集泄漏。

关键公式/工程要点:

  • Jaccard(A,B)=|A∩B|/|A∪B|。
  • MinHash 性质:Pr[minhash(A)=minhash(B)] = Jaccard(A,B)。
  • Data mixture 可以视为在不同 domain distributions 上选择采样权重。

容易混淆或踩坑:

  • 去重粒度太粗会删掉有价值变体,太细会漏掉模板化重复。
  • synthetic data 的 teacher bias 会被 student 继承。

自检问题:

  • MinHash 为什么能估计 Jaccard?
  • 为什么数据混合要用 proxy training 验证?
  • near-duplicate 和 benchmark contamination 有什么关系?

原页面摘要保留:

  • C4 的启发是把 Common Crawl 变成更干净的训练语料,但简单规则会引入偏差。
  • Jaccard similarity 与 MinHash 是大规模 near-duplicate detection 的核心工具。
  • 数据混合不是把所有数据倒进去,而是用小规模训练或 proxy model 找到更好的 mixture。
  • synthetic data 可补齐稀缺能力,但会带来模式坍缩、错误放大和评价污染风险。

关联论文/主题: C4/T5;The Pile;Dolma;DCLM

L15 Mid/post-training: SFT/RLHF

  • 日期:May 18
  • 讲师:Tatsu
  • 标签:sft / rlhf / instruction data
  • 课件:course material

一句话定位: 预训练得到 GPT-3 风格 base model;post-training 把模型控制成会遵循指令、偏好人类答案和更安全的 assistant。

核心脉络: 第十五讲讲预训练之后如何把 base model 变成可控 assistant:SFT、instruction data、preference data、RLHF 和 DPO。

详细展开:

  • pretraining 学到语言和知识,但目标是 next-token prediction,不等同于遵循用户指令。post-training 的目标是控制行为。
  • SFT 使用高质量 instruction-response 数据模仿目标行为。FLAN、Self-Instruct、Alpaca、ShareGPT/Vicuna、OpenAssistant、Tulu/Nemotron 代表不同数据来源。
  • instruction data 需要关注任务多样性、多轮格式、拒答/安全样本、工具使用、推理过程和格式一致性。
  • RLHF 通常先训练 reward model,再用 PPO 等优化策略;DPO 则直接从 preference pairs 优化策略,工程上更简单。
  • 现代 post-training 信息更稀缺。开放模型常大量使用蒸馏和合成数据,但 release notes 不一定公开完整筛选逻辑。
  • post-training 会改变模型风格、拒答边界和推理行为,也可能牺牲一部分原始能力或校准。

关键公式/工程要点:

  • SFT loss: 对目标 response tokens 做 teacher-forced cross entropy。
  • Preference pair: 给定 prompt,chosen response 应比 rejected response 更高概率/更高 reward。
  • DPO 直觉:增加 chosen 相对 rejected 的 log-prob margin,同时相对 reference model 控制偏移。

容易混淆或踩坑:

  • SFT 数据质量比数量重要,低质量 instruction 会让模型学会模板化废话。
  • RLHF 优化 reward model,不等于优化真实人类价值。

自检问题:

  • SFT 和 RLHF 各自解决什么问题?
  • DPO 为什么可以绕过显式 reward model?
  • 为什么 post-training recipe 很难从论文完全复现?

原页面摘要保留:

  • SFT 的核心是收集希望模型模仿的行为:FLAN、Self-Instruct、Alpaca、ShareGPT/Vicuna、OpenAssistant、Tulu/Nemotron 等。
  • RLHF 标准路线是 SFT -> reward/preference model -> RL 优化;现代开放模型常混入蒸馏和合成数据。
  • instruction data 的质量、任务分布、多轮对话格式和工具使用样本比原始数量更重要。
  • post-training 公开信息比 pretraining 更稀缺,很多现代模型只发布 release notes 而不公开完整 recipe。

关联论文/主题: InstructGPT;Anthropic HH;Alpaca;DPO

L16 Post-training: RLVR

  • 日期:May 20
  • 讲师:Tatsu
  • 标签:rlvr / ppo / grpo / reasoning
  • 课件:course material

一句话定位: RLVR 把 RL 放到有可验证 reward 的领域,例如数学和代码,使模型从 GPT-3.5 式指令跟随走向 o1/R1 式长链推理。

核心脉络: 第十六讲讲 RLVR:当 reward 可验证时,可以把 RL 用在数学、代码、逻辑等领域,推动长链推理行为。

详细展开:

  • RLHF 的 reward 来自人类偏好或 reward model,规模化和过优化都有问题。RLVR 选择可自动验证的任务,例如答案正确性、代码测试、数学证明检查。
  • PPO 是经典策略优化方法,但在 LM 中实现复杂:rollout、advantage、KL penalty、value model、clip ratio、reward normalization 都会影响稳定性。
  • GRPO 用 group-relative baseline 替代 value function,比较同一 prompt 下多条 sampled responses 的相对奖励,是 DeepSeek-R1 报告中的重要机制。
  • RL 可能放大长 CoT,因为模型探索到能提高 reward 的中间推理行为;但也可能学会 reward hacking 或过长无效思考。
  • RLVR 的可扩展性来自 verifier,但它适合有清晰判定标准的领域,对开放式写作和价值判断较难。
  • 课程强调区分 long-CoT SFT 与 RL:前者模仿已有推理轨迹,后者通过优化可验证 reward 发现策略。

关键公式/工程要点:

  • Policy gradient: ∇θ E[R(z)] = E[R(z)∇θ log pθ(z)]。
  • PPO clipped objective 用 ratio r_t(θ) 与 clip 范围限制单步策略偏移。
  • GRPO 直觉:advantage = 当前样本 reward - 同组样本平均 reward。

容易混淆或踩坑:

  • verifier 正确不代表任务全面,模型可能过拟合 verifier。
  • 长 CoT 不是自动更好,可能增加成本且包含无效推理。

自检问题:

  • RLHF 和 RLVR 的 reward 来源有什么不同?
  • PPO 为什么需要 KL 或 clipping?
  • GRPO 为什么可以不训练 value model?

原页面摘要保留:

  • PPO 是 token-level policy optimization 的常用起点,但实现复杂、variance/稳定性问题多。
  • GRPO 用组内相对奖励替代 value model,降低一些工程复杂度,是 DeepSeek-R1 路线的关键概念之一。
  • verifiable reward 的好处是 reward 不依赖主观偏好标注,可以规模化;坏处是领域受限且容易 reward hacking。
  • 长 CoT 行为可能来自 SFT,也可能通过 RL 放大;课程强调要区分 imitation 与 optimization 带来的能力。

关联论文/主题: PPO;GRPO;DeepSeek-R1;InstructGPT

L17 Alignment - multimodality

  • 日期:May 27
  • 讲师:Percy
  • 标签:multimodal / clip / vlm
  • 课件:Python trace

一句话定位: 多模态讲义把文本模型扩展到图像/视频/音频:问题变成如何把非文本模态变成 Transformer 可处理的 tokens。

核心脉络: 第十七讲讲多模态:把非文本世界变成 Transformer 能处理的 tokens,并讨论理解与生成对 token 表示的不同要求。

详细展开:

  • CLIP 用 image-text contrastive learning 学视觉语义空间。它擅长语义对齐和 zero-shot 分类,但不保留所有细粒度视觉信息。
  • SigLIP 把 CLIP 的 softmax 对比目标改为 sigmoid pairwise classification,降低 batch size 对 loss 的耦合,提高并行效率。
  • LLaVA 路线:vision encoder 编码图像,projector 把视觉特征映射到 LM embedding 空间,然后语言模型生成回答。
  • Qwen-VL 系列强调动态分辨率、MRoPE、视频帧采样和多阶段训练,以处理 OCR、图表、视频和 GUI 等任务。
  • Chameleon 路线把图像离散化成 token,统一用 autoregressive model 处理理解和生成,但图像离散化可能损失细节。
  • 多模态训练的难点包括 token budget、不同模态 entropy 差异、文本/图像/视频比例和 generation head 的选择。

关键公式/工程要点:

  • CLIP loss 直觉:一个 batch 内,让匹配 image-text pair 相似度高于不匹配 pair。
  • VLM template: image -> vision encoder -> projector/adaptor -> LM token stream。
  • Discrete omni route: image -> VQ tokenizer/codebook tokens -> autoregressive LM -> image decoder。

容易混淆或踩坑:

  • 视觉 encoder 的语义好不代表 OCR 好;裁剪/缩放可能丢掉小字和局部细节。
  • 多模态模型不是简单把图片 embedding 拼到文本前面,位置编码、分辨率和数据配比都关键。

自检问题:

  • CLIP 和 SigLIP 的 loss 有什么区别?
  • LLaVA 的两阶段训练分别训练什么?
  • Chameleon 为什么既优雅又有信息损失?

原页面摘要保留:

  • CLIP/SigLIP 用 image-text contrastive 或 sigmoid loss 学视觉语义 encoder。
  • LLaVA/Qwen-VL 标准模板是 vision encoder + projector/adaptor + LLM,训练分 alignment、fine-tuning、instruction tuning。
  • 动态分辨率、AnyRes、MRoPE、视频 token budget 是 VLM 从图片走向视频/GUI/agent 的关键工程点。
  • Chameleon 代表离散 token omni 模型路线:统一分析和生成,但图像离散化会损失细节,训练多模态 entropy 也更难。

关联论文/主题: CLIP;SigLIP;LLaVA;Qwen-VL;Chameleon

L18 Guest lecture: Daniel Selsam

一句话定位: 课程主页列出 guest lecture,但当前公开资料没有 py/pdf 课件。

核心脉络: 公开课程页只有 guest lecture 索引,没有 py/pdf 资料。

详细展开:

  • 保留课程顺序和讲者信息,不根据讲者背景补写未公开内容。

容易混淆或踩坑:

  • 不要把猜测当课程内容。

自检问题:

  • 如果未来仓库补充课件,应重新抽取再更新。

原页面摘要保留:

  • 保留索引;不根据讲者背景补写未公开内容。

L19 Guest lecture: Dan Fu

一句话定位: 课程主页列出 guest lecture,并标记 Assignment 5 due;当前公开资料没有 py/pdf 课件。

核心脉络: 公开课程页只有 guest lecture 索引,并标记 Assignment 5 due。

详细展开:

  • 保留课程顺序和讲者信息,不根据讲者背景补写未公开内容。

容易混淆或踩坑:

  • 不要把猜测当课程内容。

自检问题:

  • 如果未来仓库补充课件,应重新抽取再更新。

原页面摘要保留:

  • 保留索引;如果未来课程仓库补充课件,可追加解析。

核心引用论文详细解析

下面不是简单 bibliography,而是把课程反复依赖的论文按“贡献、为什么在 CS336 里重要、阅读时要警惕什么”重新组织。阅读顺序建议先看 Transformer、Scaling Laws、Chinchilla、FlashAttention、ZeRO/Megatron、DCLM/Dolma、InstructGPT/DPO/PPO、CLIP/LLaVA。

Prediction and Entropy of Printed English

贡献: 把语言看作可预测序列,用 entropy 衡量英文文本的不确定性,是语言建模“预测下一个符号”思想的早期源头。

为什么在 CS336 里重要: CS336 从 tokenization 开始,但更底层的问题是:文本到底有多少可压缩结构?Shannon 的思想解释了为什么 LM 可以通过统计规律获得能力。

阅读警惕: 这篇论文不是现代神经 LM 方法论文;读它应关注问题表述和信息论视角,而不是实现技术。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

A Neural Probabilistic Language Model

贡献: 用神经网络和词向量预测下一个词,缓解 n-gram 稀疏性,让相似词共享统计强度。

为什么在 CS336 里重要: 它是从离散 n-gram 到连续表示 LM 的关键转折,帮助理解 embedding layer 为什么是现代 LM 的基础组件。

阅读警惕: 上下文窗口和模型规模远小于现代 Transformer;价值主要在 representation sharing 的历史位置。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Sequence to Sequence Learning with Neural Networks

贡献: 用 encoder-decoder RNN 把输入序列压缩成向量,再生成输出序列,推动神经机器翻译。

为什么在 CS336 里重要: 它让学生看到 Transformer 之前 seq2seq 的限制:长句信息瓶颈、难并行和长程依赖困难。

阅读警惕: 今天读它主要是为了理解 attention 为什么必要,而不是学习当前最优架构。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Neural Machine Translation by Jointly Learning to Align and Translate

贡献: 引入 attention,让 decoder 在生成每个 token 时动态查看 source states,缓解固定向量瓶颈。

为什么在 CS336 里重要: 这篇是通向 Transformer self-attention 的概念桥:信息不必被压进一个固定隐藏向量。

阅读警惕: 它仍是 RNN encoder-decoder 框架;不要把它和纯 attention/Transformer 混为一谈。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Attention Is All You Need

贡献: 用 self-attention、multi-head attention、position encoding 和 FFN 取代循环结构,显著提高并行训练效率。

为什么在 CS336 里重要: CS336 后续所有架构、系统、推理和 scaling 讨论都围绕 Transformer 的计算图展开。

阅读警惕: 原始 Transformer 是机器翻译 encoder-decoder;现代 decoder-only LM 已经采用 pre-norm、RoPE、SwiGLU 等大量变化。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Layer Normalization

贡献: 对单个样本的 hidden dimensions 做归一化,使 RNN/Transformer 等序列模型更稳定。

为什么在 CS336 里重要: pre-norm vs post-norm 是现代深层 LM 训练稳定性的核心设计选择。

阅读警惕: 现代模型常用 RMSNorm 或其他变体;重点是 residual path 和梯度传播,而不是只记公式。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

RoFormer: Enhanced Transformer with Rotary Position Embedding

贡献: 用旋转矩阵编码位置,使 query/key 内积包含相对位置信息。

为什么在 CS336 里重要: RoPE 是 LLaMA-like 架构的标准件,和长上下文外推、位置插值、MRoPE 都相关。

阅读警惕: RoPE 不是免费解决无限长上下文;外推仍依赖训练长度、频率缩放和 attention 机制。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

GLU Variants Improve Transformer

贡献: 系统比较 ReLU/GELU/Swish 与 gated FFN,提出 ReGLU/GeGLU/SwiGLU 等变体。

为什么在 CS336 里重要: SwiGLU 成为很多现代 LM 的 FFN 默认选择,体现 architecture tweak 如何影响 scaling efficiency。

阅读警惕: 很多架构选择来自经验;课程也提醒这些选择未必都有漂亮理论解释。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Scaling Laws for Neural Language Models

贡献: 把 loss 与模型参数量、数据量、compute 拟合成幂律关系,推动用小实验预测大训练。

为什么在 CS336 里重要: 课程把 scaling laws 当作工程预算工具:训练大模型前先用 sweep 减少昂贵试错。

阅读警惕: Kaplan 结论偏向更大模型、更少 token;后来 Chinchilla 修正了 compute-optimal 配比。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Training Compute-Optimal Large Language Models

贡献: 通过更严格 sweep 得到 Chinchilla scaling law,主张模型和数据应更均衡扩展。

为什么在 CS336 里重要: 这是 CS336 scaling 单元的核心论文:决定相同 compute 下应该多大模型、多少 token。

阅读警惕: 配比不是永恒常数;数据质量、架构、optimizer 和目标任务变化会改变最优点。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Language Models are Unsupervised Multitask Learners

贡献: GPT-2 展示大规模 web text 预训练可带来 zero-shot/multitask 行为,并引发 staged release 讨论。

为什么在 CS336 里重要: 它连接 data、scale 和 emergent behavior,是理解现代 foundation model 叙事的关键节点。

阅读警惕: 训练数据和过滤细节不像现代 open-source recipes 那样完整;复现实验要谨慎。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Language Models are Few-Shot Learners

贡献: GPT-3 用 175B 参数展示 in-context learning,把 LM 从 fine-tune 对象推向 promptable system。

为什么在 CS336 里重要: 课程开场用它说明 abstraction 上移:研究者从下载模型到调用 API,但底层仍需理解。

阅读警惕: GPT-3 架构和数据 recipe 对今天模型已不是最优;读它应关注规模效应和 prompting paradigm。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

LLaMA: Open and Efficient Foundation Language Models

贡献: 提供高质量 open-weight dense LM recipe,强调用更多 token 训练较小模型也可很强。

为什么在 CS336 里重要: 很多 CS336 架构选择可理解为 LLaMA-like:pre-norm、RoPE、SwiGLU、RMSNorm、decoder-only。

阅读警惕: open-weight 不等于 fully open;数据和训练基础设施仍有不可复现部分。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

FlashAttention: Fast and Memory-Efficient Exact Attention

贡献: 通过 tiling 和重计算把 attention 的 HBM 读写降下来,在不近似 attention 的情况下提升速度和显存效率。

为什么在 CS336 里重要: 这是 CS336 systems mindset 的代表:算法复杂度之外,IO complexity 往往决定 GPU 实际速度。

阅读警惕: FlashAttention 解决 exact attention 的实现瓶颈,不直接改变长上下文的二次理论计算量。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism

贡献: 把模型层切到多个加速器上,用 micro-batches 填充 pipeline。

为什么在 CS336 里重要: 它是理解 pipeline parallelism、bubble、micro-batch scheduling 的入口。

阅读警惕: pipeline 解决层级切分,但真实训练还要和 data/tensor parallel、activation checkpointing 组合。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Megatron-LM: Training Multi-Billion Parameter Language Models

贡献: 系统化 tensor parallelism,把 Transformer 中的大矩阵切到多 GPU。

为什么在 CS336 里重要: CS336 parallelism 单元反复出现 tensor parallel 和 communication/computation overlap。

阅读警惕: Megatron 是训练系统路线的一部分;单看 tensor parallel 不足以训练现代万亿级 MoE。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

ZeRO: Memory Optimizations Toward Training Trillion Parameter Models

贡献: 把 optimizer states、gradients、parameters 分片,降低 data parallel 的显存复制浪费。

为什么在 CS336 里重要: 它把 all-reduce 拆成更细的 reduce-scatter/all-gather,是理解 FSDP/ZeRO 的桥。

阅读警惕: 省显存会换来更多通信和调度复杂度;不是所有规模都值得用最高 ZeRO stage。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints

贡献: 在 MHA 和 MQA 之间折中,让多个 query heads 共享较少 KV heads,减少 KV cache 与内存带宽。

为什么在 CS336 里重要: 推理 decode 阶段常被 KV cache 带宽限制,GQA 是现代服务端模型的关键部署优化。

阅读警惕: 共享 KV 会损失一部分表达能力;通常要通过训练或微调恢复质量。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Mistral 7B

贡献: 将 GQA 与 sliding window attention 等组合进 7B dense model recipe。

为什么在 CS336 里重要: 它是小而强 open-weight 模型和推理友好架构的案例。

阅读警惕: 窗口 attention 改变长程依赖处理方式;任务是否受损要靠评测确认。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Multi-Head Latent Attention / DeepSeek-V2

贡献: MLA 用低秩/latent 表示压缩 KV cache,降低长上下文推理内存。

为什么在 CS336 里重要: CS336 inference 单元把 MLA 作为 KV cache 优化的现代路线之一。

阅读警惕: MLA 不是通用替换件;实现和训练 recipe 与模型架构深度绑定。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Massive Multitask Language Understanding

贡献: 提出覆盖 57 个学科的多选知识/推理 benchmark。

为什么在 CS336 里重要: MMLU 是现代 LM 报告中最常见的通用能力指标之一,课程用它引出 benchmark 设计问题。

阅读警惕: MMLU 已被大量优化,且多选格式有限;要警惕污染、过拟合和生态有效性不足。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

The Pile: An 800GB Dataset of Diverse Text for Language Modeling

贡献: 整合 Common Crawl、PubMed、ArXiv、GitHub、StackExchange、Books 等 22 个子集。

为什么在 CS336 里重要: 它展示了 open pretraining data 的一个早期大规模蓝图,也暴露了数据混合和版权问题。

阅读警惕: 大而杂不自动等于好;现代 data recipes 更强调质量过滤、去重、domain mixture 和法律审查。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

DCLM: DataComp for Language Models

贡献: 把数据集构建变成 benchmarkable competition,比较 filtering、dedup、mixing 对 LM 的影响。

为什么在 CS336 里重要: 课程 Data 单元把它作为现代数据工程从 intuition 走向 systematic evaluation 的代表。

阅读警惕: 数据 recipe 的最优性依赖模型规模、训练预算和评测集合;不能直接迁移到所有项目。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Dolma: An Open Corpus of Three Trillion Tokens for Language Model Pretraining

贡献: 提供 OLMo 训练使用的开放大规模语料和处理流程。

为什么在 CS336 里重要: 它体现 fully open LM 需要的不只是权重,还包括数据、处理脚本、训练 recipe 和评测透明度。

阅读警惕: 开放数据仍需要处理隐私、版权、毒性和去重;透明不等于没有风险。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Training language models to follow instructions with human feedback

贡献: InstructGPT 用 SFT、reward model 和 PPO/RLHF 让 GPT-3 更符合人类偏好。

为什么在 CS336 里重要: 这是 post-training 标准路线的标志论文,解释为什么 base LM 和 assistant LM 行为差异巨大。

阅读警惕: RLHF 优化的是偏好代理,不是“真理”;过优化、奖励模型偏差和数据覆盖仍是问题。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Direct Preference Optimization

贡献: 把 preference learning 写成直接优化策略的监督式目标,避免显式训练 reward model 和运行 PPO。

为什么在 CS336 里重要: DPO 是理解现代 alignment recipe 的简化路线:把复杂 RLHF 工程压缩成偏好数据上的优化问题。

阅读警惕: DPO 不等于免调参;数据质量、reference model、KL 强度和偏好覆盖仍然决定效果。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Proximal Policy Optimization Algorithms

贡献: 用 clipped objective 稳定 policy gradient,是 RLHF 早期主流优化器。

为什么在 CS336 里重要: 理解 PPO 才能理解 RLHF 工程为什么复杂,以及 GRPO/RLVR 为什么试图简化它。

阅读警惕: PPO 在 LM 上实现细节很多,value model、KL、reward normalization、rollout batching 都会影响结果。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

DeepSeek-R1

贡献: 展示用 RL/RLVR 路线训练强推理模型,强调 GRPO 和长链推理行为。

为什么在 CS336 里重要: 课程把它放在从 RLHF 走向 verifiable reward reasoning 的脉络中。

阅读警惕: 公开论文能解释大方向,但完整数据、筛选和训练稳定性细节仍不完整。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

CLIP: Learning Transferable Visual Models From Natural Language Supervision

贡献: 用大规模 image-text pairs 做对比学习,使视觉 encoder 学到可 zero-shot 迁移的语义空间。

为什么在 CS336 里重要: VLM 的常见模板是 CLIP/SigLIP vision encoder + projector + LLM;CLIP 是这个栈的基础。

阅读警惕: CLIP 更偏语义识别,不保留生成图像或细粒度 OCR 所需的全部视觉细节。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

SigLIP: Sigmoid Loss for Language Image Pre-Training

贡献: 把 CLIP 的 softmax 对比损失改成 image-text pair 的二分类 sigmoid loss,改善 batch size 和并行性。

为什么在 CS336 里重要: LLaVA OneVision、Qwen3-VL 等现代 VLM 使用 SigLIP/SigLIP-2 作为视觉 encoder。

阅读警惕: 更高效的 loss 不自动解决数据质量、分辨率和跨模态对齐问题。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

LLaVA: Large Language and Vision Assistant

贡献: 用 CLIP vision encoder、线性 projector 和 Vicuna/LLaMA 系列语言模型构造视觉对话助手。

为什么在 CS336 里重要: 它是开源 VLM pipeline 的清晰模板:先对齐视觉特征到语言 embedding,再做 instruction tuning。

阅读警惕: 早期 LLaVA 依赖合成问答数据和固定分辨率;复杂图表、OCR、视频和多图需要后续改进。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

Chameleon: Mixed-Modal Early-Fusion Foundation Models

贡献: 把文本和图像都表示成离散 tokens,用单一 autoregressive model 统一理解和生成。

为什么在 CS336 里重要: 它代表不同于 CLIP+LLM+diffusion 的 omni model 路线:所有模态进入同一个 token stream。

阅读警惕: 图像离散化会丢细节,多模态 token entropy 差异带来训练稳定性问题。

建议读法: 先读 abstract 和 introduction 把问题定位清楚,再读方法图/核心公式,最后回到 CS336 对应 lecture 看它被放进哪个工程环节。不要把论文结论孤立记忆,要追问它改变的是 architecture、data、compute、memory、latency、evaluation 还是 alignment。

实现路线:如果要跟着课程动手

最小闭环

  • 实现 BPE tokenizer,并能保存/加载 merge table。
  • 实现 pre-norm Transformer:embedding、RoPE、attention、SwiGLU、RMSNorm/LayerNorm、unembedding。
  • 用 AdamW 跑通小模型训练,记录 loss、tokens/sec、MFU 和显存峰值。
  • 用 profiling 找到瓶颈,再写 Triton kernel 或替换为 fused/compiled 实现。

扩展闭环

  • 用 data/tensor/pipeline/sequence/expert parallelism 拆模型和 batch。
  • 建立 scaling sweep:不同参数量、token 数、batch、LR,对 loss 拟合可外推曲线。
  • 建立 data pipeline:Common Crawl 清洗、质量过滤、MinHash 去重、数据混合实验。
  • 做 post-training:SFT -> preference/RL -> evaluation,持续检查 benchmark 过拟合和污染。

推荐学习顺序

  • 第 1-3 讲先形成 tokenizer + Transformer + optimizer 的最小模型直觉。
  • 第 4-8 讲转入系统:attention alternatives、GPU、Triton、distributed parallelism。
  • 第 9-11 讲学习如何用 scaling laws 做预算决策。
  • 第 12-14 讲补齐 evaluation 和 data,因为模型质量不是只由 architecture 决定。
  • 第 15-17 讲看 post-training、RLVR 和 multimodal,把 base model 变成 assistant/omni model。

资料覆盖范围

来源 用途 链接
Stanford CS336 主页 课程介绍、作业说明、schedule、公开课件链接 https://cs336.stanford.edu/
stanford-cs336/lectures 9 个 executable Python lectures、8 个 PDF decks、references.py https://github.com/stanford-cs336/lectures
Assignment repositories Basics、Systems、Scaling、Data、Alignment 五条作业线索 https://github.com/stanford-cs336

注:第 18、19 次 guest lecture 在课程主页有条目,但当前公开页面没有对应 py/pdf 课件,因此本文只保留主题索引,不虚构细节。


CS336 Language Modeling from Scratch 课程资料研读图谱
https://www.polarishaw.top/2026/06/23/cs336-language-modeling-from-scratch/
作者
Polaris
发布于
2026年6月23日
许可协议