1. BERT 的核心创新
论文:"Pre-training of Deep Bidirectional Transformers for Language Understanding"(Devlin et al., Google, 2018.10)
关键突破:与 GPT 的从左到右单向预训练不同,BERT 使用 Transformer Encoder 实现了真正的双向上下文编码——每个 token 可以同时关注其左侧和右侧的所有 token。
预训练任务:
① 掩码语言模型(MLM):随机遮掩 15% 的 token,让模型预测被遮掩的词。其中 80% 替换为 [MASK],10% 替换为随机词,10% 保持不变——这一比例设计减少了预训练与微调之间的分布偏移。
② 下句预测(NSP):给定句子 A 和 B,预测 B 是否是 A 的下一句。后来被证明效果有限,RoBERTa 等后续模型移除了此任务。
BERT-Large: 24 层, 1024 hidden, 16 heads, 340M 参数
训练数据: BookCorpus (800M 词) + English Wikipedia (2500M 词)
训练: 16 TPU (v3) × 4 天
2. 预训练+微调范式
BERT 确立的预训练+微调(Pre-train + Fine-tune)范式改变了整个 NLP 领域的工作方式。之前每个任务需要从头设计模型和训练,现在只需:
① 在大规模无标注文本上预训练语言模型(一次性投入)
② 在下游任务上添加简单的任务头(如分类层),用少量标注数据微调
| 任务类型 | 任务头 | BERT 输入 | 示例 |
|---|---|---|---|
| 文本分类 | [CLS] + 线性层 | 单句 | 情感分析、垃圾邮件检测 |
| 句对分类 | [CLS] + 线性层 | [CLS] A [SEP] B [SEP] | 自然语言推理、释义检测 |
| 命名实体识别 | 每个 token 线性层 | 单句 | 人名、地名、机构名识别 |
| 问答抽取 | Start/End 两个线性层 | [CLS] 问题 [SEP] 段落 | SQuAD 阅读理解 |
BERT 在发布时刷新了 11 个 NLP 基准的 SOTA,包括 GLUE(80.5% → 87.4%)和 SQuAD 1.1(F1: 91.2% → 93.2%)。
3. BERT 家族:重要变体
| 模型 | 年份 | 改进 | 关键变化 |
|---|---|---|---|
| RoBERTa | 2019 | 更充分的训练 | 移除 NSP、更大 batch、更多数据(160GB)、动态 masking |
| ALBERT | 2019 | 参数效率 | 嵌入分解 + 跨层参数共享,12M 参数胜 BERT-Large |
| DistilBERT | 2019 | 知识蒸馏 | 6 层,BERT 97% 性能 / 60% 参数 / 2× 速度 |
| ELECTRA | 2020 | 替换 token 检测 | 生成器-判别器框架,ALL tokens 参与学习(非仅 15%) |
| DeBERTa | 2021 | 解耦注意力 | 内容-位置解耦 + 增强掩码解码器,人类首次在 SuperGLUE 达标 |
| Chinese-BERT | 2021 | 字形+拼音嵌入 | 融合汉字字形和拼音信息的中文 BERT |
RoBERTa 是实践中最常用的 BERT 变体——它证明了"BERT 的原始训练远未充分",通过简单增加训练时间和数据即可大幅提升效果。
4. BERT vs GPT:两条路线的分野
BERT 路线(Encoder)
✅ 双向上下文建模
✅ 理解任务(分类、抽取)表现优秀
✅ 中小规模即可高效
❌ 无法生成文本
❌ 难以扩展到超大规模
❌ 每个任务需单独微调
GPT 路线(Decoder)
✅ 天然的生成能力
✅ 规模扩展效益持续(Scaling Laws)
✅ 涌现 in-context learning
✅ 通用性(一个模型多任务)
❌ 单向注意力(信息瓶颈)
❌ 需要超大规模才能充分发挥
历史结论:BERT 路线在 2018-2021 年统治了 NLP 学术界和工业部署。但 GPT-3(2020)展示的涌现能力和通用性,特别是 ChatGPT(2022)的成功,使 Decoder-Only 路线成为绝对主流。
BERT 的遗产并未消失——嵌入模型(如 text-embedding-ada-002、BGE、jina-embeddings 等)仍广泛使用 Encoder 架构进行文本表示 → 语义检索 → RAG。
5. 预训练范式的演进
| 阶段 | 时期 | 代表 | 特征 |
|---|---|---|---|
| 特征工程 | ~2013 | 词袋、TF-IDF | 人工设计特征 |
| 词嵌入 | 2013-17 | Word2Vec, GloVe | 静态词向量,无上下文 |
| 预训练+微调 | 2018-20 | BERT, GPT-1/2 | 上下文化表示,任务特定微调 |
| Prompt / Few-shot | 2020-22 | GPT-3, T5 | 无需微调,提示即可使用 |
| RLHF 对齐 + Chat | 2022- | ChatGPT, Claude | 对话式交互,指令遵循 |
| Agent / 推理 | 2024- | o1, Claude Code | 工具调用、长思维链推理 |
从 BERT 到 ChatGPT 只用了 4 年(2018-2022),NLP 从"每个任务训一个模型"演进为"一个模型搞定所有任务"。BERT 站在这一历史转折的关键位置——它证明了预训练的威力,为后来 GPT 路线的成功铺平了道路。