连续Prompt: P-tuning

论文地址:GPT understands,Too

相关博客
【自然语言处理】【可解释性】NKB:用于预训练Transformers的神经知识银行
【自然语言处理】【可解释性】自注意力归因:解释Transformer内部的信息交互
【深度学习】【积分梯度】深度网络的公理归因(Axiomatic Attribution for Deep Networks)
【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
【机器学习】【可解释性】LIME
【自然语言处理】【聚类】TELL:可解释神经聚类
【自然语言处理】【Prompt】语言模型即知识库(Language Models as Knowledge Bases)
【自然语言处理】【Prompt】P-tuning

一、简介

  • 预训练语言模型在很多自然语言处理任务上取得了巨大的成功。一些研究表明,预训练语言模型不仅能够学习到上下文表示,也能够学到语法、句法、常识、甚至是世界知识。
  • 根据训练目标,预训练语言模型可以划分为三类:(1) 单向语言模型(GPT);(2) 双向语言模型(BERT);(3) 混合语言模型(UniLM)。很长一段时间,GPT风格的模型在NLU上的表现很差,所以认为其天然不适合NLU任务。
  • GPT-3通过prompt的方式在zero-shot和few-shot上达到了很好的效果,证明了单向语言模型与prompt相结合可以适用于NLU任务。
  • 但是,人工手写一个最优prompt通常是非常困难的,而且也很容易过拟合至测试集上。此外,还很容易创建一个对抗prompt,导致准确率大幅度下降。
  • 近期的工作主要是集中在自动搜索离散prompt。但是,神经网络是连续的,离散prompt只能是次优解。
  • 论文提出了一种称为P-tuning的方法,在连续空间中自动搜索prompt。该方法需要利用少量的可训练参数,从而将prompt输入至预训练语言模型。
  • P-tuning在LAMA探针和SuperGLUE上进行了测试。在LAMA探针任务中,基于P-tuning的GPT方法能够比其他方法提升26.2%至41.1%。在SuperGLUE上进行few-shot和全监督的测试,基于P-tuning的GPT方法与微调的BERT相当,甚至在某些数据集上会更优。
  • BERT风格的模型也能从P-tuning中受益,基于ALBERT的P-tuning在few-shot的设置下达到了SOTA。

二、P-tuning

1. 基础概念和符号

  • 预训练语言模型为M\mathcal{M}M,一个离散token的输入序列为x1:n={x0,x1,…,xn}\textbf{x}_{1:n}=\{x_0,x_1,\dots,x_n\}x1:n​={x0​,x1​,…,xn​},这个输入序列经过预训练层e∈M\textbf{e}\in\mathcal{M}e∈M得到的嵌入向量序列为{e(x0),e(x1),…,e(xn)}\{\textbf{e}(x_0),\textbf{e}(x_1),\dots,\textbf{e}(x_n)\}{e(x0​),e(x1​),…,e(xn​)}。
  • 设x\textbf{x}x表示给定的上下文, y\textbf{y}y表示预测目标,随着场景的不同,这两个符号的含义也不相同。举例来说,在预训练的过程中,x\textbf{x}x表示没有被mask掉的token,y\textbf{y}y表示被mask掉的token。另外,在句子分类中,x\textbf{x}x表示句子中的所有token,y\textbf{y}y表示[CLS]。
  • p是一个prompt函数,用于组织上下文x\textbf{x}x、预测目标 y\textbf{y}y,从而形成模板TTT。举例来说,在LAMA的预测一个国家首都的任务中,模板TTT为The capital of Britain is [MASK]\text{The capital of Britain is [MASK]}The capital of Britain is [MASK],其中The capital of ... is ...\text{The capital of ... is ...}The capital of ... is ...是prompt,Britain\text{Britain}Britain是上下文x\textbf{x}x,[MASK]\text{[MASK]}[MASK]是预测目标 y\textbf{y}y。

2. 传统的Prompt

