赞
踩
预训练语言模型是采用迁移学习的方法(归纳迁移学习)通过自监督学习从大规模数据中获得与具体任务无关的预训练模型,然后用训练好的预训练模型提高下游任务性能的一种数据增强法
优势:
基本思想:自然语言处理任务往往用有监督方法学习,但标注数据有限,预训练方法可以通过自监督学习从大规模数据中获得与具体任务无关的预训练模型,然后用训练好的预训练模型提高下游任务的性能。
训练过程
适合分类问题
按语言模型分类
注:词向量也是一种预训练语言模型
预训练 + 微调架构
动机:学习深层的上下文词表示,并以此来更好的增强各类NLP任务
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask向量:
向任务中加入一个训练好的向量
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask
下游任务中加入
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask:
固定ELMo中BiLM网络中的参数,然后将
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask 与下游任务的
X
k
X_k
Xk或
h
k
h_k
hk连接,形成增强的表示[
X
k
X_k
Xk;
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask] 或 [
h
k
h_k
hk;
E
L
M
o
k
t
a
s
k
ELMo_k^{task}
ELMoktask],并将其用在下游任务中
模型训练
注:以上两种方法本质上是采用拼凑的方式学习,主要适用于解决CV任务
动机:提出一种可以让不同的NLP任务之间可以采用类似CV微调技术的通用归纳迁移学习方法
主要贡献是训练方法
GPT采用transformer Decoder部分,并且每个子层只有一个Masked Multi Self-Attention和一个Feed Forward,模型共叠加使用了12层Decoder
GPT输出为一个句子的表示,
GPT模型训练:
微调有两种方式:
(1)只调任务参数;
(2)任务参数和预训练模型一起调
Transformer结构可以比LSTM学到更丰富的语言知识,预训练语言模型在任务中起到了重要作用
Transformer比LSTM能学到更丰富的语言结构知识,本文用Transformer的Encoder联合上下文语境训练双向语言模型(相比ELMO),并在输出端附加一个简单的输出层
transformer 编码端
学习两个句子之间的前后顺序关系
目标任务微调-有监督:分类、匹配、序列标注、生成(选择式生成)
BERT的主要贡献:
BERT和GPT都是单独堆叠Transformer的Encoder和Decoder(BERT只是用Encoder,GPT只使用Decoder)这种单纯的使用某一部分,就会造成两个鸿沟:
BERT:具备双向语言理解能力的却不具备做生成任务的能力
GPT:拥有自回归特性的却不能更好的从双向理解语言
解决方法:使用标准的Transformer结构为基础,吸纳BERT和GPT的优点,使用多种噪声破坏原文本,再将残缺文本通过序列到序列的任务重新复原(降噪自监督)
BART与BERT区别:
BART是自回归类的模型,更有利于解决生成任务
给整个NLP预训练模型领域提供了一个通用框架,把所有NLP任务都转化成一种形式(text-to-text),通过这样的方式可以用同样的模型,同样的损失函数,同样的训练过程,同样的解码过程来完成所有的NLP任务
用transformer的编码解码端,把所有的任务转化为生成任务
输入端(提示工程)
对于输入的文本x,进行两步操作形成prompt输入:
输出端(答案工程)
Answer工程的目的是搜索一个answer空间Z和一个到原始输出Y的映射,从而得到一个有效的预测模型,需要考虑两个维度:确定answer形式和选择answer设计方法
训练设置:在很多情况下,无需对下游任务的语言模型进行任何显示训练即可使用prompting方法,又称零样本设置
参数更新:预训练模型+prompt参数
利用完形填空题进行少样本文本分类和自然语言处理
NLP四个范式:
域主要有三个问题:
* 针对输入端:如何构造prompt,更好的对下游任务建模,使其能够激发预训练模型的潜能
* 针对输出端:如何将原标签映射为prompt对应的新标签
* 针对模型:如何对预训练模型进行精调
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。