Bert 与GPT差异

网络架构

在网络架构上,Bert使用的是Transformer的Encoder结构,因此可以输入序列中的每一个token都可以获取整个序列全文的上下文信息(Bidirectional)。而GPT使用的是Transformer的Decoder结构,通过Masked-Attention Layer,序列中的每一个token只能够看到其前方和自身的上下文信息(Left-to-right)。

无监督预训练目标函数

对于Bert使用的是完形填空和下一句判断来进行无监督的模型预训练,具体而言:

  • 完形填空(masked language model): 给定一个语料库中的句子,将其中的部分词进行遮蔽(mask),希望模型能够对这些词进行预测。
  • 下一句判断(next sentence prediction): 输入两个分隔的句子,让模型进行判断这两个句子在原始文本中是否是连续的上下文句。

对于GPT使用的是下一个词预测进行无监督的模型预训练:

  • 下一个词预测:假设从语料库中挑选出一个文本序列 U = [ u 1 , u 2 , . . . , u n ] U=[u_1,u_2,...,u_n] U=[u1,u2,...,un],将前文序列 U i n = [ u 1 , u 2 , . . . , u n − 1 ] U_{in}=[u_1,u_2,...,u_{n-1}] Uin=[u1,u2,...,un1]输入到模型当中,希望模型能够预测出下一个词为 u n u_n un

Fine-tuning时的模型和输入变化

由于Bert在预训练时使用了下一句预测任务作为目标函数,在进行Fine-tuning时输入能够自适应处理非连续的文本任务(例如QA),在进行微调时只需要重新训练分类头即可。在进行预训练和微调时,除了对应每个输入的预测结果外(token level prediction),还额外包含一个CLS头用来支持分类任务。
在这里插入图片描述

GPT由于在进行预训练时使用的是连续的文本进行下一个词的预测,因此对于非连续的序列信息无法直接进行处理(Entaiment、Similarity、Multiple Choice)。因此,在进行微调时需要对输入信息进行构造,同时添加针对每个任务的线性预测头,针对不同任务具体的构造方式如下图所示。在进行微调时,对应需要额外学习的参数有Delim分句符号的学习以及线性预测头的学习。
在这里插入图片描述

原始论文

[1] Bert: https://arxiv.org/pdf/1810.04805.pdf&usg=ALkJrhhzxlCL6yTht2BRmH9atgvKFxHsxQ
[2] GPT-1: https://www.mikecaptain.com/resources/pdf/GPT-1.pdf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值