GPT 与 BERT 示范答案与反例:两条预训练语言模型路线
GPT 与 BERT 示范答案与反例:两条预训练语言模型路线
使用原则
这份文件只用于校准,不可以直接复制进 paper_notes/05_gpt.md、paper_notes/06_bert.md、daily_logs/Day22_学习记录.md 到 Day28_学习记录.md 或 结业证据档案.md。合格证据必须包含你自己的输入/目标例子、causal mask 或 MLM 的 shape/loss 记录、以及你对 toy notebook 边界的说明。
1. GPT 的训练目标是什么
不合格写法
GPT 就是 ChatGPT 那种聊天模型。
- 把论文中的 GPT 和后来的聊天产品混在一起。
- 没有说明 autoregressive language modeling。
- 没有解释 next-token prediction 如何形成预训练目标。
问题:
可接受示范
GPT 论文中的核心训练目标是 autoregressive language modeling,也就是给定前面的 token,预测下一个 token。它先用大量未标注文本做 unsupervised pre-training,让模型学习语言结构和通用表示,再通过 fine-tuning 适配具体下游任务。这里的 GPT 不是直接等同于 ChatGPT,而是预训练语言模型路线的早期代表。
你必须自己补
- 我自己写的一个 token 序列:
- 输入是什么:
- 目标 next token 是什么:
- 我仍然不确定的地方:
2. causal mask 为什么必要
不合格写法
causal mask 是遮住未来。
- 方向对,但没有说明为什么要遮。
- 没有连接训练目标和生成过程。
- 没有记录 mask/logits/loss shape。
问题:
可接受示范
在 next-token prediction 中,第 t 个位置只能根据第 t 个位置之前的信息预测下一个 token。如果训练时允许模型看到未来 token,它就会偷看答案,训练目标会失真。causal mask 的作用是在 self-attention 中阻止当前位置访问未来位置,使训练时的信息流和生成时保持一致。
你必须自己补
- mini GPT notebook 中输入
x的 shape: - causal mask 的 shape:
- logits
[batch, time, vocab_size]的含义: - loss 是对什么预测误差求出来的:
3. BERT 的 MLM 在做什么
不合格写法
BERT 是做完形填空。
- 直觉可以,但太浅。
- 没有说明
[MASK]token 和 masked positions。 - 没有说明为什么 BERT 可以使用双向上下文。
问题:
可接受示范
BERT 的 masked language modeling 会随机遮住输入序列中的一部分 token,让模型根据左右两侧的上下文预测被遮住的原 token。因为模型不是按从左到右生成下一个词,而是在完整上下文中恢复 mask 位置,所以它可以使用双向上下文。MLM 的 loss 通常只在被 mask 的位置计算,而不是对所有 token 都计算。
你必须自己补
- 我自己写的一个
[MASK]例子: - mask positions 是什么:
- masked target 是什么:
- MLM loss 只在哪些位置算:
4. GPT 和 BERT 的关键差异
不合格写法
GPT 擅长生成,BERT 擅长理解。
- 这句话可以作为结论,但不能单独作为解释。
- 没有说明训练目标差异。
- 没有说明上下文方向和 mask 机制差异。
问题:
可接受示范
GPT 使用从左到右的 autoregressive 目标,通过 causal mask 保证当前位置不能看未来,因此天然适合逐词生成。BERT 使用 masked language modeling,在输入中遮住部分 token,再利用双向上下文恢复这些 token,因此更自然适合分类、匹配、抽取式问答等理解类任务。二者都属于预训练语言模型,但训练目标和可用上下文不同。
你必须自己补
| 维度 | GPT | BERT |
|---|---|---|
| 训练目标 | ||
| 是否能看未来 token | ||
| 上下文方向 | ||
| 更自然适合的任务 | ||
| notebook 证据 |
5. pre-training 和 fine-tuning 如何连接
不合格写法
先预训练,再微调。
- 只是流程名词。
- 没有说明为什么预训练有用。
- 没有说明 fine-tuning 改变了什么。
问题:
可接受示范
pre-training 用大规模通用文本学习语言模式、表示和参数初始状态;fine-tuning 则在较小的任务数据上继续训练,把通用能力适配到分类、问答、蕴含判断等具体任务。这个流程的重要性在于:模型不需要从每个任务的少量标注数据中从零学习语言知识,而是先从未标注文本中获得通用基础。
你必须自己补
- 一个我能理解的下游任务例子:
- pre-training 学到的可能是什么:
- fine-tuning 需要的数据或标签是什么:
6. notebook 复现了什么,没有复现什么
不合格写法
notebook 复现了 GPT 和 BERT。
- mini GPT 和 BERT MLM toy demo 不能等同于完整论文复现。
- 没有区分训练目标 demo、模型规模、数据规模和实验评估。
- 没有说明自己检查过哪些 shape 或 loss。
问题:
可接受示范
mini GPT notebook 复现的是 causal language modeling 的教学型机制:输入 token、目标 token、causal mask、logits[batch, time, vocab_size]和 next-token loss。BERT MLM notebook 复现的是 mask 位置预测的教学型机制:构造[MASK]输入、记录 mask positions、输出 logits,并只在 mask 位置计算 loss。它们都没有复现完整 GPT/BERT 的大规模预训练、完整 Transformer 堆叠、真实语料、下游任务 fine-tuning 和论文实验结果。
你必须自己补
- mini GPT 中我实际看到的 logits shape:
- BERT MLM 中我实际看到的 mask positions:
- 两个 notebook 没有覆盖的至少 4 个部分:
7. 能放进 3 分钟口头表达的 90 秒版本
下面是结构示例,不是可复制答案:
GPT 和 BERT 都是预训练语言模型,但它们的训练目标不同。GPT 使用 autoregressive next-token prediction:给定前文预测下一个 token,所以需要 causal mask 防止模型看到未来,天然适合生成任务。BERT 使用 masked language modeling:随机遮住输入中的部分 token,再根据双向上下文恢复它们,因此更适合理解类任务。pre-training 让模型先从大规模未标注文本中学习通用语言模式,fine-tuning 再把这些能力适配到具体任务。我的两个 notebook 只复现了 causal LM 和 MLM 的最小训练目标,没有复现完整大规模预训练和下游评测。
- 一个 GPT next-token prediction 例子。
- 一个 BERT
[MASK]例子。 - 两个实际 notebook shape 或 loss 记录。
- 一个你准备向老师或同学追问的问题。
你需要改成自己的版本,并补入:
8. 给 AI 的检查提示词
请检查我对 GPT/BERT 的论文笔记和 3 分钟口头稿是否像真实理解,而不是复制概念。
要求:
1. 判断我是否把 GPT 论文和 ChatGPT 产品混淆。
2. 检查我是否说清 autoregressive LM、next-token prediction、causal mask。
3. 检查我是否说清 BERT 的 MLM、[MASK]、双向上下文和只在 mask 位置算 loss。
4. 检查我是否区分了 toy notebook 和完整 GPT/BERT 论文复现。
5. 指出最空泛的 3 句话,并追问我 3 个问题。
6. 不要直接替我写最终答案,只给修改建议和必须补充的证据。
我的内容:
【粘贴 GPT/BERT 工作纸、paper_notes/05_gpt.md、paper_notes/06_bert.md 或口头稿】