自然语言处理(NLP)-4.3 BERT、T5与问答系统(BERT&T5&Question Answering)

1.概述

1.1 问答系统(Question answering)

        基于上下文:输入问题和文本,输出答案;如阅读理解

        封闭系统:直接输入问题,输出答案;如聊天机器人

        

1.2 迁移学习(Transfer learning)

    定义:先在有大量训练数据的任务上预训练,再迁移至下游任务上继续训练,此时只需少量数据

        

1.3 BERT(Bidirectional Encoder Representations from Transformers)

    定义:是一种基于transformer encoder的双向语言表示模型,同时考虑了前向依赖与后向依赖

       

1.4 T5

    定义:一种基于transformer的多任务模型

   


2.迁移学习(Transfer Learning)

2.1 基本概念

    迁移学习优点:

        减少训练时间

        提升预测准确率

        可通过少量数据训练

        

    迁移学习要素:

        (1)迁移器:Transfer

        (2)预训练数据:Pre-train data

        (3)预训练任务:Pre-training task

      迁移学习流程:

            先在原始数据集上进行预训练,再迁移至具体下游任务上继续训练,进行精调

        

        例如:

                一个训练好的模型可迁移至不同下游任务中,只需在下游任务上使用少量数据继续训练

        

2.2 迁移器(Transfer)

    分类:

        基于特征:Feature-based

        基于精调:Fine-Tuning

       

    基于特征:

        定义:将预训练模型的隐藏层参数提取出来,用在新模型中

        例:

            如词嵌入的训练就是一种迁移学习,先通过中心词预测得到词嵌入矩阵,再将其迁移到其他NLP任务中加以使用

           

    基于精调:

        定义:直接用预训练模型,或为预训练模型新增一个输出层,使其适应当前任务

        例:

            通过电影评论训练一个三分类情感分类模型,现在要通过课程评论训练五分类模型

            可通过直接使用之前的模型在新数据集上继续训练,并增加新输出层,以实现五分类的要求,

           

2.3 预训练数据(Pre-train data)

   数据与表现:

        关系:通常训练数据量越大,模型效果越好

            

    标注数据与未标注数据:

        关系:通常标注数据数量较少,未标注数据数量很多

            

    通过无标注数据迁移学习:

        方法:先通过无标注数据预训练模型,再迁移至标注数据上继续训练

            

2.4 预训练任务(Pre-train task)

    自监督学习(Self-supervised task):

        方法:构建一种模型结构,使其能自行构建训练集与标签进行训练,无需人工标注数据

        例如:预测下一个词

            


3.常见NLP模型及发展

3.1 CBOW

    概述:使用固定大小的窗口选择上下文,来预测中心词

       

    缺点:因窗口大小固定,当窗口过小时可能丢失关键信息,且无法处理长距离依赖关系

       

3.2 ELMo

    概述:引入RNN结构,使用了双向LSTM,能通过全部上下文信息来预测中心词

       

    优点:解决了固定窗口带来的问题,能够处理长距离依赖

    缺点:没有注意力机制,存在信息丢失与梯度消失问题,无法并行处理数据

3.3 GPT

    概述:GPT基于Transformer的Decoder结构,使用了注意力机制,利用前文信息来预测中心词

       

    优点:使用了注意力机制,能够并行处理输出数据提高效率,解决了信息丢失与梯度消失问题

    缺点:只使用前向注意力,只考虑前向依赖而没考虑后向依赖关系

       

3.4 BERT

    概述:BERT基于Transformer的Encoder结构,且使用双向注意力,能同时考虑上下文信息

            

    优点:

        使用双向注意力,能同时考虑上下文关系

        Words to sentences:不仅能预测下一个单词,还能预测下一个句子

           

        预训练:支持自监督训练,可以使用MLM和NSP两种方法进行预训练

            Multi-Mask:随机从句子中选择单词作为中心词让模型预测

            Next Setence Prediction:输入一个句子,让模型预测下一个句子

           

3.5 T5

    概述:T5使用了Transformer的Encoder和Decoder结构,是一种多任务模型

            

    优点:

        Text-to-Text:文本到文本,通过在输入文本中指定任务类型,即可通过一个模型实现不同任务功能

            

3.6 总结

   


4.BERT

