课程导读

这门课的讲义基于 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 工作大致分成两类:

  1. 闭源路线:以 GPT 系列为代表,最早系统性拥抱 Scale,但细节封闭。
  2. 开放权重路线:以 Qwen 等 open-weight 模型为代表,拥抱 Scale 的同时提升开放度,但常见情况是只公开部分训练细节,数据与失败案例仍不完整。

Tokenization

为什么需要 tokenization?因为 LLM 在 token 序列上建模概率分布,我们需要把原始字符串编码为 token,并保证可逆解码。

tokenization

🔗 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.

参考资料