美文网首页
AutoPrompt初步了解

AutoPrompt初步了解

作者: 臻甄 | 来源:发表于2024-06-18 19:15 被阅读0次

Prompt是什么

NLP发展的四个阶段
(1)完全有监督机器学习:word本质是特征,主要在做特征工程
(2)完全有监督深度学习:开始搞卷积和Attention
(3)预训练:预训练 --> 微调 --> 预测:无监督方法比如BERT+finetune适应下游任务
(4)提示学习:预训练 --> 提示 --> 预测:让下游任务来适应语言模型。

使用Prompt的原因:尽可能在下游任务中使用模型时与pretrain阶段的任务一致。所以重新定义下游任务,统一为pretrain语言模型任务。实现下游任务标数据驱动。

Prompt思想

上下游任务一致。

由此衍生出auto prompt、soft prompt、连续Prompt等。

比较BERT和GPT
(1)BERT在finetune让数据驱动参数变化
(2)GPT使用Prompt让语言通顺,pretrain也是使用通顺的语料。预训练语言模型的知识当当丰富,没有必要为利用它而重构。

Cloze Prompt VS Prefix Prompt

Cloze Prompt:对应Prompt在句中,pretrain用自回归语言模型解决生成任务。
Prefix Prompt:对应Prompt在句末,pretrain用自编码语言模型解决掩码任务。

Hard Prompt: Discrete Prompt

(1)搜索空间是离散的。需要算法工程师在下游任务上具备丰富的经验以及了解原预训练模型的底层概念。
(2)一般的hard prompt准确率会不如fine-tuning的SOTA,不同的Prompt对模型的影响非常大(提示的长度、词汇的位置,一点Prompt的微笑差异也能造成效果的巨大差异)

需要如下的要求:

  • 设计一个合适的提示模板,创造一个完形填空的题目。
  • 设计一个合适的填空答案,创造一个完形填空的选项。

Step1:构造Prompt。
Step2:构造MASK token映射。

AutoPrompt

Motivation:由于Prompt的设计强依赖于人为因素,Prompt几个字都能导致模型效果有巨大变化。为了减少人工设计的去『构造Prompt』和『构造MASK token映射』,提出了AutoPrompt。

分类

(1)Prompt Mining:从巨大的语料库中进行挖掘,比如输入与输出之间的高频词作为模板构建元素。
(2)Prompt Paraphrasing:参考文本数据增强方法,可以做seed Prompt的同义词替换,跨语种翻译等。
(3)Gradient-based Search:从候选词中选择一些作为Prompt并参与训练,根据梯度下降对选择词重新排列组合。?
(4)Prompt Generation:通过文本生成模型直接生成一个Prompt
(5)Prompt Scoring:根据语言模型对所有候选Prompt打分,选择一个最高分的Prompt使用上述Hard Prompt方法会输出可被人类理解的句子。

步骤

去除人工设计带来的变数,自动执行下面两步。【没看懂】
Step1: 构造Prompt,选择loss下降最大的Prompt token,先给定mask映射词,也就是:[CLS] {sentence} [T] [T] [T] [MASK]. [SEP],先用假设的[T],获取[MASK],再用得到的[MASK]映射,用数据驱动选择[T]
Step2:构造MASK token映射,使用上下文的MASK token的output embedding作为x,与label训练一个logistic,logistic得分高的向量更能表示label。使用上下文MASK token的output token的embedding给打分函数,取得分top-k。

举个例子

  • 关系抽取任务
  • 预测 Dante was born in [T] [T] [T] [T] [Mask][MASK] 的遮蔽部分。[T]是用来引导模型的触发词(trigger word)。触发词就是 Prompt 信息,这些触发词可以提升语言模型的分类能力。
  • 【掩码】直接追加到文本后面、让语言模型去预测。预测多个词语比较困难,因此将所有的类别表示为单个token;只预测客体(Dante was born in [Mask]),不预测主体(In [Mask] Dante was born)和关系。
  • 【触发词】trigger word:Prompt信息,触发词可以直接提升语言模型在下游任务中的能力。

代表论文

https://arxiv.org/pdf/2010.15980
AUTOPROMPT: Eliciting Knowledge from Language Models with Automatically Generated Prompts
https://gitcode.com/ucinlp/autoprompt

Main points

预训练语言模型(LMs)在预训练后能够捕获多种知识类型,但直接评估这些知识存在难度。
AUTOPROMPT是一个自动化的提示生成方法,用于评估预训练LMs中的知识。
AUTOPROMPT使用梯度引导搜索来创建有效的提示,无需手动努力。
该方法通过结合原始输入和触发词,并使用模板来形成提示。
通过边缘化相关的标签词,可以从MLMs中提取类别概率。
在情感分析和自然语言推理(NLI)任务中,AUTOPROMPT生成的提示在没有微调的情况下表现出色。
在事实检索任务中,AUTOPROMPT生成的提示比手动和挖掘方法创建的提示更有效。
在关系提取任务中,MLMs使用AUTOPROMPT生成的提示可以比现有的监督关系提取模型更有效地提取知识。
AUTOPROMPT在低数据环境下可能比微调更有效,并且在实际应用中具有存储和部署上的优势。
尽管AUTOPROMPT是一个有用的工具,但它在某些情况下可能难以提取特定的现象,并且生成的提示可能缺乏可解释性。

