2022李宏毅机器学习深度学习学习笔记第五周--BERT


前言

介绍什么是pre-train模型,有了模型后怎么做fine-tune以及pre-train模型怎么被训练出来。


一、pre-train 模型

pre-train 模型希望把输入的每一个token表示成一个embedding vector,vector包含了token的语义,意思相近的token要有比较相近的embedding ,embedding 里面的某些维度可以看出语义的关联性。
contextualized word embedding和过去模型的不同之处就是过去的模型输入一个token输出一个embedding,现在的是吃一整个句子,把一整个句子都看过以后,了解了上下文才给每个token输出一个embedding。
他的模型架构如下:
在这里插入图片描述
怎么让BERT模型变小呢?
在这里插入图片描述
除了用一些network压缩方法让network变小以外,network architecture 设计的目标是为了让机器可以读非常长的序列。
在这里插入图片描述
比如Transformer-XL可以读将近一本书的token,Reformer和Longformer要做的是减少self-attention(n*n)带来的计算量。

二、How to fine-tune

fine-tune部分旨在根据预训练的model添加部分层从而可以解决下游任务,我们有了一个pre-trained model以后,我们希望在它上面再叠一层Task-specific的部分,接下来这个模型就可以用在特定的模型上。
先看一下NLP任务的分类:
根据输入分两类,根据输出分四类,
输入:在这里插入图片描述
输入为一个句子,把输入丢到pre-trained model就可以了,如果输入是多个句子,第一个句子是问题。第二个是文件,在两个句子中间加分隔符SEP。
在这里插入图片描述
输出:
1.机器读一整个句子,输出一个class
在这里插入图片描述
在输入的时候加一个CLS,在pre-trained的时候要告诉机器看到CLS要产生跟整个句子有关的embedding ,把输出丢到模型中,模型在做分类的问题。在训练的时候没有cls的输入,就把所有输出都读进Task Specific进行分类。
2.每一个token都给他一个class
在这里插入图片描述
3.从输入做copy,比如Extraction-based QA
4.General Sequence,怎么把pre-trained的模型用在seq2seq模型里面。
版本一
第四个任务就是生成任务,BERT可以作为一个encoder,需要我们自己去设计一个decoder,但是decoder是没有经过预训练的。
在这里插入图片描述
版本二
也可以让pre-training模型当作decoder来使用,其方法就是输入一个[sep]之后让model输出一个东西,再将模型的输出作为模型的输入,以此类推,不断的得到输出结果。
在这里插入图片描述
假设有一些Task-specific模型怎么去fine-tune模型。
1.pre-trained模型训练完后就固定住了,变成一个Feature Extractor。
在这里插入图片描述
2,把pre-trained和Task-specific的部分接在一起,在fine-tune的时候不止调Task-specific也调pre-trained的模型。
在这里插入图片描述
在这里插入图片描述
再去微调整个模型,从上图可以看到pre-trained的模型在不同的任务中通过fine-tune以后都会变得不一样,每个任务都需要存一个新的model ,往往非常巨大,就有了Adaptor。只调pre-trained的一部分就好了,在pre-trained model中加入一些Apt,只调Apt的部分。
在这里插入图片描述
Weighted features
把不同层的features乘上weight加起来,再把每一层合起来的丢到任务中,w1\w2可以跟着task specific一起被学出来。
在这里插入图片描述
为什么需要pre-trained的模型?
pre-trained的模型带给我们比较好的performance,
在这里插入图片描述
黑线代表人类的能力,每个点代表每个模型在不同任务上的performance,蓝线代表不同任务的平均。机器以及可以与人相提并论了。

总结

本章在了解了BERT的内容后,具体了解了预训练和微调的内容。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值