下面是关于 BERT、GPT、ELMo 模型的深入介绍,包括结构、训练方式、特点、对比分析和各自的系列模型。这些内容覆盖了 NLP 中主流预训练模型的精髓,适用于学习迁移学习、上下游任务建模以及理解 Transformer 架构演进。
一、BERT 模型深度介绍(Bidirectional Encoder Representations from Transformers)
1. 核心思想
BERT 是一种 双向 Transformer 编码器结构,通过"掩码语言模型(MLM)"和"下一句预测(NSP)"的任务进行预训练,目标是捕捉词语的上下文依赖关系。
2. 结构组成
-
输入表示:
-
Token Embeddings(分词)
-
Segment Embeddings(句子对表示)
-
Position Embeddings(位置编码)
-
-
模型结构:
-
使用纯 Transformer Encoder 堆叠(如
BERT-base
是 12 层) -
输出为每个 token 的上下文表示(也称 contextual embedding)
-
-
预训练任务:
-
Masked Language Model(MLM)
随机 mask 掉输入中 15% 的 token,模型预测被遮盖的词。
-
Next Sentence Prediction(NSP)
给定句子 A,预测句子 B 是否是 A 的下一句。
-
3. 输入示例
css
[CLS] 我喜欢自然语言处理 [SEP] 你呢? [SEP]
二、BERT 模型的特点
-
双向编码:BERT 同时考虑左上下文和右上下文,是"深层双向"的语言模型。
-
预训练 + 微调范式:训练好一个 BERT 后可迁移到任意下游任务,只需添加简单的任务头。
-
强大的迁移性能:在情感分析、NER、QA 等任务中都达到 SOTA 表现。
-
输入格式灵活:支持单句输入或句对输入。
-
使用的是 Transformer Encoder(而非 Decoder)结构。
三、GPT 模型介绍(Generative Pre-trained Transformer)
1. 核心思想
GPT(OpenAI)是基于 Transformer Decoder 堆叠结构的单向语言模型 ,主要用于文本生成任务,采用经典的 自回归训练方式(Autoregressive LM)。
2. 结构组成
-
使用 Transformer Decoder 架构,只关注左侧上下文
-
训练目标:预测下一个 token(Language Modeling)
-
无 NSP 或掩码任务,单纯基于最大似然训练
3. 发展路线
-
GPT-1:首次将预训练语言模型迁移到下游任务
-
GPT-2:大幅增加参数规模(1.5B),用于开放文本生成
-
GPT-3:参数达 175B,支持少样本学习(few-shot)与零样本学习(zero-shot)
-
GPT-4:多模态、推理能力更强,目前广泛商用
四、BERT 与 GPT 模型对比
对比维度 | BERT | GPT |
---|---|---|
模型结构 | Transformer Encoder(双向) | Transformer Decoder(单向) |
上下文建模 | 双向(Masked) | 单向(左到右) |
预训练任务 | MLM + NSP | 自回归语言建模(LM) |
应用方向 | 分类、QA、NER、语义理解任务 | 文本生成、续写、对话生成等 |
微调方式 | 增加任务头并 fine-tune 全模型 | Prompt/Fine-tune/Few-shot 多种方式 |
生成能力 | 弱 | 强 |
五、BERT 系列模型介绍(BERT Family)
以下是 BERT 系列模型中主流改进版本:
-
RoBERTa
-
去掉了 NSP,使用更大批量、更大语料、更长训练
-
被认为是对 BERT 的纯粹增强版
-
-
ALBERT
-
参数共享 + 分解 embedding 矩阵,模型更小
-
适合资源受限部署
-
-
DistilBERT
-
蒸馏版 BERT,仅 6 层,训练速度更快,精度损失小
-
用于轻量级部署
-
-
TinyBERT / MobileBERT
- 面向移动设备优化,适合边缘端应用
-
SpanBERT
- 替换 MLM 为 span mask,提升抽取类任务效果(如 NER、关系抽取)
-
ERNIE(百度)
- 加入实体、句法知识,构建语义增强预训练模型
-
ChineseBERT / MacBERT(中文领域)
- 结合拼音、字形、语法知识优化中文建模能力
六、ELMo 模型介绍(Embeddings from Language Models)
1. 概述
ELMo 是一种基于双向 LSTM 的上下文词向量模型,在 BERT 之前一度成为 NLP 领域的突破性成果。
2. 架构
-
基于双向语言模型(BiLM):
-
正向:从左到右建模
-
反向:从右到左建模
-
-
通过合并 LSTM 各层隐状态得到最终词向量
3. 特点
-
上下文感知:同一个词在不同句子中会生成不同向量
-
动态表示:支持下游任务微调
-
参数较小,适合中等规模数据集
4. 与 BERT 对比
对比维度 | ELMo | BERT |
---|---|---|
网络结构 | 双向 LSTM | Transformer Encoder |
上下文建模 | 独立建模前向与后向 | 深度双向建模 |
输出方式 | 多层 LSTM 的线性组合 | Transformer 每层的输出 |
性能 | 明显优于静态词向量 | 全面优于 ELMo |
总结
模型 | 架构 | 上下文建模方式 | 预训练任务 | 应用方向 |
---|---|---|---|---|
BERT | Transformer Encoder | 双向 | MLM + NSP | 分类、抽取、QA |
RoBERTa | Encoder(改进) | 双向 | MLM | 全面增强版 BERT |
GPT | Transformer Decoder | 单向 | 自回归 LM | 文本生成、对话 |
ELMo | BiLSTM | 双向(分开) | 双向语言建模 | 词向量、下游特征提取 |