问题与方案

问题:

  • 文档主要解决的问题是如何有效地从预训练语言模型(LMs)中提取知识。尽管这些模型在预训练后表现出色,但直接评估它们在预训练阶段学到的知识类型(如语言知识、事实知识、常识或特定任务知识)存在难度。

方案:

  • 为了解决这个问题,研究者们开发了AUTOPROMPT,一个自动化方法,用于为多种任务创建提示(prompts),这些提示基于梯度引导搜索来生成。

核心步骤

AUTOPROMPT的核心步骤可以解释如下:

  • 任务输入与模板结合:首先,确定任务的原始输入数据,并选择一个模板来构建提示。例如,在情感分析任务中,原始输入可能是电影评论。
  • 触发词的初始化与学习:在提示中,使用一组初始化为[MASK]的触发词。这些触发词在后续步骤中会被更新,以提高模型预测正确类别的概率。
  • 梯度引导的搜索:利用基于梯度的搜索策略来迭代更新触发词。这个过程涉及到计算词汇表中每个词与当前触发词交换后对标签似然性的影响,并选择最有可能提高似然性的词来替换触发词。
  • 生成最终提示:通过上述步骤,最终生成一个能够引导语言模型准确预测任务类别的提示。

举例来说,如果任务是情感分析,原始输入可能是一句电影评论。AUTOPROMPT会使用一个模板,比如“[sentence] is really [MASK].”,并将触发词如“atmosphere”、“dialogue”等嵌入到模板中,形成如“[sentence] is really atmosphere dialogue [MASK].”的提示。然后通过梯度引导搜索来优化这些触发词,最终得到一个能够准确预测情感类别的提示。

结论

  • 研究结果表明,使用AUTOPROMPT生成的提示可以有效地从预训练的掩码语言模型(MLMs)中提取知识,而且与手动创建的提示相比,不需要额外的参数或微调,有时甚至能达到与最新监督模型相当的性能。此外,研究还发现AUTOPROMPT在低数据环境下比微调有更好的性能,并且在实际应用中提供了一些优势,比如不需要存储大量的模型检查点。

关键论述

"These tokens are initialized to [MASK] tokens, and then iteratively updated to maximize the label likelihood over batches of examples." 这句话说明了触发词最初被设置为[MASK]标记,然后通过迭代更新以最大化标签似然性。

"Formally, at each step, we compute a first-order approximation of the change in the log-likelihood that would be produced by swapping the jth trigger token with another token in the vocabulary." 这里描述了计算过程,即在每一步中计算交换第j个触发词与词汇表中的另一个标记所产生的对数似然变化的一阶近似。

"Then we identify a candidate set of the top-k tokens estimated to cause the greatest increase:" 这句话指出了如何确定一组候选词,这组词是预计能带来最大增加的前k个标记。

"In this paper, we introduce AUTOPROMPT—an automated method for generating prompts for any task, illustrated in Figure 1. Given a task, e.g., sentiment analysis, AUTOPROMPT creates a prompt by combining the original task inputs (e.g. reviews) with a collection of trigger tokens according to a template." 这句话概述了AUTOPROMPT自动化生成任务提示的方法,它通过结合原始任务输入和触发词来创建提示。

"The same set of trigger tokens is used for all inputs, and is learned using a variant of the gradient-based search strategy proposed in Wallace et al. (2019)." 这里提到了触发词集合对所有输入都是相同的,并且是使用基于梯度的搜索策略的变体学习的。

"The prompt is constructed by taking the original task inputs—a collection of one or more sequences of tokens (e.g., the review in Figure 1)—and mapping them to a sequence of tokens using a template." 这句话说明了提示的构建过程,它涉及将原始任务输入(一个或多个token序列)映射到使用模板的token序列。

相关文章

  • 初步了解

    什么是css语法?CSS (Cascading Style Sheets) 层叠样式表,用来编辑 HTML中元素...

  • LLVM 初步了解

    什么是LLVM 官网:https://llvm.org/ LLVM项目是模块化、可重用的编译器以及工具链技术的集合...

  • 初步了解阿德勒

    这周在读的书都可以算作心理类的。其中《幸福的勇气》《自卑与超越》和前段时间看的《被讨厌的勇气》都是阿德勒心理学理论...

  • css初步了解

    层叠样式表 (Cascading Style Sheets) css可以用来为网页创建样式表,通过样式表可以对网页...

  • Hbase初步了解

    特点:单表可以有百亿行,百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常有弹性面向列的存储和权限控制(可以...

  • 初步了解ObjectMapper

    参考GitHub - Hearst-DD/ObjectMapper: Simple JSON Object map...

  • 初步了解RTP

    实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,RTP协议...

  • 初步了解RTMP

    1 RTMP 实时消息传输协议,是现在比较常用的协议 它有三种变种: 1)工作在TCP之上的明文协议,使用端口19...

  • OkHttp 初步了解

    http://blog.csdn.net/lmj623565791/article/details/4791108...

  • WKWebView初步了解

    (整理记录网上别人的博客学习)(未完。。)http://www.cnblogs.com/markstray/p/5...

网友评论

      本文标题:AutoPrompt初步了解

      本文链接:https://www.haomeiwen.com/subject/glvfcjtx.html