GPT1(Improving Language Understanding by Generative Pre-Training)论文阅读

论文地址:Improving Language Understanding by Generative Pre-Training

1. 论文阅读

1.1 背景介绍

在GPT(Generative pre-trained transformer)大火的今天回去重读了GPT在18年的开山之作【Improving Language Understanding by Generative Pre-Training】。在面对NLP众多种类任务(自然语言推理/问答/文档分类)时有大量无标注语料,相对而言,有标注的语料非常少。

为此论文提出一个新的训练思路: 先基于海量无标注语料进行通用的生成式预训练,然后针对下游任务使用有标注的数据进行finetune。这算是一个两阶段的半监督训练方法, 先后融合了无监督的预训练和有监督的finetune训练。

1.2 模型框架

  • 无监督的生成预训练
    对于语言模型训练来说,给定一组token序列(也就是对应一句话)U,U={u1, u2, u3, ..., un}, 目标最大化下一个token的最大似然,k是上下文的窗口大小。
    在这里插入图片描述

在实现时使用多层transformer decoder来实现,给定一组token的输入,通过多头自回归注意力机制实现下一个token的预测。需要注意的是对于生成来说,跟原始transformer论文不同的是,这里只用到了transformer decoder,并在decoder中去掉了前一encoder的输入的multi-head attention部分, 如下图:
在这里插入图片描述

对应论文中的公式如下:
在这里插入图片描述

  • 有监督的finetune训练
    给定一个有标注的数据集C,其中token序列(x1, x2, ..., xm)对应的label是y,对于transformer的输出h,乘上一个参数矩阵W。学习目标是最大化对应的最大似然。
    在这里插入图片描述

需要注意的是finetune中也要考虑模型的通用性,所以增加了下个辅助学习目标(Auxiliary Learning Objective),这里对应的是预训练模型的L1(C),即公式(1)。最终目标如下:
在这里插入图片描述

finetune过程中不是对所有参数进行更新,只对参数矩阵Wtoken embedding层进行更新。

  • 下游任务的输入格式统一
    下游任务的输入格式不统一的话,对于不同NLP下游任务进行迁移学习时通常都要在网络中增加新的任务相关的模块,为了达到transformer网络格式针对不同NLP下游任务不变的目标,这里对不同的NLP下游任务输入格式进行了统一处理。例如:

    • 文本推理任务:拼接了前提(premise)和假设(hypothesis),中间通过分隔符(Delimiter)隔开
    • 语义相似度:两个句子没有固定的前后关系,这里分别按可能的前后顺序进行了拼接,然后最终输出在linear操作前进行了element-wise操作。
  • 最终整体架构如下:
    在这里插入图片描述

2. 参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MLTalks

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

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

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

打赏作者

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

抵扣说明:

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

余额充值