博舍

【自然语言处理】【Prompt】P 自然语言处理吧

【自然语言处理】【Prompt】P

连续Prompt:P-tuning

论文地址:GPTunderstands,Too

相关博客【自然语言处理】【可解释性】NKB:用于预训练Transformers的神经知识银行【自然语言处理】【可解释性】自注意力归因:解释Transformer内部的信息交互【深度学习】【积分梯度】深度网络的公理归因(AxiomaticAttributionforDeepNetworks)【自然语言处理】【可解释性】PerturbedMasking:分析和解释BERT的无参数探针【机器学习】【可解释性】LIME【自然语言处理】【聚类】TELL:可解释神经聚类【自然语言处理】【Prompt】语言模型即知识库(LanguageModelsasKnowledgeBases)【自然语言处理】【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-tuning1.基础概念和符号预训练语言模型为Mmathcal{M}M,一个离散token的输入序列为x1:n={x0,x1,…,xn} extbf{x}_{1:n}={x_0,x_1,dots,x_n}x1:n​={x0​,x1​,…,xn​},这个输入序列经过预训练层e∈M extbf{e}inmathcal{M}e∈M得到的嵌入向量序列为{e(x0),e(x1),…,e(xn)}{ extbf{e}(x_0), extbf{e}(x_1),dots, extbf{e}(x_n)}{e(x0​),e(x1​),…,e(xn​)}。设x extbf{x}x表示给定的上下文,y extbf{y}y表示预测目标,随着场景的不同,这两个符号的含义也不相同。举例来说,在预训练的过程中,x extbf{x}x表示没有被mask掉的token,y extbf{y}y表示被mask掉的token。另外,在句子分类中,x extbf{x}x表示句子中的所有token,y extbf{y}y表示[CLS]。p是一个prompt函数,用于组织上下文x extbf{x}x、预测目标y extbf{y}y,从而形成模板TTT。举例来说,在LAMA的预测一个国家首都的任务中,模板TTT为The capital of Britain is [MASK] ext{ThecapitalofBritainis[MASK]}The capital of Britain is [MASK],其中The capital of ... is ... ext{Thecapitalof...is...}The capital of ... is ...是prompt,Britain ext{Britain}Britain是上下文x extbf{x}x,[MASK] ext{[MASK]}[MASK]是预测目标y extbf{y}y。2.传统的Prompt

​令Vmathcal{V}V表示语言模型Mmathcal{M}M的词表,[Pi][P_i][Pi​]表示模板TTT中的第i个token。给定一个模板T={[P0:i],x,[Pi+1;m],y}T={[P_{0:i}], extbf{x},[P_{i+1;m}], extbf{y}}T={[P0:i​],x,[Pi+1;m​],y},传统离散prompt有,[Pi]∈V[P_i]inV[Pi​]∈V且将整个模板映射TTT为{e([P0:i]),e(x),e([Pi+1;m]),e(y)}(1){ extbf{e}([P_{0:i}]), extbf{e}(x), extbf{e}([P_{i+1;m}]), extbf{e}(y)} ag{1}{e([P0:i​]),e(x),e([Pi+1;m​]),e(y)}(1)然后使用语言模型来预测y extbf{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, extbf{e(x)},h_{i+1},dots,h_m, extbf{e(y)}} ag{2}{h0​,…,hi​,e(x),hi+1​,…,hm​,e(y)}(2)其中,hi(0≤i

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