课程导读
这门课的讲义基于 notebook 组织,不同章节通过函数模块化展开。
开场老师提出了一个很尖锐的问题:研究者正在与底层技术逐步脱节。他给了一个时间线:
- 八年前,研究者会自己补充数据并训练模型;
- 六年前,研究者还会下载模型后进行 fine-tune;
- 现在,很多人直接向闭源模型(GPT-4/Claude/Gemini)提问。
这虽然有些夸张,但确实反映了趋势:模型能力提升后,很多基础环节被“封装”了。老师强调:
“Full understanding of this technology is necessary for fundamental research”
随着模型规模持续增大,训练中的计算压力正在从 Attention 逐步转向 FFN。

课程收获
- Mechanics:系统如何工作(如 Transformer 结构、GPU 并行方式)
- Mindset:如何最大化利用硬件与内存,如何看待 scaling laws
- Intuition:哪些数据和建模决策更可能带来更好结果
老师也指出一个常见误解:只要堆算力,模型就会自动变好。他给出的观点是:准确率 = 效率 × 资源。
在数据和资源固定时,效率决定了上限。
老师将近年的 LLM 工作大致分成两类:
- 闭源路线:以 GPT 系列为代表,最早系统性拥抱 Scale,但细节封闭。
- 开放权重路线:以 Qwen 等 open-weight 模型为代表,拥抱 Scale 的同时提升开放度,但常见情况是只公开部分训练细节,数据与失败案例仍不完整。
Tokenization
为什么需要 tokenization?因为 LLM 在 token 序列上建模概率分布,我们需要把原始字符串编码为 token,并保证可逆解码。

🔗 Tokenization 可视化工具: tiktokenizer.vercel.app
常见 tokenization 方法:
- Character-level:每个字符一个 token。优点是简单;缺点是序列较长、效率偏低。
- Word-level:每个词一个 token。优点是直观;缺点是词表膨胀、OOV 问题明显。
- Byte-level:每个字节一个 token。优点是覆盖任意文本;缺点是序列更长。
- BPE (Byte Pair Encoding):基于频率学习子词。高频片段合并为单 token,低频词拆分为多个 token,兼顾效率与泛化。GPT-2 之后 BPE 成为主流方案之一。
架构与训练观察
架构侧
当前主流仍是 Transformer,但在组件选择上持续演化:
- Activation functions:
ReLU,GeLU,Swish,Mish - Position encoding:
absolute,relative,rotary - Normalization:
LayerNorm,RMSNorm - Placement of layer normalization:
pre-LN,post-LN - MLP structure:
dense,gated,mixture of experts (moe) - Attention structure:
full,sliding window,linear - Lower-dimensional attention:
group-query attention (GQA),multi latent attention (MLA) - State space models (SSM): 新兴结构,在长序列建模上展现出潜力。
训练侧
- Optimization:
AdamW,Adafactor,Muon - LR scheduling:
cosine,linear,inverse sqrt - Batch size:
critical batchsize - Regularization:
dropout,weight decay,stochastic depth - Hyperparameter tuning:
grid search,random search,bayesian optimization
Lab 1 Assignment
- 可以和 Stanford 的公开基线试试打榜。
- Implement a tokenizer for a given text corpus using Byte Pair Encoding (BPE).
- Implement Transformer, cross-entropy loss, AdamW, training loop.
- Train on TinyStories and OpenWebText.