GPT与Bert,预训练语言模型

发布于:2025-03-23 ⋅ 阅读:(24) ⋅ 点赞:(0)

1.GPT侧重预测,生成。只用了decoder,由于添加了mask attention,不能注意下文,只根据上文进行生成。Autoregression,AR模型。

2.Bert(双向编码表征trans)侧重事实理解,考虑全局信息,提取出特征词向量。只用了encoder,不能生成。Autoencode,AE模型。

3.ELMO

从语言中提取出特征向量。下游任务较宽泛。

    

4.GPT微调,必须和预训练的下游任务一样。

AR模型从一系列time steps中学习,并将上一步的结果作为回归模型的输入,以预测下一个time step的值。

由于这种相关性是在过去time steps中,变量与其自身之间的相关性,因此也称为自相关性(autocorrelation)。此外,如果每个变量与输出变量几乎没有相关性,则可能无法预测。

5.BERT的改进

双向编码:就是在生成的过程中能考虑上下文。双向trans。

但是相对ELMO的改进是:lstm同一时间也只能关注一个方向的特征,然后俩个方向的特征再拼起来。而bert改进后,使用了selfattention,能同时注意上下文。

!!!

第二阶段拿更优质的data,做微调,使得参数更准确。

MLM:

只在训练阶段:随机去掉句子中的部分 token(单词),然后模型来预测被去掉的 token 是什么。

但是这样设计 MLM 的训练方法会引入弊端:在模型微调训练阶段或模型推理(测试)阶段,输入的文本中将没有 [MASK],进而导致产生由训练和预测数据偏差导致的性能损失。

考虑到上述的弊端,BERT 并没有总用 [MASK] 替换掩码词,而是按照一定比例选取替换词。在选择 15% 的词作为掩码词后这些掩码词有三类替换选项:

* 80% 练样本中:将选中的词用 [MASK] 来代替,例如:

“地球是[MASK]八大行星之一”

* 10% 的训练样本中:选中的词不发生变化,该做法是为了缓解训练文本和预测文本的偏差带来的性能损失,例如:

“地球是太阳系八大行星之一”

* 10% 的训练样本中:将选中的词用任意的词来进行代替,该做法是为了让 BERT 学会根据上下文信息自动纠错,例如:

“地球是苹果八大行星之一”

作者在论文中提到这样做的好处是,编码器不知道哪些词需要预测的,哪些词是错误的,因此被迫需要学习每一个 token 的表示向量,另外作者也表示双向编码器比单项编码器训练要慢,进而导致BERT 的训练效率低了很多,但是实验也证明 MLM 训练方法可以让 BERT 获得超出同期所有预训练语言模型的语义理解能力,牺牲训练效率是值得的。

下句预测NSP  为下游任务准备

BERT 输入的语句将由两个句子构成,[SEP]分隔符隔开,其中,50% 的概率将语义连贯的两个连续句子作为训练文本,另外 50% 的概率将完全随机抽取两个句子作为训练文本。

CLS标签会和两个语句的每个词都做注意力计算,包含两个语句的信息。

softmax后,结果为 1,表示输入为连续句对;结果为 0,表示输入为随机句对。

BERT 可以学会捕捉两个输入句对的文本语义

下游任务改造:

已知bert通过trm的encode知道了每个词的意思和每个句子的语义,那么可以改造为:情感分类?实体抽取?。。。。

AE模型的优缺点如下:

优点:上下文依赖:

AR的表示hθ(x1:t−1)仅仅到位置t之前(比如左边的所有token),BERT的表示Hθ(x)t可以涵盖前后向两边的上下文。

BERT使用双向transformer,在语言理解相关的任务中表现很好。

缺点:

输入噪声:BERT在预训练过程中使用【mask】符号对输入进行处理,这些符号在下游的finetune任务中永远不会出现,这会导致预训练-微调差异。而AR模型不会依赖于任何被mask的输入,因此不会遇到这类问题。

BERT在对联合条件概率p(x¯|x^)进行因式分解时,基于一个独立假设:在给定了unmasked tokens时,所有待预测(masked)的tokens是相互独立的。