​ 令V\mathcal{V}V表示语言模型M\mathcal{M}M的词表,[Pi][P_i][Pi​]表示模板TTT中的第i个token。给定一个模板T={[P0:i],x,[Pi+1;m],y}T=\{[P_{0:i}],\textbf{x},[P_{i+1;m}],\textbf{y}\}T={[P0:i​],x,[Pi+1;m​],y},传统离散prompt有,[Pi]∈V[P_i]\in V[Pi​]∈V且将整个模板映射TTT为
{e([P0:i]),e(x),e([Pi+1;m]),e(y)}(1)\{\textbf{e}([P_{0:i}]),\textbf{e}(x),\textbf{e}([P_{i+1;m}]),\textbf{e}(y)\}\tag{1} {e([P0:i​]),e(x),e([Pi+1;m​]),e(y)}(1)
然后使用语言模型来预测y\textbf{y}y的结果。

3. P-tuning

​ P-tuning会使用伪[Pi][P_i][Pi​]来替换离散token,然后使用其连续向量构建目标,即一个模板TTT可以表示为
{h0,…,hi,e(x),hi+1,…,hm,e(y)}(2)\{h_0,\dots,h_i,\textbf{e(x)},h_{i+1},\dots,h_m,\textbf{e(y)}\}\tag{2} {h0​,…,hi​,e(x),hi+1​,…,hm​,e(y)}(2)
其中,hi(0≤i<m)h_i(0\leq i<m)hi​(0≤i<m)是可训练的向量。

​ 通过这种方式能够发现优于离散prompt的连续prompt,从而超越语言模型M\mathcal{M}M的词表V\mathcal{V}V。通过下游的损失函数L\mathcal{L}L,可以逐步优化连续的prompt hi(0≤i<m)h_i(0\leq i< m)hi​(0≤i<m),
h^0:m=argminhL(M(x,y))(3)\hat{h}_{0:m}=\mathop{arg min}_h\mathcal{L}(\mathcal{M}(x,y)) \tag{3} h^0:m​=argminh​L(M(x,y))(3)

4. 优化

4.1 挑战

连续prompt是一个很直接的想法,但是在实现是面临两个挑战。

  • 不连续性

    原始模型M\mathcal{M}M的词嵌入在经过预训练后会变的高度离散。但是,如果hhh是随机初始化并使用SGD进行优化,那么最终hhh的值只能在其领域的很小范围内改变,这样会落入局部最小值。(这个理由怪怪的)

  • 关联性

    直觉上,prompt嵌入的向量hih_ihi​应该是彼此关联的,而不是独立的。因此,需要一些机制将prompt嵌入关联起来。

4.2 解决方案

​ 鉴于上面的挑战,论文提出使用由简单神经网络组成的prompt编码器来对序列hih_ihi​进行建模。在实践中,使用双向LSTM、两层MLP及ReLU来鼓励不连续性。正式来说,语言模型M\mathcal{M}M的真实输入hi′h_i'hi′​为
hi=MLP([hi→:hi←])=MLP([LSTM(h0:i):LSTM(hi:m)])(4)h_i=\text{MLP}([\overrightarrow{h_i}:\overleftarrow{h_i}])=\text{MLP}([\text{LSTM}(h_{0:i}):\text{LSTM}(h_{i:m})]) \tag{4} hi​=MLP([hi​​:hi​​])=MLP([LSTM(h0:i​):LSTM(hi:m​)])(4)
为了得到连续prompt使用LSTM确实增加了一些参数,但也还是比预训练模型的参数少很多。此外,在推理过程中,可以抛弃LSTM,仅输入嵌入向量hhh。

​ 论文中这部分的文字介绍并不清晰,还是直接看图吧

​ 图中可以看到,先将一些伪prompt输入至LSTM中,然后利用LSTM的输出向量来替代原始的prompt token,然后一起输入至预训练语言模型中。而且,LSTM和随着预训练语言模型一起训练。关于伪prompt在论文中并没有详细介绍。

