最终汇报草稿:以 Transformer 为例
最终汇报草稿:以 Transformer 为例
使用说明
这是一份可修改的 10 分钟模拟组会草稿。你可以把主题换成 word2vec、ResNet、GPT、BERT、LoRA 或 Diffusion。当前版本选择 Transformer,因为它连接前后两部分:attention 机制和大模型预训练。
1. 开场
大家好,我今天汇报的是深度学习经典论文中的一条入门主线,并重点讲 Transformer。
我把这 12 篇论文分成三组:第一组是从 word2vec、ResNet 到 Attention 和 Transformer,解决表示学习、深层网络和序列建模问题;第二组是 GPT、BERT、GPT-3、Scaling Law 和 Chinchilla,解决预训练语言模型和规模规律问题;第三组是 RLHF、LoRA 和 Diffusion,分别对应对齐、低成本适配和生成模型。
我的目标不是完整复现所有大规模实验,而是理解每篇论文解决的问题,并用最小代码复现核心机制。
2. 主线图
这条主线可以这样理解:
- word2vec 说明词可以被学习成向量,表示学习开始变得重要。
- ResNet 说明深层网络要能训练得更深,需要结构上的 shortcut。
- Attention 说明序列模型不应该只依赖固定长度向量,而应该动态关注输入的不同位置。
- Transformer 把 self-attention 变成一种可以并行训练的通用序列结构。
- GPT 和 BERT 在 Transformer 基础上发展出两类预训练语言模型。
- GPT-3、Scaling Law 和 Chinchilla 进一步说明规模、数据和计算量会影响模型能力。
- RLHF、LoRA 和 Diffusion 则把问题推进到对齐、适配和生成。
3. 深入论文:Transformer
我选择深入讲 Transformer,也就是 Attention Is All You Need。
这篇论文解决的问题是:能不能不用 RNN 或 CNN,而主要依赖 attention 来做序列建模。
在 Transformer 之前,很多序列模型依赖 RNN。RNN 的问题是训练难以充分并行,而且长距离依赖建模也比较困难。Transformer 的核心想法是使用 self-attention,让序列中每个位置都可以直接和其他位置交互。
最核心的计算是 scaled dot-product attention。它会把输入变成 query、key、value。query 和 key 计算相关性分数,经过 softmax 得到 attention weight,再对 value 加权求和,得到新的表示。
我现在能理解的是:Transformer 的关键不只是“用了 attention”,还包括 multi-head attention、positional encoding、residual connection、layer normalization 和 feed-forward network。这些结构共同让模型可以并行训练,并在大规模数据上扩展。
我的理解边界是:我能解释 Q/K/V 和 scaled dot-product attention 的 toy 代码,但还不能完整复现 Transformer 的机器翻译实验,也没有实现高效多头注意力和完整训练过程。
4. notebook 展示
我展示的是 dl_03_attention_qkv.ipynb。
这个 notebook 的输入是一个 toy 序列,shape 是 [batch, seq_len, embed_dim]。代码中设定 batch size 为 2,序列长度为 4,每个 token 的 embedding 维度为 6。
然后通过三个线性层得到 Q、K、V。它们的 shape 都是 [batch, seq_len, d_k]。
接着计算:
scores = Q @ K^T / sqrt(d_k)
weights = softmax(scores)
context = weights @ V
这里 scores 的 shape 是 [batch, seq_len, seq_len],表示每个 token 对其他 token 的相关性。weights 每一行加起来接近 1,context 的 shape 是 [batch, seq_len, d_k],表示每个位置的新表示。
这个 notebook 只复现了 scaled dot-product attention 的核心计算,没有复现完整 Transformer、multi-head attention、positional encoding、encoder-decoder 结构和真实机器翻译训练。
5. 总结和边界
总结来说,我目前把这些论文理解为深度学习从表示学习、深层结构、注意力机制,到预训练、规模规律、对齐适配和生成模型的发展路线。
Transformer 是这条路线中的关键节点,因为它连接了早期 attention 机制和后来的 GPT、BERT、大模型。
我已经能用最小 demo 解释部分核心机制,比如 word2vec 的 negative sampling、ResNet 的 residual block、attention 的 Q/K/V、GPT 的 causal mask、BERT 的 MLM、LoRA 的低秩增量和 diffusion 的去噪目标。
但我的边界也很明确:我还没有完成真实大规模训练,也没有完整复现论文实验。下一步我会优先补两件事:第一,在有 PyTorch 的环境中完整运行所有 notebook;第二,选一篇论文补成更完整的一页笔记和组会问答。
6. 预设追问回答
问题 1:最小复现和完整复现有什么区别?
最小复现只复现论文中的核心机制,例如 attention 的 Q/K/V 计算。完整复现还需要接近论文的数据、模型规模、训练细节、评价指标和实验结果。
问题 2:Transformer 为什么比 RNN 更适合大规模训练?
因为 self-attention 允许序列中所有位置并行计算相关性,而 RNN 通常需要按时间步递推。Transformer 更适合 GPU 并行,但计算复杂度会随序列长度平方增长。
问题 3:attention weight 能解释模型决策吗?
attention weight 可以提供一种内部加权信息,但不能自动等同于因果解释。要证明解释性,需要额外实验和验证。
问题 4:Transformer 的成功主要来自结构还是规模?
我目前理解是两者都有。Transformer 提供了适合并行和扩展的结构,后续 GPT/BERT/GPT-3 的成功还依赖大规模数据、训练目标和计算资源。
问题 5:这和我的专业方向有什么关系?
即使我未来研究复杂系统、统计或网络问题,Transformer 和表示学习仍然有用。它们提供了一种学习复杂关系表示的方法,也帮助我理解现代 AI 工具和论文中的核心概念。