【提示学习】AUTOPROMPT: Eliciting Knowledge from Language Models with Automatically Generated Prompts

论文信息

名称 内容
论文标题 AUTOPROMPT: Eliciting Knowledge from Language Models with Automatically Generated Prompts
论文地址 https://arxiv.org/abs/2010.15980
研究领域 NLP, 文本分类, 提示学习, 文本分类
提出模型 AutoPrompt
源码 http://ucinlp.github.io/autoprompt

阅读摘要

  Prompt任务需要构建合适的Pattern,但是编写合适的Pattern需要手动工作和人为猜测,有很大的不确定性。为了解决这个问题,提出AUTOPROMPT模型,基于梯度下降搜索来创建Pattern

[0] 摘要

  这篇论文并提出了一种名为AUTOPROMPT的自动化方法,用于为多样的任务创建适当的提示模板Pattern

  传统的MLM任务虽然可以评估语言模型的知识水平,但需要手动编写合适的Pattern,涉及较大的人力成本和猜测成分。AUTOPROMPT基于梯度下降搜索Pattern的方法解决了这个问题。

  AUTOPROMPT无需额外的参数或微调,有时甚至能够与最新的监督模型取得相当的性能。

[1] 介绍

  论文指出,传统的分析方法,如探测分类器注意力可视化,存在一定的局限性和不足。而通过提示prompting的方式,将任务转化为语言模型的形式,可以更直接地获取模型所具备的知识。

  然而,现有的提示方法需要手动构建上下文,这一过程耗时且容易出错,且模型对上下文的敏感性较高。为了解决这一问题,研究人员提出了AUTOPROMPT方法,通过自动化地生成提示来替代手动构建,从而提高分析的效率和广泛应用性。

  AUTOPROMPT方法基于梯度搜索策略,结合了原始任务输入和触发词(trigger tokens)集合,生成适用于所有输入的提示。通过将语言模型对提示的预测结果与相关标签词的类别概率相结合,可以将语言模型作为分类器进行评估。

  论文通过多个实验证明了AUTOPROMPT的有效性。首先,研究人员使用AUTOPROMPT构建了针对情感分析和自然语言推理的提示,无需微调,仅仅使用预训练的掩码语言模型(MLMs)就可以取得良好的性能,在SST-2数据集上达到了91%的准确率,优于经过微调的ELMo模型。其次,研究人员将AUTOPROMPT应用于LAMA的事实检索任务,通过构建更有效的提示,成功提取了MLMs的事实知识。此外,研究人员还引入了一种类似于关系抽取的任务变体,测试MLMs是否能够从给定的文本中提取知识。实验结果表明,在提供真实事实的上下文句子的情况下,MLMs可以超越现有的关系抽取模型,但在提供人工Pattern模板的上下文句子时表现不佳。

  最后,论文还指出AUTOPROMPT相比微调具有一定的实际优势。在低数据量情况下,AUTOPROMPT实现了更高的平均和最差情况准确率。与微调不同,使用提示的LMs不需要大量的磁盘空间存储模型检查点,一旦找到一个提示,就可以在现有的预训练LMs上使用。这在为多个任务提供模型服务时具有益处。

[2] 模型总览

  编写Pattern模板既耗时又不清楚同样的Pattern模板是否适用于每个模型,以及何种标准决定了某个Pattern模板是否最适合引出所需的信息。基于这一考虑,引入了AUTOPROMPT,其结构如下图所示。

请添加图片描述

[2.1] 背景和数学符号

  为了构建提示模板,区分了原始任务输入 x i n p x_{inp} xinp、触发令牌 x t r i g x_{trig} xtrig和作为输入给MLM的提示 x p r o m p t x_{prompt} xprompt。通过使用模板 λ λ λ,将 x i n p x_{inp} xinp映射到 x p r o m p t x_{prompt} xprompt

【注】看上图的左下方,n个[T]其实就是触发令牌 x t r i g x_{trig} xtrig,它们就是将要被梯度下降搜索的token,最开始被[MASK]初始化,[P]才是我们平时会预测的真正的[MASK]

  对于Verbalizer部分,采用多映射token概率求和的形式:

请添加图片描述

[2.2] 基于梯度的提示模板搜索

  思路是在prompts中添加一些被所有prompts共享的trigger tokens,就是模板中的[T], 这些token在一开始由[MASK]进行初始化,然后不断迭代更新来最大化似然估计。

  在每一步中,计算出将第 j j jtrigger token替换成另一个token w w w( w w w属于词汇表中的单词) 梯度的最大值。将引起最大变化的 t o p − k top-k topktokens构成候选集合 V c a n d V_{cand} Vcand:

请添加图片描述

[2.3] 自动化标签词选择

  尽管在某些任务中label tokens的选择是非常明显的,但在某些abstract class labels的问题中选择什么label tokens则是不清晰的。因此在论文中,作者提出了一种通用的两阶段用来自动选择label tokens集合 V y V_y Vy的方法。

  在第一步中,训练一个logistic classifier使用 [MASK] token作为输入来预测class label:

  classifier input:
请添加图片描述
  classifier output:

请添加图片描述

  其中右式中的 y y y β y \beta_y βylearned weightbias terms

  在第二步中,将MLMoutput word embeddings w o u t w_{out} wout作为训练好的logistic classifier的输入(替换上式中的 h ( 1 ) h^{(1)} h(1)),获得分数 s ( y , w ) = p ( y ∣ w o u t ) s(y,w) = p(y|w_{out}) s(y,w)=p(ywout) . 直观上来看 s w = e x p ( w o u t ⋅ y + β y ) s_w = exp(w_{out}·y + \beta_{y}) sw=exp(wouty+βy)得分对于与给定label相关的词汇会更大。通过上述方式可以构造出topk最高得分词汇:
请添加图片描述

【注】Pattern会分为硬模板和软模板。AutoPrompt属于硬模板的范畴,我个人还是觉得Soft Prompt来训练连续的伪标记会更好一点。硬模板不管再怎么搜索,寻找的词依然是PLM词表中的,而连续的向量自由度更高。

猜你喜欢

转载自blog.csdn.net/qq_43592352/article/details/130932095
今日推荐