BERT是Transformer的编码器部分,但不是完整的Transformer。
一、BERT vs Transformer:关系图解
Transformer 完整架构:
┌─────────────────────┐
│ 编码器(Encoder) │◄─── BERT就是这个部分!
│ (多层自注意力+前馈)│
├─────────────────────┤
│ 解码器(Decoder) │◄─── GPT用的是这个部分!
│(带掩码的自注意力+编码器-解码器注意力)│
└─────────────────────┘
二、详细对比表
|
方面 |
Transformer |
BERT |
GPT |
|---|---|---|---|
|
使用部分 |
完整架构(编码器+解码器) |
只用编码器 |
只用解码器 |
|
注意力机制 |
三种注意力: |
双向自注意力 |
单向掩码自注意力 |
|
训练目标 |
机器翻译 |
1. 掩码语言模型(MLM) |
语言建模(预测下一个词) |
|
输入输出 |
序列到序列 |
序列到表示 |
序列到序列 |
|
典型应用 |
机器翻译 |
理解类任务: |
生成类任务: |
三、技术细节对比
1.Transformer编码器(BERT的核心)
#BERT使用的编码器层结构
编码器层:
输入
↓
自注意力 ← 可以看到整个句子
↓
前馈网络
↓
输出
2.Transformer解码器(GPT的核心)
# GPT使用的解码器层结构
解码器层:
输入
↓
掩码自注意力 ← 只能看到前面的词
↓
编码器-解码器注意力 ← 看编码器的输出
↓
前馈网络
↓
输出
四、为什么BERT只用编码器?
因为BERT的目标是理解文本,而不是生成文本:
-
编码器的特点:
-
双向注意力:能看到整个上下文
-
适合理解:获取每个词的深层含义
-
输出表示:输出每个词的向量表示
-
-
BERT的任务需求:
-
完形填空(MLM):需要看到整个句子
-
下一句预测(NSP):需要理解两个句子的关系
-
文本分类:需要理解全文意思
-
-
解码器不适合的原因:
-
解码器有掩码机制:不能看到后面的词
-
这违背了BERT的双向理解理念
-
五、BERT的Transformer编码器堆叠
输入文本
↓
嵌入层(词+位置+句子类型)
↓
第1层编码器(学习基础语法)
↓
第2层编码器(学习简单句法)
↓
...
↓
第12层编码器(学习深层语义)
↓
输出:每个词的768维向量表示
9650

被折叠的 条评论
为什么被折叠?



