预训练模型总结

表示学习

在机器学习和深度学习里,我们需要把图片和文本转成数值数据才能进行训练。

文本表示

把文本表示成数值的一类方法

one-hot

one-hot向量是最简单的一种文本表示方法,假设词表大小为N,每个词语的大小都是N,每个词只有一个位置为1,其余为0,

缺点是:

1.当N非常大,数据稀疏,
2.每个词语的距离一样,没法计算相似度
3.没有包含词语的上下文

TF(BOW)

统计每个词语出现的次数,

缺点:

对常用词具有较高词频
没有语义相似度
没有包含词语的上下文

TFIDF

引入idf,解决了常用词高词频的问题

缺点:

没有语义相似度
没有包含词语的上下文

固定词向量表示(WORD2VEC)

预训练词向量,具有语义相似度,但是不能解决同义词的问题

动态词向量表示(预训练语言模型)

解决Word2vec的同义词问题
word2vec 有两种训练模式,第一种是skip_gram,通过当前词预测上下文,另外一种是cbow,通过上下文预测当前词,同时还加入了两种加速手段,一种是负采用,另外一种是层次的softmax。

迁移学习:

预训练:通过在大规模通用语料上做自监督训练大模型
微调:加载预训练模型的参数权重,下游NLP任务数据集做微调继续训练。

AR

自回归模型是从左自右或者从右自左的单向模型,gpt系列采用的是transformer的decoder,AR对生成任务有偏好。

AE

自编码模型采用mask机制,bert系列采用的就是transformer的encoder,AE对分类任务有偏好。

BERT 3亿参数

bert的三个输入:position embedding,token embedding,segment embedding,位置是绝对位置;

两个预训练任务:

1.MLM: 引入mask编码,让上下文预测mask的这个词,通过这种方式引入上下文,但是微调阶段没有mask,因此存在预训练和微调不一致的情况,为了减小这个问题的影响,加入了些trick,即随机选取15%的数据做mask,其中80%的词替换成masked,10%替换成其他词,10%不做替换。 
2.NSP:句间关系预测,50%是正确的,50%从其他非正确的样本中随机选取。
bert有3亿参数量

ALBERT

一个轻量版的bert,采用了三种瘦身技术
1.词嵌入因式分解
2.跨层参数共享
3.SOP,句子顺序预测,丢弃dropout

XLNET

1.对输入序列做排列组合,解决bert 预训练和微调不一致的情况,即在不使用mask的情况下引入文本的上下文
2.不同排列后的是输入序列输入传统的transformer后的输出结果一样,排列组合就没法生效,因此采用双流自注意力机制来解决这个问题。
3.引入transformer  XL的两个机制,第一个是片段循环机制,用来解决transformer的长期依赖问题,同时可以加快训练速度;第二个是相对位置编码,bert里使用的是绝对位置编码,没法知道是哪个循环片段里的,因此采用相对位置编码。

GPT1 1.17亿参数

GPT1 是与训练+微调方式的开启,word2vec是需要重新定义网络结构,预训练语言模型不用。
GPT 系列是OPEN AI提出的AR模型

1.17亿参数量

GPT2 15亿参数

gpt2做了如下改进:
1.去掉了微调层,模型会自动识别需要具体做的人任务
2.增加数据,采用了非常广泛且高质量的数据,该数据集包含了800万个网页,大小为40G。
3.增加网络层参数,GPT2将transformer堆叠到48层,隐藏层维度为1600,15亿参数量。			
4.调整transformer 结构,把layer normalization放到每个sub-block之前,并在最后一个self attention后面再加layer normalization 
5.将词汇表扩大到50257,最大的上下文从GPT1的512token增加到1024个,batch_size大小为512 

GPT3 1750亿

GPT-3采用了96层的多头transformer,头的个数为96个;
词向量的长度是12888;
上下文划窗的窗口大小提升至2048个token;
使用了alternating dense和locally banded sparse attention
1.微调需要大量标记样本,不利于语言模型的应用
2.人类在接触下游任务时不需要大量数据
3.提升模型的表征能力的同时降低数据分布的复杂度是不合理的。
4.1750亿参数量,大模型在多个数据集上没有使用微调的性能也非常好,既可以使用微调也可以不使用。

微调移除的方案
1.元学习
2.大规模的transfomer

情境学习:

1.few-shot learning,提供若干示例和任务描述
2. one-shot learing,提供一个示例和任务描述
3. zero -shot learing,不提供示例,只提供任务描述,

你可能感兴趣的:(自然语言处理,深度学习,自然语言处理,人工智能)