【自然语言处理】【Prompt】P-tuning相关推荐

  1. Prompt 学习和微调综述 (Prompt Learning and Tuning)

    原文:Prompt 学习和微调综述 (Prompt Learning and Tuning) 一文总结Prompt Learning/Tuning. >>加入极市CV技术交流群,走在计算机 ...

  2. NLP 新宠:谈Prompt的前世今生

    作者|闵映乾 单位 | 中国人民大学信息学院硕士 研究方向 | 自然语言处理 导读:本文目标是对近期火爆异常的Prompt相关研究作一些追溯和展望,内容主要参考论文<Pre-train, Pro ...

  3. 【自然语言处理】【多模态】OFA:通过简单的sequence-to-sequence学习框架统一架构、任务和模态

    OFA:通过简单的sequence-to-sequence学习框架统一架构.任务和模态 <Unifying Architectures, Task, and Modalities through ...

  4. Re33:读论文 Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Languag

    诸神缄默不语-个人CSDN博文目录 论文名称:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in N ...

  5. 恒源云(GPUSHARE)_未闻Prompt名(论文学习笔记)

    文章来源 | 恒源云社区(专注人工智能/深度学习GPU免费加速平台,官方体验网址:https://gpushare.com) 原文作者 | Mathor 原文地址 | https://gpushare ...

  6. NLP第四范式:Prompt概述【Pre-train,Prompt(提示),Predict】【刘鹏飞】

    一.概述 1.prompt的含义 prompt顾名思义就是"提示"的意思,应该有人玩过你画我猜这个游戏吧,对方根据一个词语画一幅画,我们来猜他画的是什么,因为有太多灵魂画手了,画风 ...

  7. 【论文笔记】Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP

    摘要 Unlike traditional supervised learning, which trains a model to take in an input x and predict an ...

  8. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Process

    摘要 这篇文章是对最近比较火的"prompt"的一个总结,一篇非常好的综述,做NLP方向建议都要读一读:) 本文将这种方法称之为"prompt-based learnin ...

  9. prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural La

    prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Lan ...

  10. 【NLP】Pre-train,Prompt,and Predict

    目录 一. NLP的两大巨变 二. Prompting的正式描述 2.1 NLP中基于监督的学习 2.2 Prompting的基础 2.3 Prompting设计的几个方面 三.预训练语言模型 3.1 ...

最新文章

  1. 车联网空间巨大 解决网络安全问题乃当务之急
  2. Altium Designer -- PCB布局与布线
  3. unbuntu安装阿里云
  4. 交换机的三种转发模式
  5. android 缩进轮播图,如何利用纯css实现图片轮播
  6. (转)Android--sharepreference总结
  7. Javascript算法系列之快速排序(Quicksort)
  8. PLC通讯智能网关-不用PLC编程,实现西门子PLC与罗克韦尔(AB)PLC之间数据通讯
  9. 怎么把mp3转换成wav?
  10. linux 删除用户 currently logged in,userdel删除用户失败提示:userdel: user * is currently logged in 解决方法...
  11. Unity拼图小游戏
  12. Timer源代码分析
  13. 数据结构之有效的括号
  14. 微信群发c语言,微信群群发.py
  15. MXNet:基础和入门
  16. OpenHarmony鸿蒙相关资料
  17. 清除浏览器默认表单边框/背景特效和下拉菜单背景
  18. Deploying Kylix 3 Applications
  19. 6月书讯:最受欢迎的SQL入门书重磅升级
  20. sublime text 3 序列号

热门文章

  1. 学生党开学必备平价时尚蓝牙耳机,蓝牙耳机音质排行榜
  2. Java EE 概述
  3. Dell 755 安装PCI 简易通讯控制器驱 WIN2K3 驱动
  4. 对于TF密码卡而言,如果本身不能进行多线程加密,那么有什么方法可以对不同会话密钥进行加密以及不同数据进行类似并发的加密呢?...
  5. http://www.dnc.com.cn
  6. Parallels Desktop 开机windows黑屏的解决
  7. COM与套间(Apartment)之我见
  8. 学习工作总结(一)——信道编码与BOK调制
  9. #ubuntu# #常用工具#
  10. java数组练习题---创建元素不重复的数组