4.1 基本概念

    定义/概述:

        全称Bidirectional Encoder Representations from Transformer ,即双向Transformer编码表示模型;

        是一个多任务语言表示模型(language representation model);

        主要模型结构是由trasnformer的encoder堆叠而成,主要流程是预训练(pre-training)与精调(fine-tuning)

    结构:

        由输入层、中间层、输出层构成;中间层与输出层同transformer encoder基本一致

        输入层为适应多任务训练而进行了一定改造

        

    特点:

        多层双向transformer

        位置编码

        深度网络结构/大量参数

        

4.2 输入层与输出层

    输入层:

        输入格式:为使BERT支持多任务,因此输入格式为 [标识符]+句子 的结构

        标识符:

            [CLS]:起始符,表示句子的开始

            [SEP]:分隔符,分隔两段文本

        输入层格式:

            词嵌入(Token Embneddings):将各单词转换为对应词向量

            段嵌入(Segment Embeddings):表明这个词属于哪个句子;在有多文本输入时用于区分

            位置嵌入(Position Embeddings):维护各单词间位置关系,由模型训练出;(与Transformer不同,Transformer中是预先设定好的值)

           

    输出层:

        输出格式:对应输入层,会输出 对应任务的结果+句子

        

4.3 BERT流程

4.3.1 预训练(Pre-Training)

        定义:可先通过大量语料数据进行无监督的预训练

        方法:

            掩码语言模型(MLM):随机选择单词遮掩作为中心词预测,无需人工标注数据;提升模型理解能力

            下一句子预测(NLP):给出上一句,预测下一句,无需人工标注数据;提升模型预测能力

            

           

4.3.2 精调(Fine-Tuning)

    定义:使用预训练好的BERT模型迁移至不同下游任务继续训练,以进行精调

        

    方法:通过改变输入结构,来实现对不同任务的目标

        


5.T5(Text-To-Text Transfer Transformer)

5.1 基本概念

    定义:一种文本到文本模型,将常见的NLP任务全部整合进一个模型中

    常见预训练模型结构比较:

        (1)Encoder-Decoder:即 Seq2Seq 常用模型,分成 Encoder 和 Decoder 两部分,Encoder可用全部信息,Decoder只能用之前的信息;如Transformer

        (2)Language model:只使用Encoder,当前时间步只能看到之前时间步信息;如GPT

        (3)Prefix LM:Encoder 和 Decoder 的融合体,部分Encoder只能能看到之前的信息,而部分Decoder能看到全部信息;如UniLM

       

    T5模型结构:

        基于Encoder-Decoder结构的深层网络模型,网络规模大,参数量极大

       

5.2 训练方法

5.2.1 多任务训练策略(Multi-Task Training Strategy)

    定义:通过使用不同任务的数据集来训练模型

       

    输入输出格式: 任务指令+输入文本

       

    数据选择策略(Data Training Strategies):

        因为T5是多任务模型,所以需要使用不同数据集进行训练,可以通过以下策略决定各类数据比例:

            (1)等量混合(Equal mixing):即从不同任务数据集中取等量数据用于训练

            (2)等比混合(Examples-proportional mixing):根据不同任务数据集大小,等比例取数据用于训练,即数据集越大取的训练数据越多

            (3)混合系数混合(Temperature scaled mixing):设定一个混合系数T,根据其从不同数据集中选择训练数据

       

       

5.2.2 预训练+精调

    定义:通过先预训练再精调的方式训练模型

       

    精调方法:

        逐步解冻法(Gradual Unfreezing):先将所有隐藏层设为不可训练,再从深至浅依次解冻,使其可以训练

        调整层法(Adapter layers):增加新的输出层,并进行训练

       

结论:

        使用预训练+精调的训练方法效果比使用多任务训练要好

        更大的模型、更多的训练数据、更长的训练时间,都对最终效果起正面影响

5.3 GLUE Benchmark(通用语言理解评估基准)

    定义:国际权威数据集,包含了各类NLP问题的数据集,可用来训练和评价模型效果

       

    包含领域:

       

5.4 使用T5实现问答系统

    Transformer encoder:

        

    数据示例:

        

    使用T5实现:

        (1)加载预训练模型

        (2)调整数据格式,使其符合T5的输入格式

        (3)在目标任务上精调模型

        (4)使用最终模型预测结果

        


作业代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization

可将代码与数据下载至本地,使用jupyter notebook打开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ogmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值