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 Language Processing

  1. 介绍nlp领域的两大变革
    1. 预训练-finetune:在finetune阶段将PLM应用到下游任务上,在微调阶段根据下游任务设计训练对象并对PLM本体进行调整。在标准的“pre-training和fine-tuning”范式中,预训练阶段和下游任务之间的gap可能很大:原因是它们训练目标不同。
    2. 预训练-prompt-predict:prompting使得下游任务可以采用与预训练目标相同的格式。
  2. prompt方法介绍
    1. prompt方法解决了什么问题:
      • 提升了无监督和半监督模型的表现,解决了在数据集很小或没有的时候,如何完成下游任务;
    2. prompt func如何设计
      1. prompt engineering非常重要,因为小的扰动就可能会显着影响模型的性能,而设计完美的prompt需要对 LM 内部机制的理解以及反复的试验。
      2. 一个prompt设计示例
      x =“I love this movie.”, the template may take a form such as “[X] Overall, it was a [Z] movie.”. Then, x′ would become “I love this movie. Overall it was a [Z] movie.”
      
      1. 如果z完全在整个文本的后面,称为prefix prompt;如果z在整个文本的中间,称为cloze prompt;
      2. prompt有多种形式,有的prompt不完全由token组成,上面的例子中的prompt是有意义的自然语言,但实际上其形式并不一定要拘泥于自然语言,也可能含有虚拟单词或直接使用向量(数字id,代表一个连续空间里面的特征id);
      3. 根据具体的需要,x的数量和z的数量能够灵活改变;
    3. 如何根据promt搜索答案
      首先定义一个答案集合Z:{z}, Z中包含了有可能填充在prompt func中的任意一个答案,这个集合可能很大,也可能只包含几个token;定义一个方程f(x’, z),其中x‘=prompt_fun(x),这个方程会计算填充了z之后的x‘的概率值;找到那个能够使得f(x’, z)概率最大的z,就是搜索到的答案;
  3. prompt设计
    prompt设计是指:创建提示函数prompt_f(x)的过程,该函数在下游任务上会产生最有效的性能。
    1. prompt shape
      主要分为两类(1)prefix prompt(2)cloze prompt;选择哪一个将取决于任务和用于求解任务的模型。通常,对于有关生成的任务,prefix prompt往往更有利,因为它们与模型的从左到右的性质非常吻合。对于使用mlm的任务,cloze prompt非常适合。
    2. 自动prompt学习
      人工设计prompt是不容易的,这需要经验,是一门艺术。自动prompt可以分为两类,分别是离散prompt和连续prompt;其中离散是指prompt由一系列token组成,连续prompt是指prompt由一系列特征空间中的embddding组成;
      • 自动生成离散Prompts指的是自动生成由自然语言的词组成的Prompt,目前大致可以分成下面几个方法:
        • Prompt Mining:该方法需要一个大的文本库支持,例如Wikipedia。给定输入和输出,寻找中间词,然后选取出现频繁的中间词作为模板,即“[X] middle words [Z]”。
        • Prompt Paraphrasing:该方法是基于释义的,主要采用现有的种子prompts(例如手动构造),将其转述成一组候选prompts,最后在其中选择一个在目标任务上效果最好的。一般的做法有:将提示符翻译成另一种语言,然后再翻译回来;使用同义或近义短语来替换等。
        • Gradient-based Search
        • Prompt Generation:该方法采用自然语言生成模型来生成prompts,例如,通过T5生成模板词。
        • Prompt Scoring. Davison等人在研究知识图谱补全任务的时候为三元组输入(头实体,关系,尾实体)设计了一种模板。首先人工制造一组模板候选,然后把相应的[X]和[Z]都填上成为prompts,并使用一个双向LM给这些prompts打分,最后选取其中的高分prompt。
      • 目前的连续prompts方法大致可以分为下面几种:
        • Prefix Tuning:Prefix Tuning将连续的prompt作为lm的前缀输入,冻结lm的参数,仅训练合适的前缀(prefix)。
        • Tuing Initialized with Discrete Prompts:这类方法中连续prompts是用已有的prompts初始化的,已有的prompts可以是手工设计的,也可以是搜索发现的离散prompts。基于该模板初始化虚拟的token,最后微调这些token的embedding以提高模型效果。例如论文Prefix-Tuning: Optimizing Continuous Prompts for Generation;
        • Hard-Soft Prompt Hybrid Tuning:这类方法可以说是手工设计和自动学习的结合,它通常不单纯使用可学习的prompt模板,而是在手工设计的模板中插入一些可学习的embedding。论文GPT Understands, Too提出了“P-Tuning”方法,通过在input embedding中插入可训练的变量来学习连续的prompts,为了让prompt内部有一定的交互,该方法使用BiLSTM的输出来表示prompt embeddings。
  4. answer设计
    answer设计就是将prompt中[mask]处预测的输出映射到指定的label空间内。关于answer设计相关的研究相对不热门。

综述中提到的一些论文:

  1. Exploiting cloze questions for few shot text classification and
    natural language inference. github

    该论文提出了PET的概念,提供了一种半监督学习方式,在低资源场景下成功超过了监督学习模型的结果;该论文的主要贡献是:基于手动设计的离散的prompt,针对半监督任务,提出了一种交替训练+蒸馏学习的方法;

  2. Multimodal Few-Shot Learning with Frozen Language Models
    该论文对多模态prompt模型进行了研究。该论文采用连续prompt的思路,通过一个图像编码器将图像转换为连续的嵌入序列,作为一种prompt,与文本信息一起送入语言模型中,训练图像文本生成任务。为了将LM中的知识迁移到多模态领域,在训练时选择冻结LM的参数,仅优化图像编码器有关参数。视觉前缀的构造方式:将视觉编码器的输出映射为D*n的矩阵,D为嵌入维度,n可以看作token的个数。训练时的输入是形如(image, text)的一堆pair,训练时统一使用Conceptual Captions作为训练集。

  3. Making Pre-trained Language Models Better Few-shot Learners
    一种基于语言模型的小样本微调方法(LM-BFF);主要分为两个部分(1)自动化生成prompt和answer(2)将样本示例以上下文的形式添加到每个输入中;
    1、自动化选择answer
    自动化构建answer,即固定模板、选择最佳的answer映射关系M,使得在验证集的分类准确率最高。
    2、自动化选择prompt
    自动化构建prompt,即固定answer构建prompt。LM-BFF使用T5模型生成prompt

  4. Prefix-Tuning: Optimizing Continuous Prompts for Generation
    该论文针对生成任务,设计了连续的prompt方案。模型将连续的prompt作为lm的前缀输入,冻结lm的参数,对prompt进行参数回传的调优。

  5. GPT Understands, Too
    该论文采用连续prompt的思路,通过lstm生成prompt embedding,作为LM的prompt输入。在训练时,固定整个模型的权重,只优化prompt token 的 Embedding;其中prompt token的数目是可调整的超参数,token的位置也是可调整的。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值