Prompt Engineering

一、LAMA[2019]

论文:《Language Models as Knowledge Bases?》

  1. 最近,pretrained 的大型语言模型,如 ELMoBERTNLP 中变得越来越重要。这些模型的参数似乎储存了大量的、对下游任务有用的语言知识。这种知识通常可以通过两种方式来访问:在 latent context representations 上进行 conditioning ;通过使用原始模型的权重来初始化 task-specific model 然后再进一步微调。这种类型的知识迁移对于目前在广泛的任务上取得 SOTA 结果至关重要。

    相比之下,知识库(knowledge bases )是通过实现诸如(Dante, born-in, X) 这样的 query 来访问 annotated gold-standard relational data 的有效解决方案。然而,在实践中,我们经常需要从文本或其他模式中抽取关系数据(relational knowledge )来填充这些知识库。 这需要复杂的 NLP pipeline,涉及实体抽取、共指消解、实体链接、关系提取。这些组件通常需要监督数据和固定的 schemas 。此外,错误很容易在整个 pipeline 中传播和积累。

    相反,我们可以尝试 query 神经语言模型从而用于关系数据,要求它们在"Dante was born in [Mask]"这样的文本序列中填充 masked tokens ,如 Figure 1 所示。在这种情况下,语言模型具有各种有吸引力的特性:它们不需要 schema engineering 、不需要人类标注、而且它们支持一组开放的 query

    鉴于语言模型作为关系知识(relational knowledge )的潜在 representations 的上述特性,我们对 ELMoBERT 等现有的 pretrained 语言模型中已经存在的关系知识感兴趣。它们储存了多少关系知识?对于不同类型的知识(如关于实体的事实、常识、通用问答),这些知识有什么差异?它们在没有微调的情况下的表现与从文本中自动提取的 symbolic knowledge base 相比如何?除了收集对这些模型更好的一般理解外,我们认为这些问题的答案可以帮助我们设计更好的无监督 knowledge representation ,可以将事实性知识和常识性知识可靠地迁移到下游任务。

    为了回答上述问题,我们引入了 LAnguage Model Analysis: LAMA 探针(probe ),由一组知识源(knowledge sources )组成,每个知识源由一组事实(facts )组成。我们定义,如果一个 pretrained 语言模型能够成功预测诸如 "Dante was born in ___" 这样的表达事实的完形填空句子中的 masked objects ,那么它就知道一个事实 (subject, relation, object),如 (Dante, born-in, Florence)。我们对各种类型的知识进行测试:存储在 Wikidata 中的实体之间的关系、来自 ConceptNet 的概念之间的常识性关系、以及回答 SQuAD 中自然语言问题所需的知识。在后一种情况下,我们手动将 SQuAD 问题的一个子集映射到完形填空句子上。

    我们的调查显示:

    • 最大的 BERT 模型(BERT-large )捕获的(准确的)关系知识,与以下二者相当:现成的关系提取器、来自语料库(该语料库是表达相关的知识)的 oracle-based entity linker

    • 事实性知识可以从 pretrained 语言模型中恢复得很好,然而,对于某些关系(特别是 N-to-M 关系)来说性能非常差。

    • BERT-large 在恢复事实性知识和常识性知识方面一直优于其他语言模型,同时对 query 的措辞更加鲁棒。

    • BERT-largeopen-domain QA 方面取得了显著的成果,达到 57.1%precision@10 ,而使用 task-specific supervised relation extraction system 构建的知识库则为 63.5%

  2. 相关工作:许多研究已经调查了 pretrainedword representationssentence representations 、 以及 language models 。现有的工作集中在了解 word representations 的语言属性和语义属性,或者 pretrainedsentence representations 和语言模型如何将语言知识迁移到下游任务中。相比之下,我们的调查试图回答 pretrained 的语言模型在多大程度上储存了事实性知识和常识性知识,并将它们与传统 relation extraction 方法所填充的 symbolic knowledge base 进行比较。

    • 《Don’t count, predict! Asystematic comparison of context-counting vs. context-predicting semantic vectors》neural word representation 方法和更传统的 count-based distributional semantic 方法在词汇语义任务(如语义相关性和概念分类)上进行了系统的比较分析。他们发现,在大多数所考虑到的任务中,neural word representations 的表现优于 count-based distributional 方法。

      《Simlex-999: Evaluating semantic models with (genuine) similarity estimation》 研究了 word representations 在多大程度上捕捉了由 word pairs 之间的相似性所衡量的语义。

    • 《Targeted syntactic evaluation of language models》 评估了 pretrained 语言模型的语法性。他们的数据集由一个有语法的句子和一个无语法的句子组成。虽然一个好的语言模型应该给符合语法的句子分配更高的概率,但他们发现 LSTM 并不能很好地学习语法。

    • 另一项工作是研究 pretrainedsentence representations 和语言模型将知识迁移到下游自然语言理解任务的能力(《GLUE: A multi-task benchmark and analysis platform for natural language understanding》)。虽然这样的分析揭示了 pretrained 模型在理解短文方面的迁移学习能力,但它对这些模型是否能与 symbolic knowledge base 等代表知识的传统方法竞争提供了很少的洞察。

    • 最近,《Right for the wrong reasons: Diagnosing syntactic heuristics in natural language inference》 发现:对于自然语言推理,基于 BERT 的模型学会了严重依赖易犯错的 syntactic heuristics ,而不是对自然语言输入的更深入理解。

      《Dissecting contextual word embeddings: Architecture and representation》 发现,ELMo 中的低层擅长局部的句法关系,而高层可以学习对长距离关系进行建模。

      同样, 《Assessing bert’s syntactic abilities》 发现,BERT 对英语句法现象的捕捉非常好。

      《What do you learn fromcontext? probing for sentence structure in contextualized word representations》调查了语言模型在多大程度上为不同的句法和语义现象编码了句子结构,并发现他们在前者方面表现出色,但对属于后者的任务只提供小的改进。虽然这提供了对语言模型的语言知识的见解,但它并没有提供对其事实知识和常识知识的见解。

    • 《Improving language understanding by generative pre-training》 介绍了一种基于 Transformerpretrained 语言模型,他们称之为生成式预训练( GPT-1 )。 《Language models are unsupervised multitask learners》GPT-2) 已经在包含 7000 本书的图书语料库上进行了训练。与我们的调查最接近的是 GPT-2 的工作,他们调查了他们的语言模型在一系列下游任务中的 zero-shot 迁移情况。他们发现,GPT-2 在回答 CoQA 中的问题时达到了 55F1 得分,在 Natural Questions 数据集上达到了 4.1% 的准确率,在这两种情况下都没有使用标记的 question-answer pairs 或信息检索步骤。

      虽然这些结果令人鼓舞,并暗示了非常大的 pretrained 语言模型记忆事实知识的能力,但大型 GPT-2 模型尚未公开,而公开的小版本在 Natural Questions 上取得的成绩不到 1% (比大型模型差 5.3 倍)。因此,我们决定不将GPT-2 纳入我们的研究中。同样,我们也没有将 GPT-1 纳入本研究,因为它使用了有限的小写字母的词表,使得它与我们评估其他语言模型的方式不兼容。

1.1 方法

1.1.1 背景知识

  1. 略。详情参考原始论文。

    因为这里都是简单的关于语言模型、BERT 的知识。

1.1.2 The LAMA Probe

  1. 我们引入了 LAnguage Model Analysis: LAMA 探针来测试语言模型中的事实性知识和常识性知识。它提供了一组由 facts 的语料库组成的知识源。facts 要么是 subject-relation-object 三元组,要么是 question-answer pairs 。每个 fact 都被转换为一个完形填空语句,用于 query 语言模型的 missing token 。我们根据每个模型对 ground truth token 在固定词表中的排名高低来评估该模型。这类似于 knowledge base completion 文献中的 ranking-based 指标。我们的假设是,在这些完形填空语句中, ground truth tokens 排名高的模型有更多的事实性知识。接下来我们详细讨论每个步骤,并在下面提供关于探针(probe )的考虑。

  2. 知识源 (Knowledge Sources ):我们涵盖了各种事实性和常识性知识的源。对于每个源,我们描述了事实三元组(或 question-answer pairs )的来源,我们如何将它们转化为完形填空模板,以及维基百科中存在多少已知表达特定 factaligned text 。我们在 supervised baseline 中使用后者的信息,直接从对齐的文本中提取 knowledge representations

    这些知识源包括:Google-RE, T-REx, ConceptNet, SQuAD 。详细内容参考原始论文。

  3. 模型:如下 pretrained 的、大小写敏感的语言模型(见Table 1 ):fairseq-fconv (Fs), Transformer-XL large (Txl), ELMo original (Eb), ELMo 5.5B (E5B), BERT-base (Bb), BERT-large (Bl)

    为了进行公平的比较,我们让模型在一个统一的词表上生成,这个词表是所有模型的词表的交集(大约 21K 个大小写敏感的 tokens )。

  4. baseline

    • Freq:对于一个 (subject, relation) pair ,这个基线根据每个单词在测试数据中作为给定 relationobject 出现的频率来排序。

      已知三元组的 (subject, relation) ,需要补全 object

    • RE:对于 relation-based 知识源,我们考虑 《Context-aware representations for knowledge base relation extraction》pretrainedRelation Extraction: RE 模型。这个模型是在维基百科的一个子语料库上训练的,该子语料库上有 Wikidata 的关系标注。它使用基于 LSTM 的编码器和注意力机制从一个给定的句子中提取 relation 三元组。

      我们考虑了这个程序的两个版本,它们在实现 entity linking 的方式上有所不同:

      • RE_n 使用了基于精确字符串匹配的朴素的 entity linking 解决方案。

      • RE_o 除了字符串匹配之外,还使用了 entity linking 的一个 oracle

      换句话说,假设我们查询一个句子 x 中所表达的 test subject-relation fact (s,r,o) 的对象 o 。如果 RE 从该句子 x 中提取了任何三元组 (s,r,o)s 将被链接到 so 被链接到 o 。在实践中,这意味着如果从 x 中提取了任何正确类型的 relation 实例,不管它的 subjectobject 是否错误,RE 都可以返回正确的解 o

    • DrQA《Reading wikipedia to answer open-domain questions》 介绍了 DrQA ,一个用于开放领域问答的流行系统。DrQA 使用一个两步的 pipeline 来预测自然语言问题的答案。

      • 首先,使用 TF/IDF 信息检索步骤,从大量的文档存储(如维基百科)中找到相关文章。

      • 然后,在检索到的 top-k 篇文章中,一个神经阅读理解模型随后提取答案。

      为了避免给语言模型带来竞争优势,我们将 DrQA 的预测限制在 single-token 答案上。

  5. 指标:precision at k (P@k) 指标。

    为了考虑到 subject-relation pair 的多个有效对象(即 N-M 关系),我们遵循 《Translating embeddings for modeling multi-relational data》的做法,在测试时将训练数据中除我们测试的 object 之外的所有其他有效 objects 从候选中删除。

  6. 考虑因素:在创建 LAMA 探针时,我们做了几个重要的设计决定。下面我们将为这些决定提供更详细的理由。

    • 手动定义的模板:对于每种关系,我们手动定义一个模板,用于查询该关系中的 object slot 。我们可以预期,模板的选择会对结果产生影响,情况确实如此:对于某些关系,我们发现使用另一个模板查询相同的信息(就一个给定的模型而言),情况有好有坏。我们认为,这意味着我们正在度量语言模型所知道的下限。

    • Single Token:我们只考虑单个 tokenobject 作为我们的预测目标。我们包括这一限制的原因是,multi-token decoding 增加了许多额外的可调优参数(beam size 、候选评分权重、长度归一化、n-gram 重复惩罚等),这些超参数掩盖了我们试图测量的知识。此外,well-calibratedmulti-token generation 仍然是一个活跃的研究领域,特别是对于双向模型。

    • Object Slots:我们选择只查询三元组中的 object slot ,而不是 subject slotrelation slot 。通过包括反向关系(如 containscontained-by ),我们也可以查询 subject slot

      我们不查询 relation slot 有两个原因。

      • 首先,relations 的表面形式的实现会跨越几个 tokens ,正如我们上面所讨论的,这构成了一个技术挑战,不在本工作的范围之内。

      • 第二,即使我们可以很容易地预测 multi-token 短语,关系通常可以用许多不同的措辞来表达,这使得我们不清楚关系的 gold standard pattern 应该是什么,以及如何在这种情况下衡量准确率。

    • 词表的交集:我们考虑的这些模型是用不同的词表训练的。例如,ELMo 使用一个 800K tokens 的列表,而 BERT 只考虑 30K tokens 。词表的大小可以影响 LAMA prob 模型的性能。具体来说,词表越大,就越难将 gold token 排在最前面。出于这个原因,我们考虑了一个由 21K 个大小写敏感的 tokens 组成的公共词表,这些 tokens 是由所有考虑的模型的词表的交集得到的。为了进行公平的比较,我们让每个模型只对这个公共词表中的 tokens 进行排名。

    由于设计上的约束,因此本文的结论是有局限性的:仅限于采用自定义模板的场景、仅限于 single tokenobject、仅限于 object 预测、仅限于一个较小词表中的 tokens

1.2 实验结果

  1. 我们在 Table 2 中总结了主要的结果,它显示了不同模型在所考虑的语料库中的平均精度(P@1 )。在本节的其余部分,我们将详细讨论每个语料库的结果。

  2. Google-RE:我们使用每种关系的标准完形填空模板来查询语言模型。

    • BERT_baseBERT_large 都以很大的幅度超过了所有其他模型。

    • 此外,与 oracle-based RE baseline 相比,BERT_baseBERT_large 分别获得了2.22.9 的平均准确率改进。

    • 此外,RE 基线通过 entity linking oracle 得到了大量帮助。

    值得指出的是,虽然 BERT-large 做得更好,但这并不意味着它是出于正确的原因来达到的。模型可能已经从 co-occurrence 模式中学习了 objectsubject 的关联。

  3. T-REx:结果与 Google-RE 基本一致。按关系类型划分,BERT 的性能对于 1-to-1 relations (例如,capital of )非常高,对于 N-to-M relations 则很低。

    Figure 2 显示了所考虑的模型的平均 P@k 曲线。对于 BERT ,正确的 object 在大约 60% 的情况下被排在 top-10 、在 80% 的情况下被排在 top-100

    为了进一步研究为什么 BERT 取得了如此强大的结果,我们计算了 P@1 和一组指标之间的皮尔逊相关系数,如 Figure 3 所示。

    • 我们注意到,训练数据中提到一个 object 的次数与模型性能呈正相关,而关系的 subject 次数则不是这样的。

    • 此外,预测的对数概率与 P@1 强烈正相关。 因此,当 BERT 对其预测有很高的信心时,它往往是正确的。

    • 性能也与 subject 向量和 object 向量之间的余弦相似度呈正相关,并与 subject 中的 tokens 数量略有关联。

      最底部一行给出了 P@1 和其它指标之间的相关系数;其它行给出了不同指标之间的相关系数。

    Table 3 显示了随机挑选的、 BERT-large 的完形填空模板 query 所生成的样本。我们发现,BERT-large 通常预测出正确类型的 object ,即使预测的 object 本身并不正确。

    为了了解 pretrained 语言模型的性能如何随 query 特定事实的不同方式而变化,我们分析了每种关系中最多 100 个随机事实,我们从 T-REx 中随机选择了维基百科中 10 个对齐的句子。在每个句子中,我们掩盖 factobject ,并要求模型预测它。对于我们的几个语言模型来说,这也测试了它们从训练数据中记忆和回忆句子的能力,因为这些模型已经在维基百科上进行了训练(见 Table 1 )。

    Figure 4 显示了每个事实的十个 query 的平均排名的分布。

    • 两个 BERT 模型和 ELMo 5.5B 表现出最低的方差,同时将正确的 object 平均排在靠近顶部的位置。

    • 令人惊讶的是,ELMo original (即,Eb)的性能与 BERT 相差无几,尽管这个模型在训练期间没有看到维基百科。

      Eb 的性能和 BERT 还是差距挺大的,作者表述有误?

    • Fairseq-fconvTransformer-XL 在其预测中经历了更高的方差。请注意,BERTELMo 5.5Bfairseq-convTransformer-XL 在维基百科上训练了更多的内容,在训练期间可能看到了更多包含 test query 的句子。

  4. ConceptNet:结果与 Google-RET-REx 一致。BERT-large 模型一直取得了最好的性能。

  5. SQuADTable 2 显示了 BERT-largeDrQA 在我们的SQuAD 任务上的性能差距,其中 DrQA 的效果要好得多。请再次注意,pretrained 语言模型是完全无监督的,它没有经过微调,而且它无法访问专门的信息检索系统。此外,在比较 DrQABERT-largeP@10 时,我们发现差距非常小(BERT-large57.1DrQA63.5 )。

二、LPAQA [2019]

论文:《How Can We Know What Language Models Know?》

  1. 近年来,语言模型的主要作用从生成自然文本、或评估自然文本的流畅性,过渡到成为文本理解的有力工具。这种理解主要是通过将语言建模作为用于 feature extractors 的预训练任务来实现的,其中,语言建模目标学到的隐向量随后被用于下游语言理解系统。

    有趣的是,语言模型本身也可以作为文本理解的工具,通过用自然语言制定化 query ,直接生成文本答案,或者评估多个选项并挑选最可能的一个。例如,语言模型被用来回答事实性问题、回答常识性查询、或提取关于实体之间关系的事实性知识。无论最终任务是什么,语言模型中包含的知识都是通过提供 prompt ,让语言模型要么生成 prefix 的延续(例如,"Barack Obama was born in __" ),或者预测完形填空风格的模板中的缺失单词(例如,"Barack Obama is a __ by profession" )。

    然而,虽然这种范式已经被用来实现一些耐人寻味的结果(这些结果关于语言模型所表达的知识),但它们通常依赖于基于实验者的直觉而手工创建的 prompts 。这些手动创建的 prompts (例如,"Barack Obama was born in " )可能是次优的,因为在训练过程中,语言模型可能已经从完全不同的上下文中学习了目标知识(例如,"The birth place of Barack Obama is Honolulu, Hawaii.")。因此,很有可能由于 prompts 不是对 fact 的有效查询,导致语言模型无法检索那些实际上已经知道的事实。因此,现有的结果只是对语言模型所包含的知识程度的一个下限,事实上,语言模型的知识可能比这些初步结果所显示的还要丰富。在本文中,我们提出了一个问题:我们如何才能收紧这个下限,并对 SOTA 的语言模型所包含的知识有一个更准确的估计?这在科学上和工程上都很有意思,前者是对语言模型所包含的知识的探测(probe),后者则是在使用语言模型作为知识提取系统的一部分时会带来更高的召回率。

    具体而言,我们专注于 LAMA 的设定,他们研究了关于实体之间关系的知识提取。我们提出了两种自动方法来系统地提高 prompts 的广度和质量,其中这些 prompts 用于查询 relation 存在与否。具体来说,如 Figure 1 所示,这些方法是基于挖掘(mining-based )的方法,其灵感来自于以前的关系提取(relation extraction )方法(《Learning surface text patterns for a question answering system》),以及基于转述(paraphrasing-based )的方法(该方法采用一个 seed prompt ,无论是手动创建的还是自动挖掘的,并将其转述为其他几个语义相似的表述)。此外,由于不同的 prompts 在查询不同的 (subject, object) pair时可能效果更好,我们还研究了轻量级的 ensemble 方法,将不同 prompts 的答案组合在一起。

    我们在 LAMA 基准上进行了实验,这是一个英语基准,旨在测试语言模型检索实体间关系的能力。我们首先证明,改进后的 prompts 明显提高了这项任务的准确率,通过我们的方法提取的最佳 promptBERT-base 的准确率从 31.1% 提高到 34.1%BERT-large 也获得了类似的收益。我们进一步证明,通过 ensembling 使用多样化的 prompts ,进一步提高了准确率,达到 39.6% 。我们进行了广泛的分析和消融实验,既收集了关于如何最好地查询知识(那些存储在语言模型中的知识)的见解,也收集了关于将知识纳入语言模型本身的潜在方向的见解。最后,我们发布了由此产生的 LMPrompt And Query Archive: LPAQA ,以促进未来对语言模型中包含的知识进行探测的实验。

  2. 相关工作:许多工作都集中在了解 neural NLP models 中的内部表征(《Analysis methods in neural language processing: A survey》),或者通过使用外在的 probing tasks 来研究是否可以从这些 representations 中预测某些语言属性、或者通过对模型的消融来研究行为如何变化。特别是对于 contextualized representations ,一套广泛的 NLP 任务被用来分析句法属性和语义属性,提供证据表明 contextualized representations 在不同 layers 上编码语言知识。

    probing the representations 本身的分析不同,我们的工作遵循 《Language models as knowledge bases?》《BERT is not a knowledge base (yet): Factual knowledge vs. Name based reasoning in unsupervised QA》 对事实性知识的探测。他们使用手动定义的 prompts ,这可能低估了语言模型的真实性能。在这项工作的同时,《Inducing relational knowledge from BERT》 也提出了类似的观点,即使用不同的 prompts 可以帮助更好地从语言模型中提取 relational knowledge ,但他们使用的是显式训练的模型从而用于提取关系,而我们的方法是在没有任何额外训练的情况下检查语言模型中包含的知识。

    此外,以前的一些工作整合了外部知识库,使语言生成过程明确地以符号知识为条件。类似的扩展已经应用于像 BERT 这样的 pre-trained LM ,其中 contextualized representationsentity embeddings 来增强。相比之下,我们关注的是通过对语言模型的prompts 来实现更好的知识检索,而不是修改语言模型。

2.1 从语言模型中检索知识

  1. 从语言模型中检索事实性知识,与查询标准的陈述性的知识库(knowledge base: KB )有很大不同。在标准的知识库中,用户将其信息需求表述为由 KB schemaquery language 所定义的结构化查询。例如, SELECT ?y WHERE {wd:Q76 wdt:P19 ?y} 是一个SPARQL query ,用于搜索 Barack_Obama 的出生地。相比之下,语言模型通过自然语言 prompts 进行查询,例如 "BarackObama was born in__" ,在空白处分配的概率最高的单词将被返回作为答案。与对知识库的确定性查询不同,语言模型不提供正确性或成功的保证。

    虽然 prompts 的想法在从语言模型中提取各种各样知识的方法中很常见,但在本文中,我们特别遵循 LAMA 的表述,其中事实性知识是三元组 <x,r,y> 的形式。这里 s 表示主体(subject ),y 表示客体(object),而 r 是它们的对应关系。为了查询语言模型 ,r 与完形填空风格的 prompt tr 相关联,其中 trtokens 的一个序列组成,序列中的两个 tokensubjectobject 的占位符(例如,"x plays at y position")。通过用 subject 来替换 x ,并让模型预测 missing object y ,从而来评估语言模型中事实的存在(例如,"LeBron James plays at __ position" ):

    (1)y^=argmaxyVPLM(yx,tr)

    其中:V 为词表;PLM(yx,tr) 为语言模型,用于在其它 tokens (如,subjectprompt )给定的条件下来预测空格处的 y 。如果 y^groundtruth y 相同,我们就说语言模型对某一事实有了解。

    因为我们希望我们的 prompts 能够最有效地引导语言模型本身所包含的任何知识,所以一个 ”好“ 的 prompt 应该尽可能多地引导语言模型去预测 ground-truth objects

  2. 在以前的工作中(《The natural language decathlon: Multitask learning as question answering》《Language models are unsupervised multitask learners》《Language models as knowledge bases?》),tr 一直是一个基于实验者直觉的人工定义的 prompt 。正如导言中所指出的,这种方法不能保证是最优的,因此我们提出了从一小部分训练数据中学习 effective prompts 的方法,这些数据由每种关系的 gold subject-object pairs 组成。

2.2 Prompt Generation

  1. 首先,我们处理 prompt generation :该任务为每种关系 r 生成一组 prompts {tr,i}i=1T,其中至少有一些 prompts 能有效地引导语言模型来预测 ground-truth objects 。我们采用两种实用的方法:要么从大型语料库中挖掘 prompt candidates 、要么通过转述来使 seed prompt 多样化。

    Prompt Generation 的核心是:如何使得 prompts 多样化、以及如何使用多样化的 prompts

    这篇论文的 prompts 本质上是 zero-shot 的,那么 few-shot 是不是会更好?

2.2.1 基于挖掘的 generation

  1. 我们的第一个方法受到 template-based relation extraction 方法的启发,这些方法是基于这样的观察:在大型语料库中,subject xobject y 附近的单词经常描述关系 r 。基于这种直觉,我们首先利用 distant supervision 假设,确定所有的这类 WikiPedia 句子:该句子同时包含特定关系 rsubjectobject ;然后提出两种提取 prompts 的方法:

    • Middle-word Prompts:根据观察,subjectobject 中间的单词往往是 relation 的指示,我们直接使用这些单词作为 prompts 。例如,"Barack Obama was born in Hawaii" 通过用占位符替换 subjectobject 被转换成 "x was born in y"prompt

    • Dependency-based Prompts《Representing text for joint embedding of text and knowledge bases》 指出,在中间不出现单词的模板情况下(例如,"The capital of France is Paris" ),基于句法分析的模板可以更有效地进行关系提取。

      我们遵循这一见解,即用 dependency parser 来解析句子,以确定 subjectobject 之间最短的 dependency path ,然后使用 dependency path 中从最左边的单词到最右边的单词的 phrase spanning 作为 prompt 。例如,上述例子中的 dependency path 是:

      (2)FrancepobjofprepcapitalnsubjisattrParis

      其中最左边的单词和最右边的词分别 "capital""Paris" ,给出的 prompt"capital of x is y"

      这种方法依赖于外部的 dependency parser,因此不是端到端的方案。

  2. 值得注意的是,这些基于挖掘的方法不依赖于任何手动创建的 prompts ,因此可以灵活地应用于我们可以获得一组 subject-object pairs 的任何关系。这将导致多样化的 prompts ,覆盖了 relation 在文本中可能表达的各种方式。然而,这也容易产生噪音,因为以这种方式获得的许多 prompts 可能对该 relation 的指示性不强(例如,"x, y" ),即使它们很频繁出现。

    基于挖掘的方法依赖于第三方数据源,即维基百科。这在实验部分提到了这一点。因此,如果任务包含的关系不在维基百科中,那么基于挖掘的方法不可用。

2.2.2 基于转述的 generation

  1. 我们的第二种生成 prompts 的方法更有针对性,它的目的是在相对忠实于原始 prompts 的情况下提高词汇的多样性。具体而言,我们通过对原始 prompts 进行转述(paraphrasing),使之成为其他语义相似或相同的表达。例如,如果我们的原始 prompts"x shares a border with y" ,它可以被转述为 "x has a common border with y" 、以及 "x adjoins y" 。这在概念上类似于信息检索中使用的 query expansion 技术,即重新表述一个给定的 query 以提高检索性能(《A survey of automatic query expansion in information retrieval》)。

  2. 虽然许多方法可以用于转述,但我们遵循使用 back-translation 的简单方法(《Improving neural machine translation models with monolingual data》《Paraphrasing revisited with neural machine translation》):

    这种方法依赖于外部的翻译模型,因此也不是端到端的。

    • 首先将初始 prompt 翻译成另一种语言的 B 个候选。

    • 然后将每个候选翻译成原始语言的 B 个候选。此时我们一共有 B×B=B2 个候选。

    • 最后,我们根据 B2 个候选的 round-trip 概率进行排名,并保留 top Tprompts 。其中 round-trip 概为:

      (3)Pforward(t¯t^)×Pbackward(tt¯)

      其中:t^ 为初始的 promptt¯ 为另一种语言中的翻译后的 prompttfinal prompt

      round-trip 概率的物理含义为:给定原始语言输入 t^ 的条件下,得到原始语言输出 t 的概率。

2.3 Prompt Selection and Ensembling

  1. 这里我们介绍如何使用所生成的 prompts

    下面的所有方法都需要一个验证集来筛选以及 ensemble 候选的 prompts

2.3.1 Top-1 Prompt Selection

  1. 对于每个 prompt ,我们可以用以下公式来衡量其预测 ground-truth objects 的准确率(在训练数据集上):

    (4)A(tr,i)=(x,y)Rδ(y=argmaxyPLM(yx,tr,i))|R|

    其中:

    • R 为关系 r 的所有 subject-object pairs 的集合。

    • tr,i 为关系 r 的第 iprompt

    • δ()Kronecker’s delta function ,当内部条件为 true 时返回 1,否则返回 0

    在用于查询语言模型的最简单的方法中,我们选择准确率最高的 prompt ,并只使用这个 prompt 进行查询。

2.3.2 Rank-based Ensemble

  1. 接下来,我们研究了不仅使用 top-1 prompt ,而且将多个 prompts 组合在一起的方法。这样做的好处是,在训练数据中,语言模型可能在不同的上下文中观察到不同的 entity pairs ,而拥有各种各样的 prompts 可能会允许引导那些出现在这些不同上下文中的知识。

  2. 我们的第一种 ensembling 方法是一种无参数的方法,对 top-ranked prompts 的预测进行平均。我们根据训练集上预测 objects 的准确率对所有的 prompts 进行排名,并使用 top-K prompts 的平均对数概率来计算 object 的概率:

    (5)s(yx,r)=i=1K1KlogPLM(yx,tr,i)P(yx,r)=softmax(s(x,r))y

    其中:

    • tr,i 为准确率排名为第 iprompt

    • K 为超参数:较小的 K 使得结果集中在少数最准确的 prompts 上,较大的 K 增加 prompts 的多样性。

2.3.3 Optimized Ensemble

  1. 上述方法对 top K prompts 一视同仁,这是次优的,因为到一些 prompts 比其他 prompts 更可靠。因此,我们还提出了一种直接优化 prompt weights 的方法。形式上,我们将 s(yx,r) 中的分数重新定义为:

    (6)s(yx,r)=i=1TPθr(tr,ir)logPLM(yx,tr,i)

    其中:Pθr(tr,ir)=softmax(θr) 为在 prompts 上的一个分布并且被 θr 所参数化,它是一个尺寸为 T 的向量。

    对于每一个 relation ,我们要学习对一组不同的 Tcandidate prompts 进行评分,所以参数的总数是关系数量的 T 倍。我们通过在训练数据上最大化 gold-standard objects 的概率 P(yx,r) 来优化参数 θr

    这可以通过固定语言模型,并且学习 Pθr 网络参数来实现。

2.4 实验

  1. 数据集:LAMA benchmarkT-REx 子集。它有一个更广泛的 41 种关系的集合(相比之下,Google-RE 子集只包括 3 种关系)。每种 relation 关联来自维基数据的最多 1000subject-object pairs ,同时也关联一个手动设计的 prompt

    为了学习挖掘 prompts 、对 prompts 进行排序、或学习 ensemble 权重,我们为每个关系创建了一个单独的 subject-object pairs 训练集,该训练集也来自维基数据,与 T-REx 数据集没有重叠。我们把这个训练集称为 T-REx-train 。为了与 LAMA 中的 T-REx 数据集保持一致,T-REx-train 也被选择为只包含单个 tokenobjects

    为了研究我们方法的通用性,我们还报告了我们的方法在 Google-RE 子集上的表现,该子集的形式与 T-REx 类似,但相对较小,只包括三种关系。

    《BERT is not a knowledge base (yet): Factual knowledge vs. Name based reasoning in unsupervised QA》 指出,LAMA中的一些事实可以只根据 entities 的表面形式来猜测,而不需要记忆事实。他们过滤掉了那些容易猜测的事实,创造了一个更难的基准,表示为 LAMA-UHN 。我们还对 LAMA-UHNT-REx 子集(即 T-REx-UHN )进行了实验,以研究我们的方法是否还能在这个更难的基准上获得改进。

    数据集的统计数据总结在下表中。

  2. 模型:BERT-base, BERT-large

    此外,我们实验了一些通过外部 entity representation 来增强的 pretrained model ,如 ERNIE《ERNIE: Enhanced language representation with informative entities》)、KnowBert (《Knowledge enhanced contextual word representations》)。

  3. 评估指标:

    • micro-averaged accuracy :首先计算每种关系 r 上的准确率,然后在所有关系上取平均。

      然而,我们发现一些 relationobjects 分布是极其倾斜的(例如 native language 这个关系,所对应的 objects 有一半是 French),这可能会导致欺骗性的高分。

    • macro-averaged accuracy:首先独立地计算每个 unique object 的准确率,然后在所有 object 上取平均。

  4. 方法:我们尝试了不同的 prompt generationselection/ensembling 方法,并将其与 LAMA 中使用的人工设计的 prompt 进行比较。

    • Majority:为每种 relation 预测占比多数的 object

    • ManLAMA 中使用的人工设计的 prompt

    • Mine:使用通过中间单词和 dependency path 从维基百科挖掘的 prompt

      • Mine+Man:将 Mine 和人工 prompt 相结合。

      • Mine+Para :为每个 relation 将排名最高的被挖掘的 prompt 进行转述。

    • Man+Para:将人工 prompt 进行转述。

    这些得到的 prompts 可以通过 TopKOpti. 等方法结合起来。Oracle 代表 generated prompts 的性能上限:如果任何一个 prompt 使得语言模型成功地预测该 object ,则该事实被判定为正确。

  5. 实现细节:

    • 超参数: T=40B=7

    • 我们删除了如下类型的 prompts 从而减少噪音:仅仅包含 stopwords 或标点符号、长度超过 10 个单词。

    • 我们使用在 WMT'19 上预训练的 round-trip English-German neural machine translation model 进行回译,因为 English-German 是资源最丰富的 language pair 之一。

    • 当优化 ensemble parameter 时,我们使用默认参数的 Adambatch size = 32

2.4.1 评估结果

  1. 不同方法的实验结果如Table 2, Table3 所示,分别给出了micro-averaged accuracymacro-averaged accuracy

  2. Single Prompt (对应于Table 2, Table3Top1 这一列):所提出的最好的 prompt generation 方法在 BERT-base 上将 micro-averaged accuracy31.1% 提高到 34.1% ,而在 BERT-large 上将 micro-averaged accuracy32.3% 提高到 39.4% 。这表明手动创建的 prompt 是一个有点弱的下限。

    Table 4 显示了一些 mined prompts ,与人工 promtps 相比,这些 promtps带来了很大的性能提升。可以看出,使用 mined prompts 的最大收益似乎发生在人工定义的 prompt 在语法上更复杂的情况下(例如前面的几个),或者使用比 mined prompts 更不常见的措辞时(例如后面的几个)。

  3. Prompt Ensembling

    • Table 2, Table3Top3, Top5, Opti. 这三列给出了 ensembling 的结果。

      • ensembling 多个 prompts 几乎总是能带来更好的性能。

      • optimized ensembleBERT-baseBERT-large 上进一步将micro-averaged accuracy 分别提高到 39.6%43.9% ,比 rank-based ensemble (即 Top3, Top5 这两列)要好得多。

      这表明,多样化的 prompts 确实可以以不同的方式 query 语言模型,而且 optimization-based 方法能够找到有效地将不同 prompts 结合在一起的权重。

    • 我们在 Table 5 中列出了所学到的 top-3 mined prompts 的权重,以及与只使用 top-1 prompt 相比的准确率增益。

    • 我们还在 Figure 2 中描述了 rank-based ensemble 方法的性能与 prompts 数量的关系。

      • 对于 mined promptstop-2top-3 通常能给我们最好的结果。

      • 而对于 mined + paraphrased promptstop-5 是最好的。

      • 纳入更多的 prompts 并不总能提高准确率,这一发现与 optimization-based 所学到的权重迅速下降的情况相一致。

    • Table 2, Table3OracleOpti. 之间的差距表明,使用更好的 ensemble 方法仍有改进空间。

  4. Mining vs. Paraphrasing

    • 对于rank-based ensemblesTop1, 3, 5 ),通过转述产生的 prompts 通常比 mined prompts 表现更好。而对于optimization-based ensembleOpti. ), mined prompts 表现更好。

      我们推测,这是因为与转述相比, mined prompts 表现出更多的变化,而适当的加权是最重要的。这种 variation 的差异可以从每个 classprompts 之间的平均编辑距离中观察到, mined promptsparaphrased promp 的编辑距离分别为 3.272.73

    • 然而,与仅仅使用一个prompt 相比,ensembling paraphrases 所带来的改进仍然是显著的(Top1 vs. Opti. )。这表明,即使对 prompts 进行小的修改,也会导致预测的相对较大的变化。

    • Table 6 展示了对一个单词(功能词或内容词)的修改导致显著的准确率提高的案例,表明大型语言模型对查询方式的小变化仍然很脆弱。

  5. Middle-word vs. Dependency-based:我们在 Table 7 中比较了只使用 middle-word prompts 、以及将其与 dependency-based prompts 相拼接的性能。这些改进证实了我们的直觉,即属于 dependency path 但不在 subject and object 中间的单词也是relation 的指示。

  6. Micro vs. Macro:对比 Table 2Table 3 ,我们可以看到,macro-averaged accuracymicro-averaged accuracy 低得多,这表明 macro-averaged accuracy是一个更具挑战性的指标,它评估了语言模型知道多少 unique objects 。我们 optimization-based 方法在 BERT-base 上将macro-averaged accuracy22.8% 提高到 25.7% ,在 BERT-large 上从 25.7% 提高到30.1% 。这再次证实了 ensembling 多个 prompts 的有效性,但收益要小一些。

    值得注意的是,在我们 optimization-based 的方法中,ensemble weights 是在训练集的每个样本上进行优化的,这更有利于优化 micro-averaged accuracy 。优化以提高macro-averaged accuracy 可能是未来工作的一个有趣的方向,这可能会使 prompts 更普遍地适用于不同类型的 objects

  7. 不同语言模型的性能: 在 Table 8 中,我们将 BERTERNIEKnowBert 进行了比较,后两种方法通过明确纳入 entity embedding 来增强外部知识。

    • ERNIE 即使在人工 prompts 的情况下也比 BERT1 分,但我们的 prompt generation 方法进一步强调了两种方法之间的差异。这表明,如果对语言模型进行有效查询,高性能模型之间的差异可能会变得更加明显。

    • KnowBertLAMA 上的表现不如 BERT ,这与 《Knowledge enhanced contextual word representations》 的观察相反。这可能是因为在 《Knowledge enhanced contextual word representations》 中,KnowBert 被用来评估 multi token subjects/objects ,而 LAMA 只包含 single-token objects

  8. LAMA-UHN EvaluationTable 9 中报告了 LAMA-UHN 基准的性能。尽管与原始 LAMA 基准测试的表现相比,整体表现大幅下降(Table 2 ),但 optimized ensembles 仍能以较大的优势胜过人工 prompts ,表明我们的方法在检索无法根据表面形式推断的知识方面是有效的。

2.4.2 分析

  1. 接下来,我们进行进一步分析,以更好地了解哪种类型的 prompts 被证明最适合于促进从语言模型中检索知识。

  2. Prediction Consistency by Prompt:我们首先分析了在什么条件下 prompts 会产生不同的预测。我们用下面的公式来定义两个 prompts tr,itr,jprediction之间的分歧:

    (7)Div(tr,i,tr,j)=(x,y)Rδ(C(x,y,tr,i)C(x,y,tr,j))|R|

    其中:

    • 如果 prompt tr,i 能够成功地预测 y ,那么 C(x,y,tr,i)=1 ;否则 C(x,y,tr,i)=0

    • δ()Kronecker’s delta 函数,当条件为 true 时取值为 1,否则取值为 0

    对于每个关系,我们将两个 prompt 的编辑距离( edit distance )归一化为 [0, 1] ,并将 normalized distance 分成五个区间,区间间隔 0.2 。我们在下图中为每个 bin 绘制了一个箱形图从而可视化 prediction divergence的分布,bin 中的绿色三角形代表平均值,bin 中的绿色 bar 代表中位数。

    随着编辑距离的变大,divergence 也在增加,这证实了我们的直觉,即非常不同的 prompt 往往会引起不同的预测结果。Pearson 相关系数为 0.25 ,这表明这两个变量之间存在着微弱的相关性。

    箱线图最下面的 bar 代表最小值、最上面的 bar 代表最大值、箱体的底部代表下四分位数、箱体的顶部代表上四分位数。

  3. Google-RE 上的表现:我们还在下表中报告了 optimized ensembleGoogle-RE 子集中的表现。同样,ensembling diverse prompts 可以提高 BERT-baseBERT-large 模型的准确率。与 T-REx 子集上的表现相比,收益要小一些,这可能是由于只有三种 relation ,而其中一种关系(预测一个人的出生日期)特别难,以至于只有一个 prompt 产生非零准确率。

  4. POS-based 分析:接下来,我们试图研究哪些类型的 prompts 往往是有效的,方法是通过检查 prompts 的词性标注( part-of-speech: POS )模型,其中这些 prompts 成功地从语言模型中提取知识。

    open information extraction 系统中,人工定义的模式经常被用来过滤掉嘈杂的 relational phrases 。例如, 《Identifying relations for open information extraction》结合了下表中列出的三个句法约束,以提高 mined relational phrases 的一致性和信息量。为了测试这些模式是否也能表明 prompts 从语言模型中检索知识的能力,我们用这三种模式将我们的方法产生的 prompt 分为四个 cluster ,其中"other" cluster包含不符合任何模式的 prompts 。然后,我们计算每个 prompt 在所有 extracted prompts 中的排名,并在下图中用箱线图绘制出排名的分布。

    我们可以看到,与这些模式相匹配的 prompts 的平均排名要好于 "other" 组中的 prompts ,这证实了我们的直觉,即好的 prompts 应该符合这些模式。一些表现最好的 promptsPOS 签名是 "x VBD VBN IN y"(例如,"x was born in y" )、以及 "x VBZ DT NN IN y"(例如,"x is the capital of y")。

  5. Cross-model Consistency:最后,我们有兴趣知道,我们所提取的 prompts 是否是针对某一特定模型的,或者它们是否可以跨模型通用。为了做到这一点,我们使用了两种设置:

    • 一个是比较 BERT-baseBERT-large ,相同的模型架构,但规模不同。

    • 另一个是比较 BERT-baseERNIE ,不同的模型架构,但是规模相当。

    在每种情况下,我们比较了 optimization-based ensembles 在相同的模型上训练时,或在一个模型上训练并在另一个模型上测试时。如 Table 12Table 13 所示,我们发现:

    • 一般来说,在跨模型的情况下,性能通常会有一些下降(第三列和第五列),但损失往往很小。

    • query BERT-base 时,最高的性能实际上是由在 BERT-large 上优化的权重实现的。

    • 值得注意的是,在另一个模型上优化了权重的最佳准确率为 40.1%42.2%Table 12 )以及 39.5%40.5%Table 13 ),仍然比 manual prompts 获得的准确率高得多,这表明 optimized prompts 仍然能在不同的模型上提供大的收益。

    • 另一个有趣的观察是,在 ERNIE 上的性能下降(Table 13 的最后两列)比 BERT-large 上的性能下降( Table 12 的最后两列)更大,表明共享相同架构的模型从相同的 prompts 中受益更多。

    列标题包含两行:第二行表示训练 prompts 的模型,第一行表示测试 prompts 的模型。

  6. Linear vs. Log-linear Combination:如前所述,我们在主要实验中使用了概率的 log-linear 组合。然而,也可以通过常规的线性插值来计算概率:

    (8)P(yx,r)=i=1K1KPLM(yx,tr,i)

    我们在下图中比较了这两种结合来自多个 mined prompts 的预测的方式。我们假设 log-linear combination 优于线性组合,因为对数概率使我们有可能惩罚那些在任何 certain prompt 下非常不可能的 objects

    因为对数概率可以远小于零,因此,对于在任何 certain prompt 下非常不可能的 objects ,它的 P(yx,r) 远小于零,从而在 softmax 中是一个很小的数。

2.5 遗漏的设计元素

  1. 最后,除了我们前面提出的主要方法的要素之外,我们还试验了一些额外的方法,这些方法未被证明是非常有效的,因此在我们的最终设计中被省略了。我们在下面简要地描述这些方法,以及粗略的实验结果。

  2. LM-aware Prompt Generation:我们研究了通过解决一个优化问题来生成 prompts 的方法:

    (9)tr=argmaxtrPLM(yx,tr)

    其中 PLM(yx,tr) 通过一个 pretrained 语言模型来参数化。

    换句话说,这种方法直接寻找 prompt,使得语言模型分配给 ground-truth objects 的概率最高。然而,我们发现,在我们的初步实验中,由梯度引导的直接优化 prompts 是不稳定的,并且经常产生不自然的英语 prompts

    其实这就是 P-Tuning 的思想:直接优化 prompt embedding 而不是 prompt 本身。

    因此,我们转而采用了一种更直接的 hill-climbing ,从初始 prompts 开始,然后每次掩码一个 token ,并以其他 tokens 为条件用最有可能的token 来代替它。这种方法的灵感来自于 non-autoregressive machine translation 中使用的 mask-predict decoding 算法(《Mask-predict: Parallel decoding of conditional masked language models》):

    (10)PLM(witri)=<x,y>∈RPLM(wix,tri,y)|R|

    其中:wiprompt 中的第 itokentri 为掩码了第 itoken 的所有其他 tokens

    我们遵循一个简单的规则,从左到右依次修改 prompt ,这样反复进行,直到收敛。

    我们用这个方法在 T-REx-train 数据集上 refine 了所有的 mined promptsmanual prompts ,并在下表中显示了它们在 T-REx 数据集上的表现。经过微调后, oracle 性能明显提高;而 ensemble 性能(包括 rank-basedoptimization-based )略有下降。这表明,LM-aware fine-tuning 有可能发现更好的 prompts ,但部分的 refined prompts 可能过拟合于它们被优化的训练集。

  3. Forward and Backward Probabilities:最后,考虑到类别不平衡、以及模型过度预测 majority object 的倾向,我们研究了一种方法来鼓励模型预测更强烈一致的 subject-object pairs

    《A diversity promoting objective function for neural conversation models》 使用的 maximum mutual information objective 的启发,我们将每个 promptbackward log probability logPLM(xy,tr,i) 添加到optimization-based scoring 函数 s(yx,r) 中。由于objects 的搜索空间很大,我们转而采用一种近似的方法,在训练和测试时只计算由 forward probability 给出的最可能的 B 个对象的 backward probability

    这种方法的思想是:根据 label yprompts 来预测 x 。这是 《Improving and Simplifying Pattern Exploiting Training》 的核心思想。后者成功的原因有两个:后者是 few-shots 的、后者在 forward/backward 中调整了 prompts 的格式。

    如下表所示,backward probability 带来的改进很小,这表明 diversity-promoting scoring 函数可能对语言模型的知识检索没有必要。

三、AutoPrompt[2020]

论文:《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts》

  1. pretrained 语言模型(language model: LM)在通过微调来适应下游任务时取得了非凡的成功。尽管很清楚,预训练提高了准确率,但很难确定 finetuned LM 所包含的知识是在预训练过程中、还是在微调过程中学习的。我们如何才能直接评估 finetuned LM 中存在的知识,无论是语言的知识、事实的知识、常识的知识,还是特定任务的知识?

    人们提出了许多技术从而通过分析 pretrained LM 的内部表征(internal representation )来获得这种知识。一个常见的策略是使用探测分类器(probing classifier ):使用语言模型的 representationn 作为特征来预测某些属性的浅层分类器(《Whatyou can cram into a single vector: Probing sentence embeddings for linguistic properties》《Linguistic knowledge and transferability of contextual representations》)。然而,探测分类器需要额外的学习参数,因此容易出现假阳性(false positive );高的探测准确率并不是得出语言模型包含某项知识的充分条件(《Designing and interpreting probes with control tasks》《Information theoretic probing with minimum description length》)。attention visualization 是另一种常见的技术,也有类似的失败模式:注意力得分可能与底层的 target knowledge 相关,但不是由底层的 target knowledge 引起的,这导致了对注意力得分作为解释的批评(《Attention is not explanation》《Attention is not not explanation》)。probingattention 可视化也都难以评估不能被表示为简单的 token-level 分类任务或 sequence-level 分类任务的知识。

    由于这些模型毕竟是语言模型,所以从这些模型中引出知识的一个更直接的方法是 prompting ,即把任务转换成语言模型的格式。例如:

    • GPT-2 将摘要任务设定为一个语言建模任务,通过在文章末尾附加"TL;DR:" 然后从语言模型中生成。

    • 同样,LAMA 手动将知识库补全(knowledge base completion )任务重新表述为完形填空测试(即完形填空问题)。

    与现有的模型分析方法相比,prompting 是非侵入性的:它不引入大量的额外参数,也不需要直接检查模型的 representations 。因此,prompting 提供了一个关于模型 "知道" 什么的下限,因此是一个更有用的分析工具。然而,不幸的是,prompting 需要手动制作上下文从而馈入模型。这不仅耗费时间,而且对于许多任务(例如textual entailment )来说也是不直观的;更重要的是,模型对这种上下文高度敏感:不恰当的上下文会导致人为的低性能(LPAQA)。克服 manually specify prompts 的需要,将使 prompting 成为更广泛有用的分析工具。

    在本文中,我们介绍了 AutoPrompt ,一种为任何任务生成 prompts 的自动方法,如下图所示。给定一个任务,例如情感分析,AutoPrompt 通过将原始任务输入(例如评论)与根据模板的 trigger tokens 集合相结合来创建一个 prompt 。所有输入都使用相同的 trigger tokens 集合,并使用 《Universal adversarial triggers for attacking and analyzing》 提出的 gradient-based search 策略的变体来学习。对 promptLM prediction 通过对一组相关的 label tokens 进行 边际化(marginalizing )从而转换为类别概率,其中 label tokens 集合可以提前学习或人工指定,使得语言模型的评估与其他分类器的评估相同。

    我们在许多实验中验证了AutoPrompt 的有效性。

    • 首先,我们使用AutoPrompt 构建 prompts ,测试 pretrained masked language model 的情感分析和自然语言推理。我们的测试显示,在没有任何微调的情况下,masked language model: MLM 在这两项任务中表现良好:经过适当 promptedRoBERTaSST-2 上实现了 91% 的准确率,在 SICK-E 数据集的平衡的变体上的准确率为 69%

    • 接下来,我们将AutoPrompt 应用于LAMA的事实检索任务,其中我们构建 prompts ,比使用人工 prompts 、以及从语料库挖掘方法生成的prompts 更有效地引导 MLM 的事实知识。具体来说,我们实现了 43.3%precision-at-1 ,而目前最好的 single prompt 结果是 34.1%

      我们还介绍了这项任务的一个变种,类似于关系提取(relation extraction: RE ),测试 MLM 是否能从给定的文本中提取知识。我们表明,当提供具有真实事实的上下文句子时,MLM 实际上可以胜过现有的 RE 模型,然而,当上下文句子被人为地伪造时,它们就会陷入困境。

    最后,尽管 AutoPrompt 的目标是分析模型,但我们发现它比微调提供了某些实际优势。

    • 首先,AutoPrompt 在低数据的情况下比微调实现了更高的平均准确率、 worst-case 准确率。

    • 此外,与微调不同,prompting LM 不需要大量的磁盘空间来存储模型 checkpoints ;一旦找到 prompt ,它就可以用于现成的 pretrained LM 。这在为多个任务 serving 模型时是很有利的。

3.1 方法

  1. pretrained LM 中获取知识的一种自然方式是将任务设定为完形填空问题。然而,编写 prompts 不仅耗费时间,而且不清楚相同的措辞是否对每个模型都有效,也不清楚什么准则决定了某个特定的措辞是否最能引导出所需的信息。有鉴于此,我们提出了AutoPrompt ,一种为特定任务和感兴趣的MLM 构建 customized prompts 的方法从而使 MLM 产生所需的知识。

    Figure 1 提供了AutoPrompt的说明。该 prompt 是通过获取原始任务输入( tokens 的一个序列或多个序列的集合,例如,Figure 1 中的评论),并使用模板将其映射到 tokens 序列中从而构建。在下面的章节中,我们将描述 AutoPrompt 如何使用 标记的训练数据来构建 prompts ,以及如何使用 MLM 的输出作为任务的 prediction

    Trigger Tokens 集合是基于梯度的搜索算法来自动产生的集合,它的数量 k 是一个超参数,每个 token 来自于词表 V

    注意:这里的 prompts 不是位于输入的开头,而是放在输入和输出(即,[MASK] token )之间。

  2. 出于 prompt construction 的目的,我们将原始任务输入 xinp (例如,Figure 1 中的评论,"a real joy.")与馈入 MLMprompt xprompt (例如,"a real joy. atmosphere alot dialogue Clone totally [MASK]." )区分开来。从 xinpxprompt 的映射是通过一个模板来进行的,即 λ。这个模板定义了每个输入序列在 prompt 中的位置,以及任何 additional tokens 的位置。具体而言,它还必须定义一个特殊的 [MASK] token 的位置,用于 MLM 进行完形填空(在模板中用 [P] 表示,以区别于其他可能出现的 [MASK] token )。将 prompt 信息馈入 MLM 会产生一个概率分布 p([MASK]xprompt),描述哪些 tokens 最有可能填入空白(即,完形填空)。

    如果 class labels 自然对应于词表中的 tokens (例如,knowledge base completion 任务中的实体名称),这种分布可能很容易被解释为 class labels 的分布。然而,对于情感分析这样的任务,可能有一组 label tokens Vy 对应于一个特定的标签 y 。例如,在 Figure 1 中,"Cris", "marvelous", "philanthrop" 都表示 positive 情感。在这种情况下,类别概率是通过对 label tokens 的边际化从而得到的:

    (11)p(yxprompt)=wVyp([MASK]=wxprompt)

    由于只有一个 [MASK] token,因此 AutoPrompt 仅支持单个 token 作为 label 的任务。

  3. Gradient-Based Prompt Search:到目前为止,我们已经展示了如何将分类任务重新表述为使用 prompt 的语言建模任务。在此,我们提出一种基于 《Universal adversarial triggers for attacking and analyzing NLP》automatic prompt construction 方法。我们的想法是增加一些 "trigger" tokens,这些 tokens 在所有 prompt 中都是共享的(在 Figure 1 的示例模板中用 [T] 来表示)。这些 tokens 被初始化为 [MASK] tokens ,然后迭代式地更新,从而在 batch 的样本中最大化 label likelihood

    正式地,在每个 step ,我们计算将第 jtrigger token xtrig(j) 与另一个 token vV 交换之后,产生的对数似然的变化的一阶近似值。然后,我们确定一个候选集合 Vcand ,该候选集合估计会导致最大的对数似然增长的 top-k tokens

    (12)Vcand=top-kvV[vintjlogp(yxprompt)]

    其中:

    • vintoken vinput embedding

    • 梯度是相对于 xtrig(j)input embedding tj 来计算的。

    其实这就是 P-Tuning 的思想:直接优化 prompt embedding 而不是 prompt 本身。但是,AutoPrompt 为了确保更新后的 prompt 仍然是词表中的一个 token,它将寻找了那些与梯度最相似的 tokens (通过 embedding 的内积)。

    注意:这里没有采用负梯度,因为目标是最大化 logp(yxprompt)

    注意,计算这个候选集合的成本与模型的一次前向传播和反向传播的成本差不多(点积需要的乘法数量与计算 LM output projection 的乘法数量相同)。对于这个集合中的每个候选,我们再对更新后的 prompt 重新评估方程:

    (13)p(yxprompt)=wVyp([MASK]=wxprompt)

    并在下一步中保留概率最高的 prompt ,这需要模型的 k 次前向传播(k 为超参数,表示 label tokens 的数量)。Figure 1 显示了该方法为情感分析任务产生的一个样例的 prompt

  4. Automating Label Token Selection:虽然在某些情况下,label tokens 的选择是显而易见的(例如,当class labels 直接对应于词表中的单词时),但对于涉及更抽象的 class labels 的问题(例如,自然语言推断),什么 label tokens 是合适的就不太清楚了。在本节中,我们开发了一个通用的 two-step 法来自动选择 label tokens 集合 Vy

    • 在第一步中,我们训练一个 logistic 分类器,使用 [MASK] tokencontextualized embedding 作为输入来预测 class label

      (14)h=Transformerenc(x~)

      我们将分类器的输出写为:

      (15)p(yh(i))exp(h(i)wy+βy)

      其中:

      • wyβy 为针对 label y 学到的权重和 bias

      • i 代表 [MASK] token 的位置索引。

    • 在第二步中,我们用 MLMoutput word embedding wout 代替 h(i),得到一个分数 s(y,w)=p(ywout)。然后,label tokens 的集合是由得分最高的 k 个单词来构建:

      (16)Vy=top-kwV[s(y,w)]

      这等价于寻找与 wy 最相似的 top-ktokens

      假设有 label space 的大小为 M ,则需要为每个标签寻找 ktokens,则一共需要寻找 Mktokens

  5. 与其他 Prompting 方法的关系:我们的工作适合于通过 prompts 来探测语言模型的知识的工作。以前的工作使用人工定义的 prompts 来研究语言模型的能力。PET 方法将手动构建的 prompts 与半监督学习结合起来用于 few-shot learning 。我们为任何任务自动创建 prompts ,这导致了更高的准确率,并打开了新的现象来分析。

  6. 评估设置:在下面的章节中,我们应用 AutoPrompt 来探测 BERT_BASE110M 参数)和 RoBERTa_LARGE355M 参数)对以下任务的知识:情感分析、自然语言推理(natural language inference: NLI )、事实检索、关系提取。

    • 我们使用 PyTorch 的实现和 transformers Python 库提供的 pretrained 权重。

    • 对于情感分析和自然语言推理,我们使用前文描述的基于逻辑回归的启发式方法寻找 label tokens 。对于事实检索和关系提取,我们跳过这一步,因为label (实体)直接对应于词表中的tokens

    • 对于所有的任务,我们进行前文所述的 prompt search ,进行多次迭代。在每个迭代中,我们使用一个 batch 的训练数据来确定候选集 Vcand 。然后,我们在另一个 batch 数据上评估 updated promptslabel likelihoods ,并在下一次迭代搜索中保留最佳 trigger token

      在每个迭代结束时,我们在 holdout 的验证数据集上测量 label likelihoods ,并将整个搜索过程中发现的最佳 prompt 作为最终输出。

    • 我们使用适当的特定任务的指标对性能进行评估(在一个单独的holdout 测试数据集上):例如,情感分析和自然语言推断采用准确率指标、事实检索采用 precision@k 指标。

    我们的 AutoPrompt 实现在http://ucinlp.github.io/autoprompt ,并支持在任意数据集上为 HuggingFace transformers library 中的 pretrained 模型生成 prompt

3.2 实验

3.2.1 情感分析

  1. 数据集:Stanford Sentiment Treebank: SST-2

  2. 设置:

    • 基于 Table 3 中的模板的 prompt 来寻找 label tokens

    • gradient-based prompt search 的超参数网格搜索:|Vcand|{10,100},|Vy|{1,3,5},|xtrig|[3,6]

    • 所有的 prompts 都是以用于寻找 label set 的相同模板来初始化的。

    • 手动构建了一个 prompt (在 automated prompts 生成之前,以避免 bias )。我们使用 "{sentence} this movie was [P]" 作为模板,并分别使用 "terrible""fantastic" 分别作为负面和正面的 label tokens

  3. 实验结果如下表所示。我们自动构建的 prompts 比人工 prompts 更有效,而且这些 prompts 很难用人类的直觉来构建:RoBERTa 的最佳模板是 "{sentence} atmosphere alot dialogue Clone totally [P]"

    上半部分数据为监督学习得到,下半部分为无监督的 prompts 得到。

  4. 低数据环境下的准确率:虽然 AutoPrompt 的目标是探测模型的知识,但我们也发现,它可能是低数据环境下微调的一个可行的替代方案。为了证明这一点,我们在使用训练数据中的 {10, 100, 1000} 个样本的随机子集时,测量了 AutoPromptprompts 的验证集集准确率。结果如下图所示。

    我们观察到,虽然微调在情感分析上优于 AutoPrompt ,但 AutoPromptNLI 上的表现比微调更好。

3.2.2 Natural Language Inference: NLI

  1. 数据集:SICK

  2. 设置:

    • 基于 Table 3 中的模板的 prompt 来寻找 label tokens

    • gradient-based prompt search 的超参数网格搜索:|Vcand|{10,50},|Vy|{1,3,5,10},|xtrig|[1,5]

    • 所有的 prompts 都是以用于寻找 label set 的相同模板来初始化的。

  3. 结果如下表所示,AutoPrompt 在所有实验中都大大超过了大多数基线。

    首先,这里没有看到基线;其次,AutoPrompt 也没有超过监督学习的方法。

  4. MLM 在矛盾上的表现:我们发现,与 entailmentneutral 相比,contradictionlabel tokens 更容易解释( Table 3 的例子)。我们研究这是否会损害模型在 entailmentneutral 类别上的表现。

    我们测量了 3-way balanced SICK-E 数据集中每个标签的 precisionBERTcontradiction, entailment, neutral 情况下分别获得 74.9%, 54.4%, 36.8%precision ,而 RoBERTa 分别获得 84.9%, 65.1%, 57.3%。这些结果表明,AutoPrompt 对于那些可以用自然的 label tokens 轻松表达的概念可能更准确。

3.2.3 事实检索

  1. 数据集:LAMA

  2. 设置:

    • 我们将三元组 (sub, rel, obj) 映射到模板 "{sub}[T]...[T][P]." 从而重新表述 fact retrieval 。其中,trigger tokens 是特定于关系 rel 的,正确的宾语 objlabel token

    • 我们使用 LAMA 的原始测试集,以下简称 Original

    • 我们使用 57tokensAutoPrompt ,并使用 T-REx 验证集选择搜索参数。

    • 我们防止训练数据中作为 gold objects 出现的专有名词和专有 tokens 被选作 trigger tokens 。这样做是为了防止AutoPrompt 通过在 prompts 中嵌入通用答案来 "作弊"。

    • 评估指标:mean reciprocal rank: MRRprecision-at-1: P@1precision-at-10: P@10

  3. 结果如下表所示。

    • 使用 AutoPrompt 生成的 prompts 可以从 BERT 中更有效地提取事实知识:相对于 LAMA,我们在 Original 上将 P@1 提高了 12 个点。

    • 尽管 AutoPrompt 每个关系只使用一个 prompt ,但它仍然比 LPAQAensemble 方法(对多达 30prompts 的平均预测)高出约 9 个点。

    • 使用 7trigger tokens 取得的分数比 5trigger tokens 略高,尽管差异不大。

    • RoBERTa 的表现并不比 BERT 好(右图),这值得在未来的工作中进一步调查。此外,回顾一下,prompts 是对模型知识的一个下限:较低的相对性能并不意味着模型实际上知道的更少。

3.2.4 关系提取

  1. 数据集:T-Rex

  2. 配置:

    • 我们将三元组 (sub, rel, obj) 映射到模板 "{sent}{sub}[T]...[T][P]." 从而重新表述关系提取 。其中,trigger tokens 是特定于关系 rel 的,正确的宾语 objlabel token

    • 为了使监督下的关系提取模型的评价公平,我们修改了标准的评价:对于给定的 relation,只要模型没有预测出主语和宾语的不同 relation ,我们就给它加分;也就是说,我们忽略了"no relation " 的预测、以及所有其他 relation

  3. 实验结果如下表所示。

    • 当使用 AutoPrompt 时,MLM 可以比有监督的关系提取模型更有效地提取关系信息,提供了高达 33% 的绝对增益。

    • MLM 在关系提取环境中的强大结果的一个可能的解释是,他们可能已经知道许多关系。因此,他们可能会直接预测 objects ,而不是提取它们。为了分离这种影响,我们通过将测试数据中的每个 object 替换成一个随机的其他 object ,并对 prompt 进行同样的改变来人工地扰乱 relation extraction 数据集。

      在扰乱的数据上,关系提取模型的准确率没有明显变化。然而 MLM 的准确率明显下降。这表明 MLM 的准确率有很大一部分来自factual knowledge ,而不是 relation extraction 。尽管如此,我们对 BERTprompts 还是超过了 LAMALPAQA 对应的 prompts ,这进一步证明了 AutoPrompt 能产生更好的 prompts

3.3 讨论

  1. Prompting 作为 Finetuning 的一种替代方法:在解决现实世界的任务时,promptingfinetuning 有一些实际的优势:

    • 首先,在低数据量的情况下,使用 AutoPrompt 生成的 prompts 可以达到比微调更高的准确率。

    • 此外,在试图解决许多不同的任务时,promptingfinetuning 更有优势。具体而言,微调需要为每个单独的任务存储大量的语言模型 checkpoints ,并大幅增加系统成本和复杂性,因为它需要在同一时间部署许多不同的模型。相反,prompting 为所有的任务应用相同的 pretrained 模型。

  2. Prompting 的局限性:有一些现象是很难通过 promptspretrained 语言模型中引导的。在我们对 QQPRTE 等数据集的初步评估中,手动生成的 prompts 、以及用 AutoPrompt 生成的 prompts 并没有表现得比随机预测好很多。然而,我们不能从这些结果中得出结论:BERT 不知道 paraphrasingentailment 的意思。

  3. AutoPrompt 的局限性:

    • AutoPrompt 的一个缺点是,它需要标记的训练数据。尽管其他探测技术(例如线性探测分类器)也需要这样做,但 manual prompts 依赖于领域/语言的洞察力,而不是 labeled data

      AutoPrompt 中,标记的训练数据用于搜索 trigger tokenslabel tokens

    • 其次,与人类设计的 prompts 相比,AutoPrompt 生成的 prompts 缺乏可解释性,这与其他探测技术类似,如线性探测分类器。

    • AutoPrompt 的另一个限制是,当训练数据高度不平衡时,它有时会陷入困境。重新平衡训练数据可以帮助缓解这个问题。

    • 最后,由于在大的离散的短语空间上的贪婪搜索,AutoPrompt 有时很脆弱;我们把更有效的制作技术留给未来的方向。

    还有一个局限性,即:仅支持 single-token 作为 label 的分类任务。

四、PET[2020]

论文:《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》

  1. 从样本中学习是许多 NLP 任务的主要方法: 一个模型是在一组标记样本上训练出来的,然后从这些样本泛化到 unseen 的数据。由于语言、领域、以及任务的数量庞大,以及数据标注的成本,在 NLP 的实际应用中,只有少量的标记样本是很常见的,这使得 few-shot learning 成为一个非常重要的研究领域。不幸的是,将标准的监督学习应用于小训练集往往表现不佳;许多问题仅仅通过观察几个样本就很难掌握。例如,假设我们得到了以下几段文字:

    此外,设想我们被告知 T1T2 的标签分别是 ll ,并要求我们推断出 T3 的正确标签。仅仅根据这些样本,这是不可能的,因为 ll 都可以找到似是而非的理由。 然而,如果我们知道背后的任务是识别文本中是否有关于价格的内容,我们可以很容易地将 l 分配给 T3 。这说明,如果我们还有任务描述(task description ),即帮助我们理解任务内容的文本解释,那么仅凭几个样本来解决一个任务就会变得容易得多。

    随着 GPTBERTRoBERTapretrained language model: PLM 的兴起,提供任务描述的想法对于神经架构来说已经变得可行: 我们可以简单地将这种自然语言的描述附加到输入中,让 PLM 预测 continuations 从而解决任务(GPT-2《Zero-shot text classification with generative language models》)。到目前为止,这种想法大多是在完全没有训练数据的 zero-shot 场景中考虑的。

    在这项工作中,我们表明,在 few-shot setting 中,提供任务描述可以成功地与标准的监督学习结合起来。我们引入了 Pattern-Exploiting Training: PET ,这是一个半监督的训练程序,使用自然语言模式将输入的样本重新表述为 cloze-style phrases 。如下图所示,PET 分三个步骤工作:

    • 首先,对于每个模式,在一个小的训练集 T 上对一个独立的 PLM 进行微调。

    • 然后,模型的 ensemble 被用来通过 soft label 来标注一个大的unlabeled dataset D

    • 最后,在 soft-labeled dataset 上训练一个标准的分类器。

      这里已经得到了 Dsoft label 了,为什么还需要继续训练一个标准的分类器?这是因为我们的目标不仅仅是预测未标记数据集 D ,而是要泛化到 unseen 的数据。

    我们还设计了 iPET ,这是 PET 的一个迭代式的变体:在这个过程中,这个过程反复进行,并且每次迭代时增加了训练集的规模。

    在多语言的各种任务中,我们表明,只要有少量到中等数量的标记样本,PETiPET 的表现就大大超过了无监督方法、监督训练和强大的半监督基线。

  2. 相关工作:

    • GPT-2 以自然语言模式的形式提供提示,从而用于阅读理解和问答等挑战性任务的 zero-shot learning 。这一想法已被应用于无监督文本分类、常识性知识挖掘、论证关系分类(argumentative relation classification )。

      • 《Zero-shot learning of classifiers from natural language quantification》使用任务描述进行 zero-shot classification ,但需要一个 semantic parser

      • 针对关系提取,《Inducing relational knowledge from BERT》 自动识别模式,该模式表达给定的关系。

      • 《The natural language decathlon: Multitask learning as question answering》 将几个任务重新表述为 QA 问题。

      • T5 将各种问题形式化为语言建模任务,但他们的模式只是松散地类似于自然语言,不适合于 few-shot learning

    • 最近的另一项工作是使用完形填空风格的短语来探测 PLM 在预训练期间获得的知识,这包括探测事实的和常识性的知识、语言能力、对稀有词汇的理解、以及进行符号推理的能力。LPAQA考虑的问题是:找到表达给定任务的最佳模式。

    • NLP 中的其他 few-shot learning 方法包括利用相关任务的样本、使用数据增强,其中后者通常依赖于 back-translation《Improving neural machine translation models with monolingual data》)并且需要大量的平行数据(parallel data )。

      使用 textual class descriptors 的方法通常假定每个类别都有丰富的样本可用。相比之下,我们的方法不需要额外的标记数据,并提供一个直观的接口来利用 task-specific 的人类知识。

    • iPET 背后的思想(即,在前几代标注的数据上训练多代模型)与 self-trainingbootstrapping 方法有相似之处,这些方法用于词义消岐、关系提取、parsing 、机器翻译、序列序列生成等任务。

4.1 方法

  1. Mmasked language model,它的词表为 V 。令 mask token VL 为我们的目标分类任务 Alabel 集合。我们把任务 A 的输入写成短语序列 x=(s1,,sk),其中 siVV 表示所有 token 序列所构成的短语空间;例如,如果 A 是文本推理(两个输入句子),那么 k=2

    我们将模式(pattern )定义为一个函数 P ,它以 x 为输入,输出一个短语或句子 P(x)V ,该短语或句子正好包含一个 mask token 。也就是说,P(x) 可以被视为一个完形填空问题。此外,我们定义 verbalizer 为一个injective function v:LV,它将每个 label 映射到词汇 V 中。我们把 (P,v) 称为 pattern-verbalizer pair: PVP

    ”模式“ 其实就是模版,它们都是将输入的一个或多个句子转换为一个句子。

    使用PVP (P,v) 使我们能够解决任务 A ,如下所示: 给定一个输入 x ,我们应用 P 来获得一个 input representation P(x) ;然后 P(x)M 处理,从而确定标签 yL 使得 v(y) 最可能替代mask token 。例如,考虑识别两个句子 ab 是否相互矛盾(标签 y0)或相互一致(标签 y1 )的任务。对于这项任务,我们可以选择模式 P(a,b)=a?,b. ,并结合一个 verbalizer v ,其中 vy0 映射为 "Yes" 、将 y1 映射为"No" 。给定一个 input pair 的例子:

    (17)x=(Mia likes pie, Mia hates pie),

    现在的任务已经从分配一个没有固有意义的标签,变成了回答 P(x)=Mia likes pie?_ , Mia hates pie.masked position 最可能的选择是"Yes" 还是 "No"

    核心问题是:PVP (P,v) 从何而来?

4.1.1 PET

  1. PVP Training and Inference:令 p=(P,v) 是一个 PVP 。我们假设可以获得一个小的训练集 T 和一个(通常大得多)的未标记的样本集 D 。对于每个恰好包含一个 mask token 的序列 zV 、和每个 wV,我们用 M(wz) 表示语言模型在 masked position 取值为 w 的非标准化分数。给定某个输入 x ,我们定义针对标签 lL 的分数为:

    (18)sp(lx)=M(v(l)P(x))

    然后在所有标签上通过 softmax 获得概率分布:

    (19)qp(lx)=exp(sp(lx))lLsp(lx)

    我们使用 qp(lx)ground-truth 分布(一个 one-hot)之间的交叉熵来作为损失函数,从而用于微调 M

    注意:这里并没有调优 prompts,而是微调模型 M 。即:微调模型,使得模型来匹配 prompts

    注意:这里微调的是模型的 head,模型的 head 以外的参数保持冻结。

    prompt engineering 的思路是:调优/微调 prompts ,使得 prompts 来匹配模型。

    因此,PET 是微调输出侧(LM head)、prompt engineering 是微调输入侧(LM input)。

  2. Auxiliary Language Modeling:在我们的应用场景中,只有少量训练样本可用,而且可能发生灾难性遗忘。由于针对某些 PVP 进行微调的 PLM 的核心仍然是一个语言模型,我们通过使用语言建模作为辅助任务来解决这个问题。用 LCE 表示交叉熵损失、用LMLM 表示语言建模损失,我们计算出最终损失为:

    (20)L=(1α)×LCE+α×LMLM

    这个想法最近 《An embarrassingly simple approach for transfer learning from pretrained language models》 应用在一个数据丰富的场景中。由于 LMLM 通常比 LCE 大得多,在初步实验中,我们发现一个小的 α=104 能一致地提供良好的结果,所以我们在所有的实验中都使用它。

    这就是半监督学习的由来:监督信号来自于 LCE 、无监督信号来自于 LMLM

    这个超参数 α 需要较大的验证集来调优。

    为了获得用于语言建模的句子,我们使用未标记的数据集 D 。然而,我们并不直接对每个 xD 进行训练,而是对 P(x) 进行训练(即,对采用了模板之后的文本进行无监督学习),在这里我们从不要求语言模型对 masked slot 进行任何预测。

  3. Combining PVPs:我们的方法面临的一个关键挑战是,在没有大型验证集的情况下,很难确定哪些 PVP 表现良好。为了解决这个问题,我们使用了一种类似于知识蒸馏的策略(《Distilling the knowledge in a neural network》)。

    • 首先,我们定义了一组PVP ,这些 PVP 对给定的任务 A 来说是有意义的。

      模板怎么定义?模板的选择至关重要,然而论文没有回答这个问题。

    • 然后我们使用这些 PVP 如下:

      • (1):如前所述,我们为每个 pP 微调一个单独的语言模型 Mp 。由于 T 很小,即使是大量的 PVP ,这种微调也很便宜。

      • (2):我们使用所有 finetuned 模型的 ensemble M={MppP} 来标注 D 中的例子。我们首先将每个样本 xD 的未归一化的 class score 合并为:

        (21)sM(lx)=1ZpPw(p)×sp(lx)

        其中:Z=pPw(p) 为归一化的系数,w(p)PVP 的权重因子。

        我们实验了两种权重因子:简单地对所有的 p 设置为 w(p)=1 、将 w(p) 设置为训练之前在训练集上使用 p 获得的准确率。我们将这两种变体分别称作 uniformweightedLPAQAzero-shot setting 中使用了一个类似的想法。

        我们使用 softmax 将上述分数转化为概率分布 q 。遵从《Distilling the knowledge in a neural network》,我们使用 T=2 的温度来获得一个合适的 soft distribution 。所有的 pair (x,q) 都被收集在一个 soft-labeled 训练集 TC 中。

        为什么用 T=2 ?这里应该在验证集上调优。

      • (3):我们在 TC 上用标准的 sequence classification headPLM C 进行微调。

    然后,经过微调的模型 C 作为我们对任务 A 的分类器。以上描述的所有步骤都在 Figure 2 中描述;一个例子如 Figure 1 所示。

    物理含义:

    • 训练期间:基于每个模板来微调,从而为每个模板得到一个 finetuned LM

    • 推断期间:将每个 finetuned LM 的预测结果进行投票(平均投票、或者按照预测能力进行投票)。

4.1.2 iPET

  1. 将所有各个模型的知识蒸馏成单个分类器 C 意味着模型之间不能相互学习。由于一些模式的表现(可能比其他模式差得多),因此我们最终模型的训练集 TC 可能包含许多错误标记的样本。

    为了弥补这一缺陷,我们设计了 iPET ,一个关于 PET 的迭代式变体。iPET 的核心思想是:在越来越大的数据集上训练多代模型。为此:

    • 首先,我们随机选择一些训练好的 PET 模型,然后用这些模型标注来自 D 的样本,并用这些标注的样本来扩大原始数据集 T 。参考 Figure 2(a)

    • 然后,我们在扩大的数据集上训练新一代的 PET 模型,参考 Figure 2(b)

    • 这个过程要重复几次,参考 Figure 2(c)

  2. 更正式地,令 M0={M10,,Mn0} 为在 T 上微调的、初始的一组 PET 模型,其中 Mi0 是针对某个 PVP pi 来微调的,n 表示 PVP 的数量。我们训练 k 代模型 M1,,Mk ,其中 Mj={M1j,,Mnj} 并且 Mij 为在训练集 Tij 上针对 pi 训练而来。

    即:除了初始的监督信号来自于 T 之外,后续的监督新来都来自前一轮的 soft label

    在每轮迭代中,我们将训练集的大小乘以一个固定的常数 dN,同时保持原始数据集的标签比例。即,令 c0(l) 表示标签 lT 中的数量,那么每个 Tij 包含 cj(l)=d×cj1(l) 个标签为 l 的样本。这是通过如下的生成 Tij 的方法来实现的:

    每次迭代时,并不是使用所有的未标记数据,而是选择预测效果最好(通过 sN(lx) 来衡量)的一批未标记数据。这类似于标签传播的思路。

    • 从前一代中随机选择 λ×(n1) 个模型,从而得到模型的集合 NMj1{Mij1} ,其中 λ(0,1] 作为超参数。

      注意:这是用其它 finetuned LM 来 ”训练“ 当前的第 ifinetuned LM ,这和 self-training 有一定差异。

    • 使用这个模型集合,创建标记数据集:

      (22)TN={(x,argmaxlLsN(lx))xD}

      对于每个 lL ,我们通过从 TN 中随机选择标签为 lcj(l)c0(l) 个样本,从而获得 TN(l)TN

      因为最终的数据集还包含原始的监督数据集 T ,因此只需要选择 标签为 lcj(l)c0(l) 个样本。

      为了避免在错误标记的数据上训练下一代模型,我们倾向于选择模型的 ensemble 对其预测有信心的例子。基本的直觉是,即使没有 calibration ,标签被预测为高信心的样本通常更有可能被正确分类(《On calibration of modern neural networks》)。因此,当从 TN 中采样时,我们将每个 (x,y) 的概率设定为与 sN(lx) 成正比。

    • 我们定义 Tij=T(lLTN(l)) 。可以很容易地验证,这个数据集中每个标签 lL 中包含 cj(l) 个样本。

    在训练了 kPET 模型后,我们使用 Mk 来创建 TC ,并像 basic PET 那样训练 C

  3. 经过小幅度调整,iPET 甚至可以在 zero-shot setting 下使用。

    为此,我们定义 M0untrained models 集合,c1(l)=10/|L|;所以 M1 是在 10 个样本上训练的,这 10 个样本在所有标签上平均分布 。由于 TN 可能不包含某些标签 l 的足够的样本,我们通过采样 sN(lx) 最高的 100 个样本 xD 从而创建所有 TN(l),即使 largmaxlLsN(lx) (即,样本 x 不属于类别 l ,也将它放到 TN(l) 中)。

    即,这里并没有标记数据集 T ,因此 M0 是未经过微调的。

    对于随后的每一代,我们完全按照 basic iPET 进行。

整体过程又臭又长,都是规则公式,而且没有理论指导和实验说明、效果又不好、找到的 verbalizers 的解释性较差,因此不推荐这里的方法(还不如人工设计)。

  1. 给定一组模式 P1,,Pn,为每一个 lL 手动寻找一个能很好地代表 l 的含义、并与 V 中的一个token 相对应的 verbalization v(l) 可能是很困难的。因此,我们设计了 automatic verbalizer search: AVS ,这是在给定训练集 T 和语言模型 M 的情况下,自动寻找最合适的 verbalizers 的程序。

    n 个模式从何而来?作者未说明。

  2. 假设我们已经有一个PVP p=(P,v),我们可以很容易地检查一些 token tV 是否是 lL 的一个好的 verbalization 。为此,我们定义 p[lt]=(P,v) ,其中 vv 相同,只是 v(l)=t 。直观地说,如果 t 很好地代表了 l ,那么 qp[lt](lx) (即,在给定 P(x) 的条件下,M 取值为 t 的概率)应该只对那些 y=l 的样本 (x,y)T 来说是高的。因此,在给定 p 的条件下,针对 l ,我们将 t 的得分定义为:

    (23)sl(tp)=1|Tl|(x,y)Tlqp[lt](lx)1|TTl|(x,y)TTlqp[lt](lx)

    其中:Tl={(x,y)T:y=l} 为标签为 l 的所有训练样本的集合。

    物理含义:类别 y=l 上的平均概率、类别 yl 上的平均概率,二者之间的差值。

    这可以让我们很容易地计算出 l 的最佳 verbalization ,因为:

    (24)t^=argmaxtVsl(tp)
  3. t^ 要求我们已经知道所有其他标签 lverbalizations v(l) ,从而计算 qp(lx)=exp(sp(lx))lLsp(lx)AVS 解决这个问题的方法如下: 我们首先给所有的标签分配随机的verbalizations ,然后重复地重新计算每个标签的最佳 verbalization 。由于我们不希望得到的verbalizer 强烈地依赖于初始的随机分配,我们只需考虑多个这样的分配。

    具体来说,我们定义一个初始概率分布 ρ0,对于所有 tV,lLρ0(tl)=1|V| 是选择 t 作为 lverbalization 的概率。对于每个 lL ,我们用 ρ0 采样 kverbalizers v1,,vk 从而为每个 vV 计算:

    (25)slk(t)=1n×ki=1nj=1ksl(tpi)

    物理含义:t 作为 verbalizer 在所有 n 个模版上的平均表现。

    这些分数使我们能够定义一个概率分布,这个概率分布能更紧密地反映一个单词作为给定标签的 verbalizer 的适合程度:

    (26)ρ1(tl)=1Zmax(slk(t),ϵ)

    其中:Z=tVmax(slk(t),ϵ) 为归一化系数,ϵ0 为一个正数从而确保 ρ1 为一个合适的概率分布。

    我们重复这个过程,得到概率分布的序列 ρ1,,ρimax。最后,我们根据 ρimax(tl) 为每个 l 选择 mN 个最有可能的 tokens 作为 verbalizers 。在训练和推理过程中,针对每个标签,我们通过 mverbalizers 上进行平均计算出 unnormalized 分数 sp(yx)

  4. 我们分析了 AVS 在所有任务中的表现,其中 |T|=50 个训练样本 ,并设定 k=250,ϵ=103,imax=5,m=10 。为了加快搜索速度,我们还将搜索空间限制在至少包含两个字母的token tV 上。在这些 tokens 中,我们只保留 D 中最高频的 10ktokens

    结果显示在 Table 7 中。可以看出,精心手工制作的 verbalizersAVS 的表现好得多;然而,PETAVS 的表现仍然大大优于常规的监督训练,同时消除了手工寻找合适的 verbalizers 的挑战。

  5. Table 8 显示了在 Yelp 数据集上使用AVS 找到的最有可能的 verbalizers 。虽然这个数据集的大多数 verbalizers 在直觉上是有意义的,但我们发现 AVS 在为 Yahoo 数据集的 10 个标签中的 3 个、以及 MNLI 数据集的所有标签寻找良好的 verbalizers 时遇到困难。

4.2 实验

  1. 数据集:Yelp ReviewsAG’s NewsYahoo QuestionsMNLI 。此外,我们使用 X-stance 来研究 PET 对其他语言的效果如何。

    预处理:在一些使用的数据集中,换行是通过字符序列 "\n" 来表示的。由于 RoBERTaXLM-R 的词表没有换行,我们用一个空格来代替这个 "\n"。除了将所有的样本缩短到最大序列长度 256tokens 之外,我们不进行任何其他预处理。

    评估指标:Yelp, AG's Nes, Yahoo, MNLI 采用准确率;x-stance 采用 macro-average of F1

  2. 配置:

    • 对于所有的英语数据集,我们使用 RoBERTa_large ;对于 X-stance,我们使用 XLM-R

    • 我们调查了 PET 和所有 baseline 在不同训练集大小下的表现;每个模型使用不同的种子训练三次,并报告平均结果。

    • 由于我们考虑的是 few-shot setting ,我们假设无法获得可以优化超参数的大型验证集。因此,我们对超参数的选择是基于以前工作中的选择和实际考虑:学习率 1e-5batch size = 16 、最大的序列长度为 256

      这种超参数的选择不太科学。

    • 除非另有说明,我们总是使用 PETweighted 变体,并采用辅助语言建模。

    • 对于 iPET

      • 我们设定 λ=0.25d=5 。也就是说,我们选择所有模型中的 25% 来为下一轮迭代来标注样本,并在每次迭代中将训练样本的数量增加五倍。

      • 我们训练多轮迭代 ,直到每个模型至少被训练了1000 个样本,也就是说,我们设置 k=logd(10000/|T|)

      • 由于我们总是重复训练三次,所以 nPVPensemble M (或 M0 )包含 3n 个模型。

    进一步的超参数和对我们所有选择的详细解释见附录 B

  3. Patterns:这里我们描述用于所有任务的 patternsverbalizers 。我们使用 "||" 来标识文本 segments 之间的边界。

    这里采用的全部都是人工定义的模式。

    • Yelp:该任务是基于客户的文本评论来估计客户给餐馆的打分,打分从 1 星到 5 星。

      对于给定的输入文本 a ,我们定义如下的模式:

      对于所有的模式,我们定义单个 verbalizer v 为:

    • AG’s News:该任务是给定新闻的标题 a 和正文 b ,然后对新闻进行分类。新闻类别为 Word(1), Sports(2), Business(3), Science/Tech(4) 。对于 x=(a,b) ,我们定义如下的模式:

      我们使用一个 verbalizer,它将整数 1/2/3/4 分别映射到字符串 "World"/"Sports"/"Business"/"Tech"

    • Yahoo:该任务是给定一个问题 a 和答案 b ,然后对问题进行分类。我们采用和 AG’s News 相同的模式,但是将 P5 中的单词 "News" 替换为单词 "Question"

      我们使用一个 verbalizer,它将整数 1/2/3/4/5/6/7/8/9/10 分别映射到字符串 "Society"/"Science"/"Health"/"Education"/"Computer"/"Sports"/"Business"/"Entertainment"/"Relationship"/"Politics"

    • MNLI:该任务是文本蕴含任务,给定文本 pair x=(a,b),然后判断 a 是否蕴含 blabel = 0)、ab 相互冲突(label = 1)、ab 没有关系(label = 2 )。我们定义如下的模式:

      我们考虑如下的两种不同的 verbalizers v1,v2

      将这两种模式与两个 verbalizers 结合起来,共产生了 4PVP

    • X-Stance :每个样本 x=(a,b) 包括一个关于某些政治问题的问题 a 和一个评论 b ,任务是识别 b 的作者对于问题的主题是支持(label = 0)还是反对(label = 1)。我们使用两个简单的模式:

      我们定义了一个英语 verbalizer vEn0 映射到 "Yes"、将 1 映射到 "No" ;定义了一个 French (German) verbalizer vFrvDe) ,将 "Yes"/"No" 替换为 "Qui"/"Non""Ja"/"Nein" )。我们没有定义 Italian verbalizer ,因为 X-stance 不包含任何意大利语的训练样本。

4.2.1 实验结果

  1. 英语数据集:下表显示了英语文本分类和语言理解任务的结果,我们报告了三次 training runs 的平均准确率和标准差。

    • 1-2 行(L1-L2 )显示了无监督的性能,即没有任何微调的单个 PVP (类似于 GPT-1 )。我们同时给出了所有 PVP 的平均结果( avg )、以及在测试集上效果最好的 PVP 的结果(max )。两行之间的巨大差异突出了应对以下事实的重要性:如果不看测试集,我们就没有办法评估哪些 PVP 表现良好。

    • 第三行表明,在所有的数据集上,Zero-shot iPET 明显优于无监督的基线( L3 vs L1 )。在 AG’s News 上,Zero-shot iPET 甚至比有1000 个样本的标准监督训练表现更好( L3 vs L13 )。

    • 在只有 10 个训练样本的情况下,标准的 supervised learning 的表现并没有超过随机( L4 )。相比之下,PETL5)的表现比完全无监督的基线(L1-L2 )要好得多。使用 iPETL6 )迭代多轮,可以得到持续的改进。

    • 随着我们增加训练集的大小,PETiPET 的性能提升变得更小。对于 50100 个样本,PET 继续大大超过标准的监督训练( L8 vs L7L11 vs L10 );iPETL9L12)相比 PET 仍然给予一致的改善。

    • 对于 |T|=1000PETAG 上相对于监督学习没有优势,但仍然提高了所有其他任务的准确率( L14 vs L13 )。

  2. SOTA 的比较:我们将 PETUDA《Unsupervised data augmentation for consistency training》)和 MixText《Mix-Text: Linguistically-informed interpolation of hidden space for semi-supervised text classification》)进行比较,这两种 SOTANLP 半监督学习方法依赖于数据增强。PET 要求任务可以用模式来表达,并且要找到这样的模式;而 UDAMixText 都使用 back-translation ,因此需要成千上万的标记样本来训练机器翻译模型。

    我们使用 RoBERTa-base 进行比较,因为 MixText 是专门针对 12 层的 Transformer 的。 UDAMixText 的原始论文都使用大型验证集来优化 training steps 的数量。相反,我们直接在测试集上尝试这两种方法的几个值,并仅报告获得的最佳结果。尽管如此,Table 2 显示,PETiPET 在所有任务中的表现都大大超过了这两种方法,清楚地表明了以 PVP 的形式纳入人类知识的好处。

    对于 UDAMixText,作者这里将测试集作为验证集来使用,这会高估这两个模型的表现。

  3. X-Stance:我们在 x-stance 上评估了 PET ,以研究 PET 是否对英语以外的语言有效、以及当训练集具有中等规模时 PET 是否也会带来改进。与 《X-stance: A multilingual multi-target dataset for stance detection》 相比,我们没有在验证集上进行任何超参数优化调优,并使用较短的最大序列长度( 256 vs 512 )来加速训练和评估。

    为了研究 PET 是否在有大量样本时也能带来好处,我们考虑了 1000/2000/4000 的训练集规模。对于每一种配置,我们分别独立地微调法语模型和德语模型,以便对训练数据进行更直接的下采样。

    此外,我们在整个法语( |TFr|=11790)和德语(|TDe|=33850)训练集上训练模型。在这种情况下,我们没有任何额外的未标记的数据,所以我们简单地设置 D=T 。对于法语模型,我们使用vEnvFr 作为 verbalizers ,对于德语则使用 vEnvDe 作为 verbalizers

    最后,我们还研究了在法语和德语数据上联合训练的模型的性能(|TFr+TDe|=45640),使用 vEn,vFr,vDe

    结果如下表所示。遵从 《X-stance: A multilingual multi-target dataset for stance detection》 ,我们报告了 label 0label 1macro-average of the F1 ,在三次运行上取平均平均值。对于意大利语("It" 列),我们报告了德语和法语模型的平均 zero-shot 跨语言性能,因为没有意大利语训练样本。我们的结果表明,即使在超过 1000 个样本的训练中,PET 在所有语言中都带来了巨大的改进;它还大大地提高了 zero-shot 跨语言的性能。

4.2.2 分析

  1. Combining PVPs:我们首先调查 PET 是否能够应对一些 PVP 的表现比其他 PVP 差很多的情况。对于 |T|=10 ,下表比较了微调之后 PET 与表现最好和最差的模式的性能;我们还包括使用 PET 模型的 ensemble 得到的结果,这些模型对应于没有知识蒸馏的单个 PVP (即,没有在 TC 上微调模型)。可以看到:

    • 对于 finetuned 模型,最佳模式和最差模式之间的差距也很大,特别是对 Yelp 而言。

    • 然而,PET 不仅能够弥补这一差距,甚至比在所有任务中只使用表现最好的模式更能提高准确率。

    • 知识蒸馏比 ensemble 带来了一致的改进;此外,它还大大减少了最终分类器的 size

    • 我们发现 PETuniform 变体和 weighted变体之间没有明显区别。

  2. Auxiliary Language Modeling:我们分析了辅助语言建模任务对 PET 性能的影响。下图显示了添加语言建模任务对四种训练集规模的性能改进。可以看到:

    • 在只有 10 个样本的训练中,辅助任务是非常有价值的。

    • 随着数据的增加,辅助任务变得不那么重要,有时甚至导致更差的性能。

    • 只有在 MNLI 中,我们发现辅助语言建模一直都有帮助。

  3. Iterative PET:为了检查 iPET 是否能够在多轮迭代中改善模型,下图显示了所有轮次的模型在 zero-shot setting 中的平均性能。每一次额外的迭代确实能进一步提高 ensemble 的性能。我们没有研究继续这个过程进行更多的迭代是否会有进一步的改善。

    另一个自然的问题是,通过更积极地增加训练集的大小,是否可以用更少的迭代获得类似的结果。为了回答这个问题,我们跳过 AG's NewsYahoo 的第2 代和第 3 代,对于这两项任务,直接让 ensembl M1 标注 10×54 个样本从而用于 M4 。如下图中的虚线所示,这显然导致了更差的性能,突出了只逐渐增加训练集大小的重要性。我们推测,之所以会出现这种情况,是因为过早地标注太多的样本会导致很大比例的错误标记的训练样本。

  4. In-Domain Pretraining:与我们的监督基线不同,PET 利用了额外的未标记数据集 D 。因此,PET 相对于监督基线的性能提升至少有一部分可能来自于这个额外的 in-domain data

    为了测试这一假设,我们只需在 in-domain data 上进一步预训练 RoBERTa ,这是提高文本分类准确性的常见技术。由于语言模型预训练在 GPU 使用方面很昂贵,我们只对 Yelp 数据集进行了预训练。下图显示了 with/without 这种 in-domain pretraining 的监督学习和 PET 的结果。虽然预训练确实提高了监督训练的准确率,但监督模型的表现仍然明显比 PET 差,这表明我们的方法的成功不仅仅是由于使用了额外的未标记数据。

    有趣的是,in-domain pretrainingPET 也有帮助,表明PET 利用未标记数据的方式明显不同于标准的 masked language model pretraining

五、PET-2[2021]

论文 《It’s Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners》

  1. 在海量语料库上预训练越来越大的语言模型导致了 NLP 的巨大改进。一个标准的方法是用一个 task-specific head 来取代 pretrained model 的输出层,并在一组 labeled training data 上微调整个模型。然而,语言建模不仅是一个强大的预训练目标,而且许多任务可以被重新表述为完形填空问题,允许 pretrained 语言模型在没有任何标记样本、或只有极少数标记样本下解决这些问题(GPT-2PET)。

    最近,《Language models are few-shot learners》 介绍了 GPT-3 ,一个拥有 175B 参数的 pretrained 语言模型,并表明它具有惊人的 few-shot 能力: 通过将任务重新表述为语言建模问题,GPT-3 在只给定 32 个标记样本的情况下,对一些 SuperGLUE 任务取得了接近 SOTA 的结果。这是通过 priming 来实现的: GPT-3 被馈入了一些 demonstrations (由输入和对应的输出组成)从而上下文来用于预测,但没有进行梯度更新。虽然使用起来很简单,但这种方法有两个主要缺点:

    • 它需要一个巨大的语言模型才能很好地工作,这使得它在许多现实世界的场景中无法使用,并导致了巨大的碳足迹(carbon footprint)。

    • 它不能扩展到更多的样本,因为大多数语言模型的上下文窗口被限制在几百个 tokens

    priming 的另一个替代方案是 pattern-exploiting training: PET ,它结合了将任务重新表述为完形填空问题、以及常规的 gradient-based fine-tuning 的思想。虽然 PET 还需要未标记的数据,但对于许多现实世界的应用,未标记的数据比标记样本更容易获得。最重要的是,PET 只在语言模型所预测的答案对应于其词表中的单个 token 时才起作用;这是一个严重的限制,因为许多任务不容易被这样表述。

    PET 还需要在未标记数据上进行微调(仅微调 LM head),其中未标记样本的 soft label 是通过 model ensemble 来自动生成的。

    在这项工作中,我们使 PET 适用于需要预测多个 tokens 的任务。然后我们表明,结合 ALBERTPET 及其迭代式变体(iPET )在SuperGLUE 上的表现都优于 32-shot GPT-3 ,而只需要 GPT-30.1% 的参数(如下图所示)。此外,用 PET 训练可以在单个 GPU 上几个小时完成,而不需要昂贵的超参数调优。最后,我们表明,在缺乏未标记数据的情况下也可以实现类似的性能,并详细分析了促成 PET 强大性能的因素:它结合多种任务形式的能力、它对难以理解的措辞的弹性、它对标记数据的使用、以及底层语言模型的特性。鉴于 PET 的 "绿色" 特性,我们认为我们的工作是对环境友好的 NLP 的一个重要贡献。

    这篇论文是 PET 的扩展,将 PET 从输出 single token 的任务扩展到输出 multi tokens 的任务。主要思想是:muli tokens output 概率拆分为多个 single tokens output 的概率乘积。

  2. 相关工作:通过提供任务描述使语言模型能够进行 zero-shot learning是由 GPT-2 提出的,并已被应用于文本分类、常识性知识挖掘、论证关系分类(argumentative relation classification )。它也常用于探测语言模型中所包含的知识。

    由于找到将任务重新表述为被语言模型很好理解的完形填空问题的方法很困难(LPAQA),《Exploiting cloze questions for few shot text classification and natural language inference》提出了PET ,该方法使用知识蒸馏(《Distilling the knowledge in a neural network》)和自训练来轻松结合几个 reformulations

    我们修改后的 PET 版本使用 masked language model 为文本序列分配概率;这类似于以生成方式使用它们(《BERT has a mouth, and it must speak: BERT as a Markov random field language model》),之前 《Masked language model scoring》《Mask-predict: Parallel decoding of conditional masked language models》 已经研究过。

    与使用基于梯度的优化的 PET 相比,GPT-2GPT-3 研究了 priming ,其中样本作为上下文,但不进行参数更新。

    最后,我们专注于减少 few-shot learning 所需的计算量,这与绿色人工智能中旨在提高模型效率的其他努力密切相关,包括知识蒸馏的技术、剪枝、量化、以及推理期间的 early exit 策略。

5.1 PET 方法

  1. M 是一个 masked language model: MLMT 是它的词表, _Tmask token 。我们把所有的 token 序列的集合表示为 T 。对于至少包含 kmaskstoken 序列 zT ,以及 tT ,我们用 qMk(tz) 表示 Mz 中第 kmasked position 取值为 t 的概率。模型在应用 softmax 之前的 logitssMk(tz) 表示。我们考虑将输入 xX 映射到输出 yY 的任务,为此 PET 需要一组 pattern-verbalizer pairs: PVPs 。每个 PVP p=(P,v) 由以下部分组成:

    • 一个模式 P:XT ,它将输入映射到包含单个 mask 的完形填空问题。

    • 一个 verbalizer v:YT,将每个输出映射为单个 token ,这个 token 代表输出在模式中的 task-specific 含义。

    如下图所示,PET 的核心思想是:从 v(y)P(x)masked position"correct" token 的概率中,推导出 yx 的正确输出的概率。基于这种直觉,给定 x 的条件下,y 的条件概率分布 qp 被定义为:

    (27)qp(yx)=exp(sp(yx))yYexp(sp(yx))

    其中:sp(yx)=sMl(v(y)P(x))v(y)P(x)masked position 的原始得分,lmasked position

  2. 对于一个给定的任务,在没有大的验证集的情况下,识别表现良好的 PVP 是具有挑战性的。因此,PET 使多个PVP 的组合 P={p1,,pn},具体如下:

    • (1):对于每个 PVP p ,通过最小化 yqp(yx) 之间的交叉熵从而在训练样本 (x,y) 上微调 MLM 。在实践中,PET为每个模式训练三个 MLM ,因为性能在不同的 runs 中会有很大的不同。

      一共 n 种模式,所以一共微调得到了 3n 个模型。

    • (2)finetuned MLMensemble 被用来标注一组未标记的样本:每个未标记的样本 xX 被标注为基于概率分布的 soft labels

      (28)qP(yx)exp(pPwp×sp(yx))

      其中:wp 为一个加权项,它与训练之前在训练集上用 p 达到的准确率成正比。

    • (3):所得的 soft-labeled dataset 通过最小化模型输出和 qP 之间的交叉熵来训练一个常规的序列分类器。

      这里仅仅微调 LM head,冻结了语言模型的绝大多数的参数。

    由于上述步骤 (2)(3) 与知识蒸馏非常相似(《Distilling the knowledge in a neural network》 ),我们也将其简单称为蒸馏。重要的是,这个过程不需要在内存中同时保存整个 MLMensemble ,因为每个模型的预测都可以按顺序地计算;因此,它并不比使用单个模型更耗费内存。

  3. 为了让在不同模式上训练的 MLM 有更多机会相互学习,《Exploiting cloze questions for few shot text classification and natural language inference》 还提出了 iPET ,这是 PET 的一个迭代式的变体,其中若干代模型在由前几代模型所标记的、规模越来越大的数据集上训练。其实现方式如下:

    • 首先,像常规 PET 一样训练 MLMensemble 。对于每个模型 Mi 来说,其他所有模型的一个随机子集被用来生成一个新的训练集 Ti,;对于这些 sofe labeled 样本上,选定的模型子集对其预测最有信心。

    • 然后,每个 MiTi 上被重新训练。

    • 这个过程要重复几次,每次都要把 Ti 中的样本数量增加一个恒定的系数。

    关于进一步的细节,我们参考PET 原始论文。

5.2 多个 Masks 的 PET

  1. PET 的一个重要局限性是,verbalizer v 必须将每个输出映射为单个 token ,这对许多任务来说是不可能的。因此,我们将 verbalizers 泛化为函数 v:YT,这要求对 inferencetraining 做一些修改。

    我们进一步推广 PET ,因为我们不认为输出空间对每个输入都是相同的:对于每个 xX ,我们用 YxY 表示给定 x 作为输入的情况下可能的输出的集合。给定一个 PVP p=(P,v) ,我们定义 l(x)=maxyYx|v(y)| 为表达 Yx 中任何输出所需的最大 token 数量, Pk(x)mask token 被替换为 kmasksP(x)

    作为一个例子,我们考虑对具有标签 Y={+1,1} 的餐厅评论进行二元情感分类的任务。我们使用模式 P(x) = x. It was _. 和一个 verbalizer v ,这个 verbalizer+1 映射到单个 token "great" 、将 -1 映射到序列 "terri" "ble" ,也就是说,我们假设 MLMtokenizer 将单词 "terrible" 分割成两个 tokenterrible 。在这个例子中,对于所有的 xl(x)=2P2(x)Figure 3(a) 所示。

  2. Inference:对于 xX,yYx ,以及 |v(y)|=k,我们以自回归的方式重新定义 qp(yx): 从 Pk(x) 开始,我们连续进行 k 次预测,其中我们总是根据 MLM 的信心选择 next token 进行预测。也就是说,我们设置 qp(yx)=q(v(y)Pk(x)) ,其中:

    (29)j=argmax1ikqMi(tiz)q(t1,,tkz)=qMj(tjz)×q(tz)

    其中:z 几乎与 z 相同,除了 zj=tjt=t1tj1tj+1tk

    请注意,与原始 PET 不同,qp 不是一个概率分布,因为它的 sum 结果不等于 1.0

    上式的物理含义为:

    • 首先,在给定 z 的条件下,对每个 masked position,预测对应的 tokens

    • 然后,选择预测概率最大的 masked position (记做 j )、及其对应的 token (记做 tj )。

    • 最后,我们计算下面两项的乘积:

      • 给定 z 的条件下,第 jmasked position 对应的 tokentj 的概率。

      • 给定 z 以及第 jmasked positiontj 的条件下,剩余的 masked positions 分别为 t 的概率。

      其中 q(tz) 可以递归地计算。

    对于我们的情感分类例子,Figure 3 说明了 qp(1x) 是如何计算的:

    • 由于 |v(y)|=|{terri, ble}|,我们首先使用 z=P2(x) 来计算 v(y) 中每个 token 的概率(Figure 3(a) )。

    • 然后,我们选择概率最高的 token ,把它放在相应的 mask token 的位置上,并使用产生的完形填空问题 z 来计算其余 token 的概率( Figure 3(b) )。

    • 最后,对于 y=1 的整体得分计算为:

      (30)qp(1x)=qM2(blez)×qM1(terriz)
  3. Training:对每个训练样本 (x,y)q(t1,,tkz) 计算 qp(yx) 将是非常昂贵的。为了能够在一次前向传播中计算所有需要的概率,我们通过以下方式近似计算 qp(yx)

    • 始终插入所要求的最大数量的 mask tokens 从而表达任意输出。

    • 对于每个 yYx,并行预测 v(y)=t1tk 的所有 token ,其中我们简单地忽略模型对所有 l(x)k 个多余的 mask tokens 的预测:

      (31)q~p(yx)=i=1kqMi(tiPl(x)(x))

    对于我们的例子,这意味着我们通过如下的计算来近似 qp(yx)

    (32)q~p(+1x)=qM1(greatz),q~p(1x)=qM1(terriz)×qM2( blez)

    这可以在一次前向传播中完成,因为它只需要处理一次 Figure 3(a) 中的完形填空问题 z=P2(x)

    即,训练期间并行解码。注意,测试期间采用了不同的解码方式:每次选择概率最大的 token 来解码。

  4. 由于 q~p 不是 Yx 上的概率分布,交叉熵不是一个理想的训练目标,因为它也可以通过减少分配给不属于输出空间的序列 zv(Yx) 的概率而达到最小化,而这对模型的预测没有影响。相反,我们选择 multiclass hinge loss 并最小化:

    (33)yYxmax(0;1logq~p(yx)+logq~p(yx))

    也就是说,我们要求 y 的对数概率和任何输出 yYx{y} 的对数概率之间的差值至少为 1

5.3 实验

  1. 我们在 SuperGLUE 上对 PETGPT-3 进行了比较。我们无法使用与 GPT-3 完全相同的训练数据来评估PET ,因为对于大多数任务,对于每个测试样本,GPT-3 使用不同的训练数据集;而对于其他任务,GPT-3 无法提供 request 所对应的训练数据集。然而,样本的确切选择对GPT-3 的性能影响不大。因此,我们通过使用固定的随机种子为每个任务随机选择 32 个样本来创建新的训练集。

    我们还为每个任务创建了多达 20k 个未标记样本,这是通过从原始训练集中删除所有标签来完成的。我们把产生的训练样本和未标记样本的集合称为 FewGLUE

  2. 任务:我们描述每个 SuperGLUE 任务和我们相应的 PVP 。我们使用竖线("|" )来标识文本片段之间的边界。在考虑的八个任务中,只有 COPA, WSC, ReCoRD 需要使用具有 multi masksPET

    • BoolQ:是一个问答任务,每个样本由一段话 p 和一个 "yes/no" 问题 q 组成,我们使用以下模式:

      我们定义了两个 verbalizers ,分别将包含真实陈述的问题映射为 yes/true ,将虚假陈述的问题映射为 no/false ,总共有 6PVP

    • CBRTE 是像 MNLI 一样的文本蕴含任务,所以我们使用与PET 类似的 PVP 。对于一个前提 p 和假设 h ,我们使用如下的模式:

      我们使用一个 verbalizer,它将蕴含关系映射为 yes、矛盾关系映射为 no、中性关系映射为 maybe

    • 给定一个前提 pCOPA 的任务是在给定两个选项 c1c2 的情况下确定该前提的原因(cause )或效果(effect)。

      为了确定效果,我们使用以下模式:

      对于确定原因,我们使用相同的模式,但用 because 代替 so

      用于 c1c2verbalizer 是一个恒等映射,即将 ci 映射到它自身,i=1,2

    • 对于 WiC,给定一个词 w 和它出现的两个句子 s1s2 ,任务是决定 w 在两个句子中是否有相同的意义。我们使用如下的模式:

      对于前两种模式,如果 w 在两个句子中的含义相同,那么采用 yes 作为 verbalization ,否则采用 no 。对于第三种模式,我们用 b2 作为 verbalization

    • 对于 WSC ,每个样本由一个带有标识的代词 p 和名词 n 的句子 s 组成,任务是确定 p 是否指代 n 。我们遵循 T5, GPT-3 ,将WSC 作为一个生成任务。我们用星号来突出 s 中的 p ,并使用以下模式:

      我们使用恒等映射作为 nverbalizer 。请注意,WSC 与其他任务不同,它需要自由形式的文本补全。这反过来又要求在训练和推理过程中进行一些修改,这些修改将在附录 A 中讨论。

    • MultiRC:是一个问答任务。给定一个段落 p、一个问题 q 、以及一个候选答案 a ,任务是决定 a 是否是 q 的正确答案。我们使用与 BoolQ 相同的 verbalizer 和类似的模式:

    • 对于 ReCoRD,给定一个段落 p 和一个完形填空问题 q ,任务是决定在一组给定的候选答案中,哪个是问题中占位符的正确替换。由于这项任务已经以填空题的形式呈现,设计 PVP 的空间很小,所以我们只使用了一个平凡的 PVP :把 pq 的拼接作为模式,把恒等映射作为 verbalizer 。由于只有一个 PVP ,就不需要进行知识蒸馏,所以我们直接使用产生的模型作为我们的最终分类器。

    数据集的统计数据如下表所示。

  3. 数据预处理:我们不进行任何预处理,只是将所有的样本缩短到最大的序列长度。

  4. 配置:作为 PET 的底层的语言模型,我们选择 ALBERT-xxlarge-v2 ,这是在常规的完整大小的训练集上进行训练得到的、在 SuperGLUE 上表现最好的 MLM 。我们使用同一模型,并辅以 sequence classification head ,作为我们的最终分类器。

    我们在 FewGLUE 训练集上为所有的 SuperGLUE 任务运行 PET 。我们不使用任何验证集来优化超参数;相反,我们使用与《Exploiting cloze questions for few shot text classification and natural language inference》 完全相同的设置和超参数,如下表所示。唯一的区别是对于 iPET,我们仅训练 3 代模型以加快训练速度。

    对于 COPA, WSC, ReCoRD ,我们使用我们提出的对 PET 的修改,从而支持 verbalizers 将标签映射到多个 tokens ;对于所有其他任务,我们使用常规 PET 。我们在所有任务上训练 iPET ,但 COPA, WSC 除外,因为它们的未标记数据集包含远低于 1,000 个样本;ReCoRD 也除外,因为我们只使用一个 PVP ,所以 iPET 对其没有意义。对于这三项任务,我们只是简单地复用常规 PET 的结果。

    • COPA:对于 COPA ,我们在训练期间以 50% 的概率随机切换两个选项 c1c2 ,以使输入更加多样化。在推理期间,我们总是保持原来的顺序。为了蒸馏出最终的 PET 模型,我们从每个 PVP p 中获得未标记样本 xlogits ,即 sp(yx)=logqp(yx) 。我们使用 RoBERTa 提出的输入格式。

    • WiC:与 COPA 类似,我们在训练期间随机切换输入句子 s1s2 。给定一个单词 w 和两个句子 s1s2 ,我们使用序列 w:s1s2 作为最终的序列分类模型的输入,其中 "|" 标识着两个文本段的边界。

    • WSC:与其他 SuperGLUE 任务不同, T5GPT-3WSC formulation 要求自由地补全,这意味着对于每个句子 s 和代词 p ,我们只有一个选项,即名词 n ,需要模型来预测,并且我们不提供任何其它选项。因此,在训练过程中,我们使用 nq~p(ns,p) 之间的常规交叉熵损失。

      然而,在许多情况下,这将使语言模型很容易根据提供的 masks 的数量识别出正确的 target ,因此我们通过随机添加最多三个额外的 mask tokens 来修改每个 target ,对于这些mask tokens ,我们要求模型预测一个特殊的 <pad> token 。对于推理,我们总是只随机添加一个 mask token ,以确保多次评估的结果一致,并按照前文所述进行贪婪解码。然后,我们遵从 T5 的做法,将语言模型产生的输出映射到标签 y{true, false}

      对于蒸馏,给定一个未标记样本 x ,如果模型对 x 的输出被映射到 y ,我们设置 sp(yx)=1,否则设置 sp(yx)=0 。我们以 sn 的格式向最终的 PET 模型提供输入,其中 "|" 是两个文本片段之间的边界,并在 s 中用星号标识 p

    • MultiRC :与PET 使用的超参数不同,我们在训练和推理过程中对 MultiRC 使用最大序列长度为 512 tokens ,因为我们发现许多段落的长度远远超过 256 tokens 。最终序列分类模型的输入形式为 pqa,其中 p 是段落、q 是问题、a 是答案候选、 "|" 是两个文本片段之间的边界。

    • ReCoRD:对于 ReCoRD ,我们再次使用最大序列长度为 512 ,因为许多段落需要超过 256 tokens 。对于一些问题 qReCoRD 训练集包含大量的答案候选者。为了方便训练,我们把每个样本拆分为多个样本:令 C 是答案候选的集合,C+C 是正确答案的集合;我们通过从 CC+ 中随机选择最多 9 个负样本,为每个 cC+ 创建一个训练样本,总共有 10 个答案候选。

5.3.1 实验结果

  1. 我们的主要结果显示在 Table 1 中。可以看到:

    • PETALBERT 的表现与 GPT-3 175B 模型相似,后者比前者大 785 倍。

    • 平均而言,PET 的性能比 GPT-3 Med 这个大小相似的模型要好 18 个点。

    • 在我们使用 iPET5 个任务中,有 3 个任务的性能得到了进一步的提高,最明显的是 CB ;但在 MultiRC 任务上,性能略有下降。

    • 尽管 PET 的性能很强,但它的性能显然还是比在常规的、full sizeSuperGLUE 训练集上训练的 SOTA 模型更差。

5.3.2 分析

  1. 我们研究了几个因素对 few-shot 性能的重要性:模式和 verbalizers 的选择、未标记数据和标记数据的使用、以及底层语言模型的属性。我们还研究了我们提出的对 PET 的修改从而与 multiple masks 一起工作,并将其与各种 baseline 进行比较。最后,我们衡量了选择不同的训练样本集合对性能的影响。我们的分析集中在 PET 上,因为 GPT-3 并不公开可用。

  2. Patterns:将任务重新表述为完形填空问题的方式会对性能产生巨大影响。这些 reformulations 可以是任意复杂的。例如,GPT-3 针对 WSC 所使用的模式包含一个近 30 个单词的 introductory section 。目前还不清楚这种 formulation 能否、以及如何被优化。为了研究模式和 verbalizers 的重要性,我们比较了三组 PVP :我们在前面内容中定义的初始集合(记做 pours )、GPT-3 使用的单个 PVP (记做 pGPT-3 )、以及二者的组合(pcomb )。

    我们用具有三组模式的 PET 来训练 ALBERT 。所选择的 SuperGLUE 任务的结果显示在 table 2 (顶部)。可以看到:

    • GPT-3 使用的 PVPRTE 上优于我们的 PVP ,而我们的 PVPMultiRC 上表现得更好。这些性能上的巨大差异凸显了找到良好的方法来表述任务为完形填空问题的重要性。由于在没有对大量的样本进行尝试的情况下,很难确定哪些模式表现良好,因此,few-shot 方法的一个关键挑战是:如何弥补语言模型不能很好理解的 PVP

    • 从用 pcomb 训练的模型的表现来看,PET 能够做到这一点:结合所有的 PVP 不仅能够补偿 poursRTE 上、以及 pGPT-3MultiRC 上的较差表现,而且与表现最好的一组模式相比,它甚至进一步提高了三个任务的平均性能。这清楚地表明了精心设计一组合适的模式的潜力,而不是仅仅选择单个 formulation 而不对其有效性进行评估。

  3. 未标记数据的使用:与 GPT-3 不同,PET 需要未标记数据来将所有基于单个 PVP 的模型的知识蒸馏成单个分类器。对于 iPET ,未标记数据还被用来为未来几代模型生成训练集。其基本假设是可以很容易地获得未标记数据,但在现实世界中可能并不总是如此。因此,我们研究了未标记数据对常规 PET 的重要性。为此,我们比较了 PET 中最终分类器的性能、以及直接使用对应于每个 PVP 的模型的 ensemble 的性能。虽然使用这个 ensemble 完全消除了对未标记数据的需求,但由于我们遵循 PET 的默认设置并且每个 PVP 训练三个模型,kPVPensembledistilled model 要大 3k 倍。然而,即使是大量的 PVPensemble 也比 GPT-3 小两个数量级。

    由于微调仅仅作用在 LM head 上,因此 kPVPensemble 可以共享底层的、被冻结的 LM body,所以没有比 distilled model3k 倍。

    没有蒸馏的结果可以在 Table 2 (底部)看到。从三个任务的平均值来看,ensemble 的表现甚至比 distilled classifier 更好。这表明,如果目标只是为了达到良好的性能,那么未标记数据是没有必要的;但是,为了获得单个的、轻量级的模型作为 final classifier ,则是需要的。

    这是否说明了:对于 PET ,没有必要进行花里胡哨的蒸馏?

    此外,对于 iPET,蒸馏是否有必要?

    下图说明了用 iPET 训练多代的好处。对于除 MultiRC 以外的所有任务,从第一代到第二代都有很大的改进,而第三代只实现了轻微的额外改进。平均而言,标准差在后面几代中有所减少,这说明模型之间相互学习,其预测结果趋于一致。最后的蒸馏步骤为除MultiRC 之外的所有任务带来了进一步的改进,并将三次 training runs 的标准差降低到几乎为零,说明 PETiPET 是减少微调不稳定性的有效手段。

    当然,还有进一步的方法来利用未标记数据,如在微调期间保持一个辅助的语言建模目标(《An embarrassingly simple approach for transfer learning from pretrained language models》)。虽然我们把调研额外使用这类方法的影响留给未来的工作,但我们注意到,它们可以很容易地应用于 PET ,而没有直接的方法将它们与 priming 相结合。

  4. 标记数据的使用: 我们接下来研究标记数据使用方式的影响,这是 primingPET 之间的关键区别之一。

    • 我们首先将 PET 与常规的监督训练(即不使用任何模式)、以及完全无监督的模型(即使用所有 PVP 但没有 labeled 训练样本的 ensemble )进行比较。给定 32 个样本,PET 明显优于两个 baselineTable 3 )。

    • 我们接下来将 PETpriming 进行直接的比较。然而,我们不能用 ALBERT 来做,因为它只能处理最多 512 tokens 的序列,这对一组32 个样本来说是不够的。我们改用 XLNet 来做这个比较。如 Table 3 所示,XLNet 总体上表现比 ALBERT 差。更重要的是,带有 PETXLNet 的表现要比 priming 好得多。

      我们无法在 MultiRC 上用 priming 获得结果,因为 FewGLUE 中的 32 个样本需要超过 10k tokens ,所以用标准的Transformer 无法处理它们,因为自注意的复杂性是序列长度的平方。这突出了 priming 的另一个重要问题: 它不能很好地扩展到超过少数几个样本;即使是 GPT-3 也只能处理多达 2048 tokens 的序列。虽然有一些Transformer 变体可以处理更长的上下文,但这种模型在多大程度上能很好地利用 long context spans 上的 priming examples ,还有待研究。

      priming 是无监督的,因此它的效果不如 PET ,这是可以预期的。

    • 我们通过更仔细地观察 GPT-3 的结果来进一步研究 priming 的有效性。为此,Figure 5 显示了在每个任务和模型大小的情况下,用 32 个样本给GPT-3 执行 priming 、以及只用一个样本来 priming 之间的性能差异。可以看到:

      • 对于大多数任务和模型大小来说,用 32 个样本的 priming 只能稍微提高性能。

      • 对于某些任务,增加更多的样本甚至会导致更差的性能,特别是对于较小的模型。

      • 对于 ReCoRD ,即使是最大的模型,在添加更多的样本时,其性能也略有下降。

      Figure 5 的底部一行显示了用 PET 训练的 ALBERT (没有蒸馏)、以及完全无监督的 ALBERT 模型在所有任务上的性能差异。虽然由于底层模型的不同、以及 PVP 的不同,结果不能直接比较,但 PET 的结果与 priming 相比有更大的性能改进,并且在任何任务中都不会使结果恶化。

  5. 模型类型:我们接下来通过比较 ALBERTRoBERTa_largeGPT-2_medium 来研究底层语言模型对 PET 的影响。由于GPT-2 是一个类似于 GPT-3 的单向模型,它只能处理 mask token 是最后一个 token 的模式。因此,我们对 CBRTE 使用 pGPT-3 ;对于MultiRC ,我们坚持使用我们的原始的模式集合,因为它们已经满足了这个要求。我们也不进行蒸馏,而是报告 ensemble 的性能,因为没有既定的方法为 GPT-2 配置一个 sequence classification head

    Table 4 中用 PET 训练所有三种语言模型的结果表明:

    • 使用 ALBERT 作为底层语言模型对 PET 的强大性能至关重要。

    • RoBERTa 而不是 ALBERT 会导致平均性能下降 8 分。然而,RoBERTa 仍然明显优于 GPT-3 13B ,后者比 RoBERTa 大两个数量级。

    • 使用 GPT-2PET 的性能比使用 ALBERTRoBERTa 这两个模型的性能差得多。正如 GPT-3 所预料的那样,性能下降的一个原因可能是,与 GPT-3 一样,GPT-2 是单向的,使需要比较两个序列的任务成为一种挑战。然而,需要注意的是,GPT-2 和其他两个模型之间也有其他实质性的差异,最明显的是预训练数据集。

      不管单向性是否是 GPT-2 表现不佳的原因,底层语言模型的双向性对 PET 很重要,因为它消除了 mask token 在最末尾的需要,从而使模式的创建更加灵活。

      单向性不是问题,GPT-3 175B 也是单向的模型,但是在这类任务上可以达到 SOTA

  6. 带有多个 masksPET:我们对 PET 进行了修改,使其能够适用于需要输出多个 tokens 。为了研究这一修改的影响,我们研究了需要这样做的三个任务: COPA, WSC, ReCoRD 。我们比较了三种策略:

    • 我们的解码策略:即按照分配给它们的概率的顺序来预测 tokens ,我们称之为 max-first

    • 从左到右解码(ltr ):这是许多自回归语言模型的常见做法。

    • 并行解码所有 tokensparallel ),这是训练期间所做的。

    注意:训练期间是并行解码、但是测试期间是采用了不同的解码策略。

    此外,我们将 PETuntrained ALBERT 进行比较,以衡量我们提出的训练损失的有效性。

    结果显示在下表中。可以看到:

    • 在三个任务中,PET 明显优于 untrained ALBERT

    • 不进行蒸馏会损害 COPA 的性能,但会导致 WSC 的轻微改善;对于 ReCoRD ,我们没有进行蒸馏,因为我们只使用一个 PVP

    • 除了 WSC 之外,我们的解码策略明显优于并行解码,因为 WSC 的大多数预测只由一个或两个 tokens 组成;我们的解码策略比从左到右的解码策略表现略好。

  7. 训练样本:回顾一下,我们用 FewGLUE 的训练样本进行实验,FewGLUE 是原始 SuperGLUE 训练数据集的一个随机选择的子集。我们使用一个固定的随机种子 s0 来生成 FewGLUE 。令 Σi 为随机种子 si 的随机选择的 SuperGLUE 子集,所以 s0=FewGLUE 。在本小节中,我们根据不同的种子创建了 SuperGLUE 的另外两个子集,Σ1,Σ2 。这使我们能够研究不同的训练样本集如何影响性能。为此,我们使用三个 ΣiCB, RTE, MultiRC 运行 PET 。为了只测量改变训练集的效果而忽略未标记样本,我们不使用知识蒸馏。

    下表显示,对于所有的任务,改变训练样本集会导致 PET 的性能差异很大。这突出了在比较不同的 few-shot 方法时,使用相同的样本集的重要性,这就是为什么我们公开了 FewGLUE 中的特定的样本集。然而,我们注意到,对于所有的随机数种子,PET 的平均性能与 GPT-3 的平均性能相似。

    虽然我们的结果似乎与GPT-3 的观点相反,即对 GPT-3 来说,样本的确切选择并不发挥主要作用。但我们怀疑这是由于 priming 从训练样本中获得的好处比 PET 少得多(如前所述),因此,训练样本的确切集合对 GPT-3 模型性能的影响较小。

六、Do Prompt-Based Models Really Understand the Meaning of Their Prompts?[2021]

论文:《Do Prompt-Based Models Really Understand the Meaning of Their Prompts?》

  1. 假设一个人得到两个句子: “在伊拉克还没有发现大规模杀伤性武器”、“在伊拉克发现大规模杀伤性武器”。现在,在没有给出任何其他额外信息的条件下,我们要求这个人回答句子类别是 0 还是 1 。在这种情况下,人们可能需要大量的试错才能清楚如何进行分类(比如,是判断语法是否错误?还是判断是否包含政治言论?)。这种设置类似于近年来在 NLP 中占主导地位的 pretrain-and-finetune 设置,在这种设置中,模型被要求将一个sentence representation (例如 CLS token )进行分类。

    相反,假设给一个人如下的 prompt:“假设 '在伊拉克还没有发现大规模杀伤性武器',那么 '在伊拉克发现大规模杀伤性武器' 这句话肯定正确吗?”。那么,这个人能够更准确地执行任务,而且不需要很多样本就能搞清楚任务是什么,这并不奇怪。

    同样地,用类似的 prompt 来重新设置 NLP 任务,与传统的 fine-tuned 模型相比,极大地提高了 zero-shotfew-shot 性能。这样的结果自然会产生这样的假设:每个输入样本中包含的额外 prompt text 作为语义上有意义的任务指令,帮助模型更快地学习,就像任务指令帮助人类更快地学习一样。这一假设被许多人隐含地假定,并被 《Natural instructions: Benchmarking generalization to new tasks from natural language instructions》PET以及 GPT-3 明确地论证了。

    虽然去年出现了论文淘金热,提出了 optimizing prompts 的自动化方法,但 《Cutting down on prompts and parameters: Simple few-shot learning with language models》 比较了这些新提出的方法的 representative sample ,并报告说 PET-2 的手动编写的 prompts 在一系列SuperGLUE 任务中的平均表现仍然优于自动搜索的 prompts 。这样的发现表明,专家起草的 prompts 是最好的,这加强了上述假设,即模型从有意义的指令中受益。

    在本文中,在 zero-shot/few-shot setting 上,我们通过评估各种语言模型在 NLI 上的表现来测试这一假设,使用超过 30 个手动编写的模板、以及 13LM target words ,总共超过 390prompts 。我们发现:

    • 在大多数情况下,当给出不相关或误导性的模板时,模型的学习速度与给出有指导意义的好模板时相同。

    • 此外,从 235M175B 参数的模型都表现出这种行为,instruction-tuned 的模型(这些模型是在数百个人工书写的 prompts 上训练出来的)也是如此。

    • 虽然我们证实了 T0 的发现,即 instruction tuning 大大改善了 prompts 的性能和稳健性,但我们也发现,从某种意义上说,instruction-tuned 模型可能过于稳健,与 non-instruction-tuned 模型相比,对 prompts 的语义不太敏感。

    • 最后,相对于指令模板的含义,模型对 LM target words的选择更为敏感。

    总而言之,尽管 prompt-based 模型在 zero-shot/few-shot learning 中得到了极大的改善,但我们发现有限的证据表明:模型的改善来自于模型以类似于人类使用任务指令的方式来理解任务指令。

    即,并没有很多证据来支持:模型能够理解 prompts 这个结论。

  2. 相关工作:

    • Prompt-Based Models:在撰写本文时,"prompt tuning""prompting" 这两个词可以指下面描述的三种方法中的任何一种或组合:

      • Discrete Prompts:用一些模板文本重新格式化每个样本。例如,在一个情感分析任务中,模板可以是 {sent} In summary, the restaurant is [prediction],其中 predicted mask word 可以通过一个预定义的映射(如:{"great" -> positive, "terrible" -> negative})被转换为一个 class prediction

        prompts 可以是手动编写的(PET《FLEX: Unifying evaluation for few-shot NLP》)或自动生成的(LM-BFFAutoPrompt)。这种方法通常会调优模型的所有参数,但它的 few-shot 的性能可以超过非常大的模型(例如GPT-3 175B ),尽管使用的是小 3 个数量级的语言模型(PET-2ADAPET)。

      • Priming(又称 in-context learning):将 kpriming examples 放置到 evaluation example 的前面,其中每个 priming example 都可以选择包装在一个模板中,如:

        值得注意的是,虽然模型看到了 labeled examples ,但模型的参数并没有收到基于这些例子的梯度更新。虽然这种方法很吸引人,但 GPT-3 报告说,它只在最大的 GPT-3 模型上表现良好,该模型的 API 成本很高,难以用于学术研究(详见附录B )。

      • Continuous Prompts:在样本前加上 special tokens ,这些 special tokens 可选择用 word embeddings 进行初始化;但在学习过程中,这些 special tokens 可以任意更新,这样 final embeddings 往往不对应于词表中的任何真正的单词(例如,《The power of scale for parameter-efficient prompt tuning》Prefix-Tning《Learning how to ask: Querying LMs with mixtures of soft prompts》)。这种方法通常能有效地调优小得多的模型参数集合,但这些方法还没有报告在 few-shot settings 下取得成功。

        此外,放弃用自然语言表达的prompts ,使得研究它们的语义变得更加困难,而且不清楚 continuous prompts 是作为 task-specific 指令、还是仅仅作为更有效的模型参数(详细分析见 《Towards a unified view of parameter-efficient transfer learning》)。

    • Analyses of Prompts:在本文中,我们专注于离散的 prompts ,因为我们可以手动编写并控制 prompts 的措辞和语义。我们通过模型的 k-shot 性能来衡量 prompt 语义的影响,其中 k={0,4,8,16,32,64,128,256}。这个设置类似于 《How many data points is a prompt worth?》 的研究,但他们的研究重点是将整个训练集上的传统微调与 PET-2 已有的一小组 prompts 进行比较,而我们的研究重点是在一组更多样化的 prompts 中的 few-shot learning ,旨在测试关于 prompt 语义对 few-shot learning 速度影响的具体假设。

      high-level 上,我们的研究结果与 《Natural instructions: Benchmarking generalization to new tasks from natural language instructions》 的说法相矛盾,即模型受益于从众包的 annotation guides 中改编的详细的指令。但要注意的是,他们对 "指令" 的定义更为宽泛,包括 priming examples ,他们发现 "GPT-3positive examples 中受益最多、从definition 中受益较轻、而在 negative examples 中则恶化"。换句话说,如果我们消融研究 priming ,把 "指令" 缩小到仅仅是对任务的描述,我们实际上也有同样的发现,即 instructionsno instructions 只有轻微的好处(参考我们的 irrelevant templates )。在类似的情况下, 《Can language models learn from explanations in context?》 的同期工作发现,prompt 的其他组成部分,如对 priming examples 是有帮助的,但模型对指令是否事实上描述了他们的任务是无动于衷的。

      最后,越来越多的同期工作也质疑模型需要有意义的指令的程度(《Prompt waywardness: The curious case of discretized interpretation of continuous prompts》《Grips: Gradient-free, edit-based instruction search for prompting large language models》)。一个特别值得注意的发现是,《Rethinking the role of demonstrations: What makes in-context learning work?》表明,模型在 priming 中使用不正确的标签和正确的标签时学习效果一样好,结论是 prompts 帮助模型学习输入文本的分布和 possible labels 的空间(而不是任务的特定指令)。

6.1 配置

  1. 我们实现了一个人工的 discrete prompt model ,其本质上与 PET-2 的模型相同,只是他们的实现包括一些 augmentations ,如 self-labeling 、以及多个 promptsensembling 以获得竞争结果。为了专注于测量 ensembling 本身的效果,我们的实现不包括这些 augmentations 功能。遵从 T0FLAN 之后,我们通过 target wordsrank classification 来评估。

  2. Baseline Model: 在初步实验中,我们对 BERT, DistilBERT, RoBERTa, ALBERT, T5 进行了微调和 prompt-tune 。我们发现 ALBERT 一直产生最好的性能(与 PET-2ADAPET 一致),所以我们使用它作为我们的基线模型。

  3. Instruction-Tuned Model:我们用两种规模的 T03B11B ),以及它们的 non instruction-tuned 版本 T5 LM-Adapted《The power of scale for parameter-efficient prompt tuning》)作为基线进行实验。

  4. Very Large Model:我们用最大的 GPT-3 (175B) 进行实验,通过 priming (又称in-context learning) )。

  5. 数据集:我们专注于 NLI ,因为所有的 T0 变体在其训练中都 holds out 所有的 NLI prompts 和所有的 NLI 数据集,这使得它可以与本文中的其他模型进行公平比较。我们使用 Recognizing Textual Entailment: RTE 数据集,具体而言是 RTESuperGLUE collection

  6. Random Seeds & Example Sampling:所有实验都是在同一组 4 个随机种子上运行的。在一个给定的种子中,所有模型看到的都是相同的例子集合。

  7. Statistical Tests:我们同时使用 ANOVA 和它的 nonparametric 等价物(即, Kruskal-Wallis test )。在发现多个模板之间的显著差异后,我们用独立 two-sample t-test andWilcoxon rank-sum test 来报告 pairwise significance

6.2 模板的效果

  1. 我们的研究问题是,模型是否将 prompts 理解为类似于人类的有意义的任务指令。为了直观起见,假设一个实验者向人类标注员提供了一个相当容易的任务的 informative 指令。如果标注员理解该指令,我们希望他们的表现比实验者故意提供误导性指令、实验者进行无关紧要的闲聊、或什么实验者都不说时要好。因此,我们编写了与这些不同情况相对应的各种 prompt 模板,并评估模型在zero-shot and few-shot setting 下使用这些模板的表现。

  2. 我们写了五类模板(Table 1 所示),每类模板至少有 5 个(指令性类别的模板则有 10 个):

    • Instructive:我们将如何向一个从未见过这项任务的人描述 NLI 任务。

    • Misleading-Moderate:指示模型执行与 NLI 相关或相近的任务,这样一来,如果模型按照明确的指令执行任务,它在 NLI 上的表现一般都会很差。

    • Misleading-Extreme:指示模型执行与 NLI 无关的任务。

    • Irrelevant:将 premise 、一个与任何 NLP 任务无关的句子、以及 hypothesis 拼接起来。

    • Null:将 premise 、以及 hypothesis 拼接起来,没有任何额外的文本。

    我们用 "prompt" 来指一个模板和一个 predefined LM target wordunique combination 。例如,{"yes" -> entailment, "no" -> non-entailment} 是模板 {premise} Should we assume that {hypothesis}? [prediction] 的默认 target words 。在这一节中,为了控制 target words 的影响,我们固定 target words"yes"/"no",这些 target words 始终表现最好。在下一节中,我们固定了模板,并研究了不同 target words 的影响。

    此外,我们进一步控制了标点符号、陈述式与询问式模板、以及拼接的顺序(总是 {premise} some template text {hypothesis}[prediction]). 的顺序)。

    经过初步实验,为避免偷梁换柱,本文所报道的所有 prompts 都是在评估前写好的,也就是说,除了一项明确研究标点符号影响的消融研究外,我们不允许追溯性地编辑 prompts 从而提高性能。

  3. 结果:

    • Irrelevant Templates:我们发现,用不相关模板训练的模型与用指令性模板训练的模型,学习速度一样快,在任何次数的 shots 中都没有实际差别( Figure 2 )。这对我们实验的所有模型和所有数据集都是如此,包括最大的 GPT-3Figure 6 )。

    • Misleading Templates:用中等误导性的模板(如 {premise} Can that be paraphrased as "{hypothesis}"?)与极度误导性的模板(如 {premise} Is this a sports news? {hypothesis}).)训练的模型性能之间没有一致的关系:

      • T03B11B )在中等误导性的情况下表现更好( Figure 3 )。

      • ALBERTT5 3B 在极端误导性的情况下表现更好(附录 EG.4 )。

      • T5 11BGPT-3 在这两组上的表现相当( Figure 6 ;统计意义的总结也见 Table 2 )。

      尽管两个误导性类别之间缺乏模式,然而,一致的是指令性模板上表现出明显更好的性能。

    • Null Templates:用空模板训练的模型的表现远不如其他类别的模板(所有空模板的结果见附录 G )。我们看到,尽管空模板在总体上要差得多,但其中的一些子集(例如,{premise}[mask] {hypothesis} )在 32-shots 上,仍然能够以几乎与平均指令性模板一样的速度学习(Figure 4 )。

      shots 数量较大时,{premise}[mask] {hypothesis} 与指令性模板的效果相差无几。

  4. Zero-Shot:到目前为止,我们主要关注的是 few-shot 的结果。在 zero-shot 时,所有模型(包括 GPT-3 175B )的表现都只略微高于随机猜测,除了指令微调的 T0 。因此,对于我们的zero-shot 性能分析,我们把重点放在 T0 上。 Figure 5 显示:

    • 在给定指令性模板和任何一类误导性模板的情况下,T0 3B 的性能没有实际差别。

    • T0 11B 的表现更好,尽管它也显示出在中度误导性模板和指令性模板之间没有实际差异。

    • 最后,T0++(比其他T0 变体在更多的数据集上训练过),是本文中唯一一个在所有类别的 prompts 中显示出统计学上显著不同性能的模型。然而,仍有一点需要注意的是,它在病态 prompts 方面的绝对表现可以说是太好,这一点我们将在接下来讨论。

  5. 讨论:回顾一下,文献中的一个共同假设是,prompts 需要专家清楚地、正确地描述手头的任务。与此相反,Table 2 总结说,除了 T0++zero-shot 的情况下,所有模型在一些病态的 prompts 下的表现基本上与正确的 prompts 下的表现一样好。值得注意的是,尽管 GPT-3 比它的竞争对手大得多,但它显示了相同的行为模式,这表明单纯的 scaling 并不能解决这个问题。同时,来自指令微调的证据是 mixed 的。尽管 《Multitask prompted training enables zero-shot task generalization》 正确地认为,指令微调在性能和稳健性方面产生了实质性的改善,但在区分正确指令和病态指令方面,T0 有些过于稳健,对 prompts 的语义不太敏感,相比于 few-shot setting 下同样大小的 T5Figure 6 )。

    zero-shot setting 中,我们确实看到,用最多的数据集对最大的模型指令进行微调( T0++ ),提高了模型对 prompts 语义的敏感性。这是一个积极的结果,但它伴随着一个警告:仍然存在许多病态 prompts 的例子,它们的表现与正确的 prompts 一样好。为了对神经模型中的随机性持宽容态度,我们以更高的标准来要求这项研究,用统计测试来比较类别之间的平均值和中位数。尽管如此,对于我们的研究问题来说,仅仅是存在性证明仍然是令人震惊的。例如,在没有任何梯度更新也没有 priming 的情况下,令人震惊的是,开箱即用的 T0++ 在极度误导性的 {premise} Is that grammatically correct? {hypothesis} 下达到了 78% 的准确率,在中等误导性的指令 {premise} Are we justified insaying "{hypothesis}"? 下达到了相同的准确率。如果模型真的是在对文本是否符合语法进行分类,它的得分只有 52.7% ,因为 RTE 是由专家写的,所有的例子都是符合语法的。

    即使是表现不佳的模板,指令性模板似乎也是太好。例如,很难想象一个人在像 NLI 这样细微的任务中用 prompt{premise} Inflections are annoying and thank god that Middle English got rid of most of them. {hypothesis}zero-shot setting 中得到 72%

6.3 Effect of Target Words

  1. 在这个实验中,我们研究了在一个固定的模板下不同的 LM target words 的效果。我们写了四类 target word ,每类至少有 3target words (除了 yes-no 类):

    • Yes-no:模型将 entailment 预测为 "Yes" 、将 nonentailment 预测为 "No"

    • Yes-no-like:语义上等同于 yes-no ,但使用表面上不同的词,例如,"true"/"false""positive"/"negative"

    • Arbitrary:语义上与任务没有关系的任意单词,如 "cat" 代表 entailment"dog" 代表 non-entailment

    • Reversed:模型预测出直观上与 Yes-no 相反的表情,如将 nonentailment 预测为 "Yes" 、将 entailment 预测为 "No"

    全部清单见附录 F.3 。在 Arbitrary 类别中,除了 《How many data points is a prompt worth?》 所使用的常见的英语名字之外,我们还包括语义相似度高的 word pairs、相似度低的 word pairs 、以及在英语中高度频繁出现的 word pairs ,但我们发现在 Arbitrary 类别的这些不同子类别中没有一致的差异。

  2. 结果:对于 ALBERTT0 ,我们发现用 yes-no targets 训练的模型比用 yes-no-like targets 训练的模型要学习的更快,比用 arbitrary targets 训练的模型和 reversed targets 训练的模型要快得多。例如,Figure 7 显示了用不同 target words 训练出来的表现最好的指令性模板。在 32 shots"yes"/"no""no"/"yes" 的中位准确率之间的差异是 22.2% ,远远大于不同类别模板的效果差异。对所有模板和 targets 的组合进行汇总, Figure 8 证实了 target words 的选择比模板的含义重要得多。

  3. 讨论:模型在使用arbitrary targetsreversed target words 时,学习速度始终较慢,这是一个积极的结果:这种类型的性能差异与我们对模型的预期是一致的,因为模型对单词的语义敏感。然而,这些实验中也有几个重要的负面结果。

    • 首先,target words 的影响凌驾于整体 prompt 的语义之上。考虑两种模板与 targets 的组合:

      • 一个不相关的或误导性的模板 + yes-no targets,例如, {premise} Does the paragraph start with "the"?[yes/no] {hypothesis}

      • 一个有指导意义的模板 + arbitrary targets,例如:{premise} Based on the previous passage, is it true that "{hypothesis}"? [cat/dog]

      Figure 1 显示,像第一种组合往往大大超过了第二种组合的表现。然而,第二种组合只需要弄清一个映射: "Reply 'cat' if entailed and reply 'dog' if not entailed" 。对于人类来说,这可以在 a few shots 中学会,例如, 《Universal and uniquely human factors in spontaneous number perception》 表明,对于 { more numerous -> star shape, less numerous -> diamond shape} 的任意映射,成年人可以在 18 次试验中达到 60% 的准确率,而不需要接受任何语言指令。相比之下,许多 arbitrary targets 下的模型,即使在有指令性模板的 64 shots 中,也很难达到 60% 的中位准确率( Figure 10 的绿色、Figure 7 的红色和紫色)。

    • 此外,即使给出直观的 yes-no-like targets ,如 "agree"/"disagree""good"/"bad" ,模型的学习速度也比给出 "yes"/"no" 时慢很多。如 Figure 7 (绿色与深绿色)和 Figure 8x 轴的第一组与第二组)所示,在 yes-no targetsyes-no-like targets targets 之间存在着巨大的性能差距,直到 256 shots 时才缩小。

      此外,当我们试图通过在模板上附加 "True or false?"target hints 来帮助模型时,性能往往反而下降,这与 T0FLAN 的发现相呼应,即在输入序列中包括 answer choices 使模型在某些任务中表现更差。

6.4 总体讨论

  1. Summary and Interpretation:我们的主要研究问题是,模型是否将 prompts 理解为类似于人类的有意义的任务指令。同样,假设一个实验者向人类标注员提供了一个相当容易的任务的 informative 指令。如果标注员理解该指令,我们期望他们的表现比实验者提供误导性的指令、不相关的指令、或根本没有指令时更好。前面的实验显示,大多数模型的性能对指令性模板和不相关模板之间的差异不敏感、对指令性模板和误导性模板之间的差异适度敏感、对指令性模板和空模板之间的差异高度敏感。

    然而,与模板的影响相比,进一步的实验显示,模型对 target words 的语义更加敏感:它们对 arbitrary target wordsreversed target words 的学习速度要慢得多。然而,它们对语义等价的 yes-no-like words 过于敏感(即 "agree"/"disagree" 的表现比 "yes"/"no" 差得多)。而且 target words 的选择凌驾于模板的语义之上(例如,给定一个具有 "yes"/"no" targets 的无关模板,比具有 arbitrary targets"cat/dot" 的指令性模板的表现好得多)。

    我们在本文中的主要论点与最近的一系列研究有着相同的逻辑,即语言模型在理想条件下取得良好表现的事实不足以建立语言理解,因为它们在人类灾难性地失败的病态条件(例如,有随机混洗的词序的句子)下也能取得成功。换句话说,模型如此擅长从病态输入中推断出 gold labels 的事实,使人们对模型的推断方式是否与人类的推断方式相似产生了重大怀疑。对于我们的结果,模型如此善于从病态指令中学习的事实,同样使人怀疑模型是否以任何类似于人类理解指令的方式将 prompts 理解为指令。

  2. 其他解释和未来方向:与任何外在的评价一样,准确率不能直接衡量 understanding 。例如,一个人可以完全理解一个指令,但是由于任务本身太难(缺乏能力),或者由于他们出于某种原因忽略了指令(缺乏服从性),他们对指令性模板和不相关的模板的准确率仍然是一样的。我们在下面讨论这两种可能性。

    • 缺乏能力:这主要是对 zero shots 下的 non-instruction-tuned 模型的关注,所有模型的表现都只略高于随机猜测,因此,模板类别之间缺乏统计学意义,对于模型是否缺乏对 NLI 指令的理解、以及模型是否缺乏 NLI 任务本身的能力是模糊的。这就是为什么我们的研究主要集中在 few-shot setting ,在这种情况下,缺乏能力就不那么令人担忧了,因为模型确实有能力达到良好的准确率,只是适度低于 SOTAnon-few-shot 模型。

      NLI 指令的理解:知道 “指令” 的含义。

      NLI 任务本身的理解:知道 NLI 任务是怎么做。

      另一个反驳是,也许从来没有模型真正推理出一个premise 是否蕴含一个 hypothesis 。也许它们只是利用了虚假的或启发式的特征,而且,如果它们能够正确地推理出蕴含关系,那么 NLI 指令的含义就会很重要。这个论点是可能的,不过:

      • 首先,它取决于 NLI (或任何其他行为评估)能在多大程度上衡量语言理解,这是一个超出本文范围的复杂争论。

      • 其次,在初步实验中(附录 K ),我们的模型实际上很好地 zero-shot 迁移到了 HANS ,一个旨在诊断模型使用 NLI heuristics 的数据集,效果相当好。因此,模型不太可能在推理蕴含关系方面完全无能而只依赖启发式方法。

      无论如何,进一步区分理解任务指令的能力与理解任务本身的能力是未来工作的一个重要方向。

    • 缺乏服从性:另一种解释是,不相关的 prompts 与指令性的 prompts 表现相同,因为模型只是完全忽略了这些 prompts 。然而,仅仅是缺乏服从性并不能解释我们的结果。如果模型真的忽略了这些 prompts ,我们就不应该看到任何类别的 prompts 之间有任何系统性的差异。相反,我们确实看到了一致的模式,即指令性模版和不相关的模板使模型的学习速度明显快于误导性模板和空模板( Table 2 )。

      一个更细微的反驳是,尽管模型没有完全忽视他们的 prompts ,但也许模型 "takes less effort" 从而使用虚假特征或启发式特征进行预测,而不是正确遵循指令所需的更复杂的句法特征或语义特征(《Predicting inductive biases of pretrained models》《Learning which features matter: RoBERTa acquires a preference for linguistic generalizations (eventually)》)。然而,仅靠虚假的特征同样不能解释观察到的性能差距。回顾一下,在每个随机种子中,所有的模型都看到完全相同的训练样本(具有相同的虚假特征)。因此,就模型对某些 prompts 的表现与其他 prompts 不同而言,这可能是由于 prompts 中的(虚假的或语义的)特征与数据样本中的虚假的特征之间的一些复杂的交互。这种交互的一个可能的例子是,标点符号对 irrelevant 模板有很大的影响,但有指令性的模板似乎能够抑制这种影响(附录 A )。调查这种交互的性质是未来工作的一个有希望的方向,它提出了一种 prompt 的语义可能重要的方式,例如,通过影响模型的 inductive bias ,即使模型不以人类的方式解释或使用指令。

七、How Many Data Points is a Prompt Worth[2021]

论文:《How Many Data Points is a Prompt Worth?》

  1. pretrained 模型用于分类任务的主要方法是通过显式的 classifier head 进行微调。然而,另一种方法已经出现:通过自回归文本生成、或完形填空任务完成来直接将 pretrained 语言模型调整为 predictor 。这种方法在 T5 微调中被广泛使用,取得了SuperGLUE 基准测试的 SOTA 结果。

    直接的 language generation 进行分类的一个观点是,它允许我们为每个任务选择自定义的 prompts 。这种方法可以用于 zero-shot 分类或 priming ,在低数据情况下,它也可以在微调中提供额外的任务信息给 classifier

    如果这个观点确实成立,那么自然会问它对模型的样本效率(sample efficiency )有什么影响,或者更直接地说,一个 prompt 价值多少个数据点?与许多低数据和 pretraining-based 的问题一样,这个问题在微调设置、训练过程、以及 prompts 本身的影响下变得复杂。我们通过使用多样的 prompts 、多次运行、以及低训练数据微调的最佳实践,从而来分离这些变量。我们引入了一个度量标准,即平均数据优势(average data advantage ),来量化 prompt 在实践中的影响。

    我们的实验发现,task-targeted prompting 的影响可以很好地用直接训练数据来量化,并且在不同任务的性质上存在差异:

    • MNLI 上,我们发现使用一个 prompt 大约相当于增加了 3500 个数据点。

    • SuperGLUE 上,在 RTE 上一个 prompt 大约相当于增加了大约 280 个数据点、在BoolQ 上相当于增加了 750 个数据点。

    在低到中等数据量的情况下,这种优势可以对模型的训练作出实质性的贡献。

  2. 相关工作:

    • prompting 已经在基于 zero-shot 和基于微调方法中被使用过。

      • zero-shot 方法试图通过generation 利用 prompt 而无需通过微调来回答一个任务(GPT-2)。

      • GPT-3 将这种方法扩展为一种 supervised priming 方法,通过将训练数据作为 priming 在推理时使用,以便在回答问题时能够关注它们。

      • T5 和其他 sequence-to-sequencepretrained 模型使用带有 marker prompt 的标准的 word-based 的微调来回答分类任务,并取得了强有力的实验成功。

      我们的设置与此不同,我们对使用 task-based prompts and finetuning 感兴趣,介于 T5GPT-2 之间。

    • 我们的设置与 PET 最为相似,它声称 task-specific prompting 有助于迁移学习,特别是在低数据情况下。然而,为了在SuperGLUE 上获得最佳结果,PET 引入了几个其他扩展:通过额外的 pseudo-labeled data 进行半监督学习、使用多个不同prompts 来训练的模型进行 ensembling ,并将 ensemble 蒸馏为线性分类器而不是语言模型。

      我们的目标是在 supervised fine-tuning 中分离出 prompting 的具体贡献。

    • 最后,最近的论文实验了通过针对语言模型进行自动化流程来发现 prompts 的方法(LPAQA《Automatically identifying words that can serve as labels for few-shot text classification》)。我们限制自己使用人工编写的 prompts ,因为我们想要确定 prompting 本身是否对 supervised task 增加了信息。关于 automatic prompts 是否能够产生相同的影响,这是一个有趣的问题。

7.1 实验设置

  1. 考虑文本分类的两种迁移学习设置:

    • head-based :采用一个通用的 head layer 接受 pretrained representations 并预测输出类别。

    • prompt-based:采用一个 task-specific pattern 字符串,以引导模型生成与给定类别相对应的文本输出。

    这两种方法都可以用于使用监督训练数据进行微调,但 prompts 进一步允许用户自定义 pattern 以帮助模型。

    注意:prompt-based 微调是采用 PET 的方案,即微调 LM head 从而适配 prompt

    head-based 方案是微调 LM head 从而适配 label (通常是 0/1 之类的 class 编号)。

    对于 prompt model ,我们遵循 PET 中的符号,并将 prompt 分解为 patternverbalizerpattern 将输入文本转化为完形填空任务,即一个带有单个或多个 masked tokens (这些 tokens 需要被任务所填充)的序列。

    masked word prediction 被映射到一个 verbalizer ,它生成一个 class (如,"Yes" 映射到 True"No" 映射到 False )。对于同一个任务,可以使用多个 pattern-verbalizer pairs: PVPs ,它们之间可以在 patternverbalizer、或者 pattern and verbalizer 上有所差异。

    微调是通过训练模型生成正确的 verbalization 来完成的。损失函数是正确答案与 verbalizer 中各 tokens 的概率分布之间的交叉熵损失。我们复用了 PET-2 中的pattern choices ,示例可在附录 A 中找到。

  2. 我们使用相同的 pretrained checkpointroberta-large ,包含 355M 参数)来运行所有实验,我们从 transformers library 中加载它。根据先前的观察, head-based fine-tuning 性能存在相当大的变化。我们遵循 《On the stability of fine-tuning bert: Misconceptions, explanations, and strong baselines》《Revisiting few-sample bert fine-tuning》 的建议,在低学习率( 105 )下训练大量的 steps (至少 250 步,可能超过 100 epochs )。

    我们在 SuperGLUEMNLI 上进行评估。这些数据集包含各种任务,都是英文的,包括 entailment 任务(MNLIRTECB),多项选择问答任务(BoolQMultiRC)、常识推理任务(WSCCOPAWiC)。我们不将 ReCoRD 纳入比较范围,因为它已经是一个完形填空任务,没有 head-based 模型可供比较。数据大小从 CB250 个数据点到 MNLI392702个数据点。由于SuperGLUE 任务的测试数据不公开,我们保留一部分训练数据(从 CBCOPAMultiRC50 个数据点,到 BoolQ500 个数据点)用于 dev ,并在它们的原始验证集上进行评估。对于 MNLI ,我们使用可用的对应的验证集和测试集。

    我们在可用数据的规模上比较模型,从 10 个数据点开始指数级增加(因为高数据性能往往饱和)直到完整数据集。例如,对于MultiRC ,初始数据点为 969 个,我们首先保留 50 个数据点用于 dev 。这样,我们就有了 919 个训练数据点,并且我们使用10、15、20、32、50、70、100、150、200、320、500、750、919 个训练数据点来训练模型。我们每个实验运行 4 次以减小方差,总共在所有任务中进行了 1892training runs 。在每个点上,我们报告了在该数据量或更低数据量下达到的最佳性能。完整的图表可在附录 B 中找到。

7.2 实验

  1. Figure 1 展示了使用 head-based fine-tuning 与具有最佳性能 patternprompt-based fine-tuning 之间进行对比的主要结果。除了 WiC 任务外,prompting 在每个任务上都具有显著优势,这与之前的结果(PET-2)报告的结果一致。随着更多的训练数据,两种方法都有所改进,但 prompting 始终更好,优势的大小各不相同。SuperGLUE 中的许多任务具有相对较少的数据点,但在像 BoolQMNLI 这样的大型数据集中我们也看到了优势。

    为了量化 prompts 值得多少数据点,我们首先确定两条曲线在准确率上匹配的最低准确率和最高准确率的 y 轴的条带。在这些点的水平线表示 prompting 的优势。然后我们计算该区域的积分,即线性插值曲线之间的面积,除以条带的高度。面积的维度为数据点的数量乘以度量单位,因此除以性能范围就得到了数据点的优势数量。由于 low data training 对噪声敏感,除了遵循最佳训练实践外,我们对每个 x 点运行了几个不同的实验。我们使用 bootstrapping 来估计这些 runs 的置信度。具体来说,我们hold out 4 head runs4 prompt runs (共 16 个组合)中的一个,并计算这些结果的标准差。

    我们将这些数量报告在 Table 1 中作为平均优势。对于几乎所有的任务,我们可以看到 prompting 在数据效率方面具有显著的优势,平均而言相当于增加了数百个数据点。

    两条曲线之间的面积,单位是 data point * accuracy 。这个面积除以 highest acc - lowest acc 就得到数据点的数量。

  2. 分析:

    • Impact of Pattern vs Verbalizerprompts 的直觉是,即使只有很少的训练数据,它们也能以自然语言形式引入任务描述。为了更好地理解 promptszero-shot 和自适应特性,我们考虑了一个 null verbalizer ,这是一个对照组,其中的 verbalizer 没有经过训练因此无法提供语义信息。对于每个需要填充一个单词的任务(不包括更自由形式的 COPAWSC ),我们将 verbalizers (例如 "yes", "no", "maybe", "right" or "wrong" )替换为随机的名字 。

      这里的 null verbalizer 就是 《Do Prompt-Based Models Really Understand the Meaning of Their Prompts?》 中的 arbitrary targets

      Table 1 显示了标准的 prompts 相对于 null verbalizer 的优势。我们发现对于像 CB 这样的小数据任务, null verbalizer 削弱了 prompts 的许多好处。然而,随着更多的训练数据,模型似乎适应了 verbalizer ,同时仍然获得了 patterninductive bias 优势。

      Figure 2 展示了在 MNLI 上的这种 dynamic 。这个结果进一步表明,即使它与训练的 generation 过程不是直接类似,prompting 仍然能够提供 data efficiency

    • Impact of Different Prompts:如果 prompt 作为任务的描述,人们会期望不同的有效描述有不同的好处。为了比较我们在每个任务上使用的不同 prompts ,我们绘制了每个 prompt 在不同 runs 中的中位数性能。在几乎每个实验中,我们发现这些曲线的置信区间在很大程度上重叠,这意味着 prompt choice 不是一个主要的超参数,即随机种子之间的方差通常超过了 prompt choice 的可能好处。唯一的例外是 BoolQ 的低数据区域,在这个区域内,其中一个 prompt 相对于其他 prompts 具有显著的 few-shot 优势。我们在 Figure 3 中绘制了 MultiRC 的这条曲线,其余曲线见附录 C

    • 指标敏感性:在计算 advantage 时,我们线性地处理每个指标;或者,我们可以为每个任务重新参数化 y 轴。这个选择对于 prompting 没有一致的影响。例如,强调接近收敛的 gain 会增加 CBMNLI 上的 prompting advantage ,但会减少 COPABoolQ 上的 prompting advantage

八、Rethinking the Role of Demonstrations[2022]

论文:《Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?》

  1. 大型语言模型能够执行 in-context learn :通过对少量的 (input, label) pair (即,demonstrations )进行调节(conditioning )并对新的输入进行预测,从而仅仅通过inference 来执行一项新的任务。然而,人们对模型如何学习、以及 demonstrations 的哪些方面有助于最终的任务表现了解甚少。

    在本文中,我们表明,有效的 in-context learning 其实并不需要 ground truth demonstrations 。具体来说,在一系列分类任务和多项选择任务中,用随机标签取代 demonstrations 中的标签几乎不会损害性能(Figure 1 )。这一结果在包括 GPT-3 系列在内的 12 种不同的模型中是一致的。这强烈地表明,违背直觉地,该模型并不依赖 demonstrations 中的 input-label mapping 来执行任务。

    进一步的分析调查了 demonstrations 的哪些部分确实对性能有贡献。我们确定了 demonstrations 的可能方面(例如,label space 和输入文本的分布),并评估了一系列 demonstrations 的变体,以量化每个变体的影响。我们发现:

    • demonstrations 所指定的label space 、以及输入文本的分布都是 in-context learning 的关键(不管标签对单个输入是否正确)。

    • 指定整体格式也很关键,例如,当 label space 未知时,使用随机的英语单词作为标签明显优于不使用标签。

    • in-context learning objectivemeta-trainingMetaICL)放大了这些效果:模型几乎只利用了 demonstrations 的较简单方面(如格式),而不是 input-label mapping

    总之,我们的分析提供了一种理解 demonstrationsin-context learning 中的作用的新方法。我们的经验表明:

    • 模型反直觉地并不像我们想象的那样依赖于 demonstrations 中提供的 ground truth input-label mapping

    • 但是模型仍然受益于对 label space 、以及输入分布(这二者都由 demonstrations 指定)的了解。

    《Do Prompt-Based Models Really Understand the Meaning of Their Prompts?》 的结论,即:模型对 target words 非常敏感,而模板则不那么重要。

    在本文中,作者不考虑模板而是直接拼接样本,所以这里的 ”输入分布“ 就是样本的分布;作者固定了 target words,同时考虑在 label space 内部随机分配标签(而不是在词表空间中随机分配 target words )。

  2. 相关工作:大型语言模型一直是在广泛的下游任务中表现强劲的关键。虽然微调一直是迁移到新任务的流行方法(BERT ),但微调一个非常大的模型(如 10B 参数)往往是不切实际的。GPT-3 提出 in-context learning 作为学习新任务的另一种方式。如 Figure 2 所示,语言模型仅通过推理来学习一个新的任务,通过以 demonstrations 为条件(demonstrations 是通过拼接训练样本而来),没有任何梯度更新。

    in-context learning 自推出以来一直是重要的研究焦点。之前的工作提出了更好的问题表述方式、更好的选择标记样本从而用于 demonstrations 、带有显式的 in-context learning objectivemeta-training 、以及学习 follow instructions 从而作为 in-context learning 的变种。同时,一些工作报告了 in-context learning 的脆弱性和过度敏感性。

    相对来说,在理解为什么 in-context learning 有效方面做的工作较少。

    • 《An explanation of in-context learning as implicit bayesian inference》 提供了理论分析,认为 in-context learning 可以被形式化为贝叶斯推断,利用 demonstrations 来恢复潜在的概念。

    • 《Impact of pretraining term frequencies on few-shot reasoning》表明, in-context learning 的表现与预训练数据中的term 频率高度相关。

    据我们所知,本文是第一篇提供实证分析的文章,研究了为什么 in-context learningzero-shot inference 取得了性能提升。我们发现,demonstrations 中的 ground truth input-label mapping 只有很小的影响;我们还衡量了 demonstrations 中更细粒度的方面的影响。

8.1 实验配置

  1. 模型:我们总共实验了 12 个模型。我们包括 6 个语言模型(Table 1 所示),它们都是 decoder-only 、稠密的语言模型。 我们遵从 Channel Prompt Tuning 的做法,将每个语言模型用两种推理方法,即 directchannel 。语言模型的大小从 774M175B 不等。我们包括在进行实验时最大的稠密语言模型(GPT-3 )和最大的公开发布的稠密语言模型(fairseq 13B)。我们还包括MetaICL ,它是从GPT-2 Large 初始化的,然后在具有 in-context learning objective 的监督数据集集合上进行 meta-train ,并确保我们的评估数据集与 meta-training 时使用的数据集不重叠。

  2. 评估数据:我们在 26 个数据集上进行评估,包括情感分析、转述检测、自然语言推理、仇恨言论检测、问答和句子补全,如下表所示。我们使用这些数据集是因为它们:

    • 是真正的低资源数据集,只有不到 1 万个训练样本。

    • 包括 GLUESuper-GLUE 中经过充分研究的基准.

    • 涵盖了包括科学、社交媒体、金融等不同领域。

  3. 其它细节:

    • 除非另有说明,我们在本文的所有实验中默认使用 k=16 个样本作为 demonstrations

      根据经验,不同的 k 值可能会得出不同的结论。作者提供了 k 的消融分析,说明了结论在 k 的不同取值上都成立。

    • 样本是在训练数据中均匀采样的。

    • 我们使用 5 个不同的随机数种子选择一组 k 个训练样本,每个随机数种子运行实验 5 次。

    • 对于 fairseq 13BGPT-3 ,由于资源有限,我们用数据集的一个子集和 3 个随机种子进行实验。

    • 我们报告了分类任务的 Macro-F1 和多项选择任务的 Accuracy 指标。我们计算每个数据集的所有种子上的平均数,然后报告数据集的 macro-average

    • 我们使用 minimal templates ,从一个样本中形成一个输入序列(即,没有添加除了样本的 input textlabel 之外的任何文本),如 Figure 2 所示。

      即,这里没有采用任何 prompt 文本。作者对不同的模板也提供了消融分析。

    更多细节请参考附录 B 。所有的实验都可以从 github.com/Alrope123/rethinking-demonstrations 中重复进行。

8.2 Ground Truth 不重要

8.2.1 Gold labels vs. random labels

  1. 为了了解 demonstrations 中正确配对的 inputs and labels 的影响(我们称之为 ground truth input-label mapping ),我们比较了以下三种方法:

    • No demonstrations:一种典型的 zero-shot 方法,不使用任何标记数据。预测是通过 argmaxyCP(yx) 进行的,其中 xtest inputC 是一个所有可能的标签构成的一个小的、离散的集合。

    • Demonstrations w/ gold labels:一种典型的 in-context learning 方法,使用了 k 个标记样本 (x1,y1),,(xk,yk)。通过 argmaxyCP(yx1,y1,,xk,yk,x)kinput-label pairs 拼接起来进行预测。

    • Demonstrations w/ random labels:用随机标签而不是来自 gold labels 数据的 gold labels 而形成的。每个 xi(1ik) 与从 C 中均匀随机采样的 y~i 配对。然后拼接 (x1,y~1),,(xk,y~k) ,并通过 argmaxyCP(yx1,y~1,,xk,y~k,x) 来进行预测。

      注意:这里的随机标签指的是从 label space 中随机采样的,而不是任意的、从词表中随机采样的文本。

    实验结果如 Figure 3 所示。

    • 首先,使用 demonstrations with gold labels ,比 no demonstrations 的性能明显提高,这在之前的许多工作中一直被发现。

    • 其次,我们发现,用随机标签替换 gold labels 只会对性能造成轻微的损害。这一趋势在几乎所有的模型上都是一致的:性能下降的绝对范围是 0-5% 。在多项选择任务中替换标签的影响(平均 1.7% )小于分类任务(绝对 2.6% )。

      这一结果表明,要想获得性能上的提高,并不需要 ground truth input-label pairs 。这是反直觉的,因为在典型的监督训练中,正确配对的训练数据是至关重要的:它可以告知模型执行下游任务所需的预期的 input-label 对应关系。因此,这些模型在下游任务中确实取得了非同寻常的表现。这有力地表明,这些模型能够恢复任务的预期的 input-label 对应关系。然而,这种 input-label 对应关系并不是直接从 demonstrations 中的配对中得到的。

    • 同样值得注意的是,MetaICL 的性能下降特别少:绝对值为 0.1-0.9% 。这表明,带有显式的 in-context learning objectivemeta-training 实际上鼓励模型基本上忽略了 input-label mapping ,而利用了 demonstrations 中的其他部分。

  2. 下图是所有模型都是在 3 个分类任务和 3 个多项选择任务上评估的,因此可以相互比较。

  3. 在附录 C.2 (如下图所示)中,我们提供了额外的结果,显示:

    • 从标签的真实分布(而不是均匀分布)中选择随机标签,可以进一步缩小差距。

      下图中,顶部两个子图表示均匀分布中采样、底部两个子图表示从真实分布中采样,纵轴表示与 demonstrations with gold labelsgap

    • 趋势可能取决于数据集,尽管总体趋势在大多数数据集上是一致的。

8.2.2 消融分析

  1. 对于消融分析,我们在 5 个分类数据集、4 个多项选择数据集上实验。

  2. 正确标签的数量是否重要:为了进一步研究 demonstrations 中标签的正确率的影响,我们通过改变 demonstrations 中正确标签的数量来进行消融分析。我们评估了 "有 a% 正确标签的 demonstrations "(0a100),其中包括 k×a/100 个正确的 pairs 、以及 k×(1a/100) 个不正确的 pairs (如 Algorithm 1 所示)。这里,a=100 是典型的in-context learning ,即 demonstrations w/ gold labels

    即,a% 比例的正确标记样本、(100a)% 比例的错误标记样本。

    结果在 Figure 4 中报告。模型性能对 demonstrations 中正确标签的数量相当不敏感。

    • 事实上,总是使用不正确的标签明显优于 no-demonstrations 的情况,例如:在分类任务中使用 MetaICL 、在多项选择任务中使用 MetaICL 、在多项选择中使用 GPT-J ,分别得到了 92%, 100%, 97% 的改进。

    • 相比之下,分类任务中的 GPT-J 在更多的错误标签下性能下降相对明显,例如,当总是使用错误的标签时,性能下降近 10% 。不过,总是使用不正确的标签还是明显好于 no demonstrations 的情况。

  3. 这个结果是否在不同的 k 之间保持一致:我们研究了 demonstrationsinput-label pairs 的数量(k )的影响。结果在 Figure 5 中报告。

    • 首先,即使在小 kk=4 )的情况下,使用 demonstrations 也明显优于 no demonstrations 的方法,而且在不同 k 的情况下,从使用 gold labels 到使用 random labels 的性能下降始终很小,在 0.8 -1.6% 之间。

      demonstrations 优于 no demonstrations 的方法,数据在哪里?作者没有说明。

    • 有趣的是,当 k=8 之后,模型性能并没有随着 k 的增加而增加,无论是使用 gold labels 还是使用 random labels 。这与典型的监督训练相反,在监督训练中,模型性能随着 k 的增加而迅速提高,特别是当 k 较小时。我们假设,更大的标记数据主要有利于监督 input-label 对应关系,而数据的其他组成部分(如,样本输入、样本标签、数据格式)更容易从小数据中恢复,这有可能是较大的 k 的性能提升最小的原因。

      虽然 k 更大意味着更多的标记样本,但是这些标记样本并没有提供监督学习(即,梯度更新)。

  4. 这个结果是否在更好的模版上保持一致:虽然我们默认使用 minimal templates ,但我们也探索了手动模板,即以特定数据集的方式手动编写的模板,这些模板取自先前的工作(如 Table 3 所示)。Figure 6 显示,这一趋势(即,用 random labels 替换 random labels 几乎没有损害性能)在手动模板上也是如此。值得注意的是,使用手动模板并不总是优于使用 minimal templates

8.3 为什么 In-Context Learning 有效

  1. 如前所述,demonstrations 中的 ground truth input-label mappingin-context learning 的性能提升影响很小。本节进一步研究了 demonstrations 中还有哪些方面导致了 in-context learning 的良好表现。我们确定了 demonstrations (x1,y1),,(xk,yk) 的四个方面,这些方面可能提供 learning signal (如 Figure 7所示)。

    • input-label mapping:即每个输入xi 是否与一个正确的标签 yi 配对。

    • 输入文本的分布:即 x1,,xk 的底层分布。

    • label space:即 y1,,yk 所覆盖的空间。

    • 格式:具体来说,就是使用 input-label pairing 作为格式。

    我们设计了一系列关于 demonstrations 的变体,对每个方面的影响进行了单独量化。 然后,我们还讨论了具有 in-context learning objectivemeta-training 所得到的模型的趋势。在所有的实验中,模型都在 5 个分类数据集和 4 个多项选择数据集上进行了评估。实施细节和实例演示分别见附录 BTable 4

8.3.1 输入文本分布的影响

  1. 我们对 OOD demonstrations 进行了实验,其中包括 out-of-distribution: OOD 文本,而不是来自 unlabeled 训练数据的输入。具体来说,从外部语料库中随机抽出一组 k 个句子 {xi,rand}i=1k,并在 demonstrations 中取代 x1,,xk。这个变体评估了输入文本分布的影响,同时保持了 demonstrationslabel space 、格式。

    结果如下图所示。当使用 Channel MetaICL, Direct GPT-J, Channel GPT-J 时,无论是在分类任务还是多项选择任务中,使用 OOD 输入而不是来自训练数据的输入,都会使性能明显下降,绝对值为 3-16% 。在多项选择任务中使用 Direct GPT-J 的情况下,甚至明显比 no demonstrations 要差。Direct MetaICL 是一个例外,我们认为这是 meta-training 的效果。

    这表明,demonstrations 中的 in-distribution inputs 极大地促进了性能的提高。这可能是因为以 in-distribution text 为条件使任务更接近于 language modeling ,因为在训练期间,语言模型总是以 in-distribution text 为条件。

8.3.2 label space 的影响

  1. 我们还试验了使用随机英语单词作为所有标签的 demonstrations w/ random English words ,用于所有 kpairs 。具体来说,我们随机抽取英语单词的一个子集 Crand ,其中 |Crand|=|C ,并随机将 y~iCrandxi 配对。这个变体评估了 label space 的影响,同时保持了 demonstrationsinput text 分布、格式 。

    如下图所示,direct 模型和 channel 模型表现出不同的模式。

    • 对于direct 模型,在 label space 内使用随机标签、以及使用随机英语单词之间的性能差距是很大的,绝对值在 5 - 16% 之间。这表明,以 label space 为条件,大大有助于性能的提高。即使对于没有固定标签集合的多项选择任务也是如此。我们假设多项选择任务仍然有一个特定的 choice 分布(例如 OpenBookQA 数据集中的 "Bolts""Screws" 等对象)。

    • 另一方面,移除输出空间并没有导致 channel 模型的显著下降:绝对值有 0 - 2% 的下降,有时甚至增加。我们假设,这是因为 channel 模型只以标签为条件,因此没有从了解 label space 中获益。这与 direct 模型相反,后者必须产生正确的标签。

8.3.3 input-label pairing 的影响

  1. 前面重点讨论了尽可能保持 demonstrations 格式的变体,这里我们讨论改变格式。虽然格式有很多方面,但我们只做了最小的修改,删除了输入到标签的配对。具体而言,我们评估了 demonstrations with no labels ,其中语言模型以 x1,,xk 的拼接为条件;而 demonstrations with labels only 则以 y1,,yk 的拼接为条件。这些消融分别提供了"demonstrations with random English words""demonstrations with OOD inputs"no-format 对应物。

    结果如下图所示。

    • 移除格式的结果接近或不如 no demonstrations ,表明格式的重要性。这可能是因为以 input-label pairs 的序列为条件,会触发模型模仿整体格式,并在给定 test input 时按照预期完成新的样本。

    • 更有趣的是,保持格式在保留很大一部分性能提升方面起着重要作用。 例如:

      • 通过 Direct MetaICL , 在分类任务和多项选择任务中,通过简单地从语料库中随机抽取句子并将其与标签集合随机配对(如Figure 10 ),可以分别保留 95%82%in-context learningdemonstrations with gold labels )的改进。

      • 同样,在 channel 模型中,在 MetaICL 分类任务、GPTJ 分类任务、MetaICL 多选任务和 GPT-J 多选任务中,通过简单地将 unlabeled 训练数据中的每个输入与一个随机的英语单词配对,可以保留 in-context learningdemonstrations with gold labels )中82%, 87%, 86%, 75% 的改进。

    • 对于所有这些情况,删除输入而不是使用 OOD 输入,或者删除标签而不是使用随机英语单词,都会明显变差,说明保持 input-label pairs 的格式是关键。

      即使是将 OOD 输入和随机标签进行配对,效果也优于 No demonstrations

8.3.4 meta-training 的影响

  1. 与其他模型不同的是,MetaICL 的训练是以 in-context learning objective 来训练的,这与最近的工作一致,即在大量有监督的数据集上使用多任务训练(称为 meta-training )来泛化到新任务。我们旨在通过仔细检查 MetaICL 的结果,更好地理解这种 meta-training与我们的发现之间的关系。

    具体而言,我们观察到,到目前为止,我们看到的模式在 MetaICL 中比在其他模型中明显更明显。例如, ground truth input-label mapping 的影响更小,而保持 demonstrations 的格式则更重要。在 Direct MetaICL 中,input-label mapping 和输入分布的影响几乎为零,而在Channel MetaICL 中,input-label mappinglabel space 的影响则为零。

    Figure 10 所示:

    • Direct MetaICL 中,(紫色的)OOD + Random labels 的效果与 Gold labels 几乎相同。

    • Channel MetaICL 中,(浅绿色的)Random labels only 的效果与 Gold labels 几乎相同。

    基于这一观察,我们假设 meta-training 鼓励模型只利用 demonstrations 中较简单的方面而忽略其他方面。这是基于我们的直觉:

    • input-label mapping 可能更难利用。

    • demonstrations 格式可能更容易利用。

    • 用于模型训练的text space 可能比用于模型的条件生成的 text space 更容易利用。

8.4 讨论

  1. 在本文中,我们研究了 demonstrationsin-context learning 的成功所起的作用。我们发现,demonstrations 中的 ground truth input-label mapping 比人们想象的要不重要得多:在demonstrations 中用 random labels 取代 gold labels ,只稍微降低了性能。然后,我们确定了demonstrations 中的一系列方面,并考察了哪方面对性能提升的实际贡献。结果显示:

    • 收益主要来自于 input spacelabel space 的独立规范(independent specification)。

    • 如果使用正确的格式,模型仍然可以通过仅保留正确的输入分布、或仅保留正确的标签来保持高达 95% 的性能收益。

    • 带有 in-context learning objectivemeta-training 放大了这些趋势。

    总之,我们的发现导致了一系列关于 in-context learning 的更广泛的指示,以及未来工作的途径。

  2. 模型是否在测试期间学习:如果我们对学习做一个严格的定义,即,捕获训练数据中给出的 input-label 对应关系,那么我们的发现表明,语言模型在测试期间不会学习新的任务。我们的分析表明,模型可能会忽略 demonstrations 所定义的任务,而是使用来自预训练的先验(prior )。

    然而,学习一个新的任务可以被更广泛地解释:它可能包括适应 demonstrations 所建议的特定的输入、以及标签分布、以及格式,并最终得到更准确的预测。根据这种学习的定义,该模型确实从 demonstrations 中学习了任务。我们的实验表明,该模型确实利用了 demonstrations 的各个方面,并实现了性能的提升。

  3. 语言模型的能力:模型在执行下游任务时,并不依赖 demonstrations 中的 input-label 对应关系。这表明,模型仅从 language modeling objective 中学到了(隐式的)input-label 对应关系,例如,将正面评论与 "positive" 一词联系起来。这与《Prompt programming for large language models: Beyond the few-shot paradigm》的观点一致,他们声称 demonstrations 是为了 task location ,执行任务的固有能力是在预训练时获得的。

    • 一方面,这表明 language modeling objective 导致了强大的 zero-shot 能力,即使从朴素的 zero-shot 准确率上看来这并不总是明显的。

    • 另一方面,这表明,在 input-label 对应关系尚未被语言模型所捕获到的任务上,in-context learning 可能不起作用。这就引出了一个研究问题:如何在 in-context learning 不能解决的 NLP 问题上取得进展:我们是否需要一种更好的方法来抽取已经存储在语言模型中的 input-label mappings、是否需要一种更好的语言模型 objective 的变体从而学习更广泛的任务语义、或者是否需要通过对标记数据的微调进行显式的监督。

  4. instruction-following 模型的联系:之前的工作发现,训练遵循任务的自然语言描述(称为 instructions )并在推理时执行新任务的模型是有前景的。我们认为 demonstrationsinstructions 对语言模型的作用基本相同,并假设我们的发现对 instruction-following 模型是成立的:instructions 促使模型恢复它已有的能力,但并没有监督模型学习新的任务语义。T0 已经部分地验证了这一点,他们表明模型的性能在不相关的指令、或误导性的指令下不会有太大的下降。我们把对 instruction-following 模型的更多分析留给未来的工作。

  5. 大幅提高的 zero-shot 性能:我们的一个关键发现是,通过简单地将每个 unlabeled input 与一个 random label 配对并将其作为 demonstrations ,有可能在不使用任何标记数据的情况下实现接近 k-shot 的性能。这意味着我们的 zero-shot baseline level 要比以前认为的高得多。未来的工作可以通过放宽获取 unlabeled 训练数据的假设来进一步提高 zero-shot 性能。

    注意:甚至用 OOD 输入和随机标签进行配对,也能提升效果。

  6. 局限性:

    • 任务和数据集类型的影响:本文的重点是已有的 NLP 基准中的任务,其中,这些任务有真实的自然语言输入。正如 《Extrapolating to unnatural language processing with gpt-3’s in-context learning: The good, the bad, and the mysterious》 所观察到的,具有更局限的输入的合成任务实际上可能更多地使用 ground truth labels

      我们通过研究多个 NLP 数据集的平均性能来报告宏观层面的分析,但不同的数据集可能表现不同。附录 C.2 讨论了这方面的问题,包括发现在一些 dataset-model pairs 中,使用 ground truth labels 和使用 random labels 之间存在较大的差距(例如,在最极端的情况下,在使用 GPT-Jfinancial_ phrasebank 数据集上,绝对值接近 14% )。自我们论文的第一个版本以来,《Ground-truth labels matter: A deeper look into input-label demonstrations》表明,使用否定的标签(negated labels )大大降低了分类的性能。我们认为,了解模型在多大程度上需要 ground truth labels 来成功地进行 in-context learning 是很重要的。

    • 扩展到 generation 任务:我们的实验仅限于分类任务和多选任务。我们假设,在像generation 这样的开放性任务中,ground truth output 可能对 in-context learning 没有必要,但这要留待将来的工作。将我们的实验扩展到这类任务并不简单,因为它需要 output 的一个变体,该变体具有不正确的 input-output 对应关系,同时保持正确的 output distribution (基于我们在前面的分析,这一点很重要)。

  7. 自我们论文的第一个版本以来,《Text and patterns: For effective chain of thought, it takes two to tango》chain of thought prompting 进行了类似的分析,它产生了一个理由( rationale )来执行复杂任务(如数学问题)。他们表明,虽然在 demonstrations 中简单地使用一个随机的理由(例如,将不同的样本与同一个理由来配对)会显著降低性能,但其他类型的反事实理由(counterfactual rationales)(例如,错误的方程式)并没有像我们想象的那样降低性能。关于理由的哪些方面重要或不重要的更多讨论,请参考该论文。

九、Overcoming Few-Shot Prompt Order Sensitivity [2021]

论文:《Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity》

  1. 大型预训练语言模型(pretrained language model: PLM )在以适当的文本上下文为条件时表现出卓越的性能。也许最引人注目的是,当用一个由很少的训练样本组成的上下文来引导时,它们产生的文本分类结果可以与那些 fully supervised models 相媲美。这种 few shot setting ,通常被称为"In-context Learning"GPT-3 )。

    in-context learning 的一个核心组成部分是作为上下文的文本 prompt 。构成一个 prompt 需要:使用模板进行文本线性化(text linearisation )、以及训练样本拼接(见 Table 1 的例子)。已经确定的是,模板的结构对性能有很大影响(AutopromptLM-BFFPET2LPAQA )。然而,据我们所知,没有工作研究过样本排序对 In-context Learning 成绩的影响。

    也许与直觉相反的是,我们发现正确的样本顺序和正确的模板一样,可以产生很大的影响。从 Figure 1 中可以看出,对于情感分类任务,一些排列顺序的性能(超过 85% 的准确率)与监督训练相当,而另一些排列顺序的性能接近于随机(约 50% 的准确率)。这种顺序敏感性(order sensitivity )在不同的模型中是普遍存在的,尽管增加模型的大小在一定程度上解决了这个问题,但对于一些具有数十亿参数的模型来说,这个问题仍然存在( Figure 1 中的 Subj 任务)。

    在我们的分析中,我们发现性能良好的样本顺序之间没有共同点,而且它们在不同的模型规模和任务中不能迁移。在一个 fully-supervised setting 中,我们可以依靠一个验证集来选择样本顺序。然而,在验证集的规模非常有限、甚至不可用的 few-shot setting 中,这是不可取的。相反,我们利用语言模型的生成式特性来构建一个无标签的人工验证集,并将其称为 probing set 。由于 probing set 是无标签的,我们使用 predicted label 分布的统计量,并提出了 entropy-based 指标来衡量候选 prompts 的质量。实验结果显示,在所有不同规模(四个数量级)的 PLM 中,我们可以在 11 个不同的文本分类任务中实现平均 13% 的相对改进。

    总的来说,我们的贡献有以下几点:

    • 我们研究了 In-context Learning 的顺序敏感性,我们表明这对于在 fews-hot learningpretrained 语言模型的成功至关重要。

    • 我们提出了一种简单的、generation-based 的探测方法,以识别性能良好的 prompts ,而不需要额外的数据。

      思路:既然没有验证集,那么让语言模型来自动生成一个验证集。

    • 我们的 probing 方法对不同规模的 pretrained 语言模型、以及不同类型的数据集普遍适用且有效,在广泛的任务中平均取得了 13% 的相对改进。

  2. 相关工作:

    • 针对 NLPUnified Interface Design :以前的工作大多集中在 shared-parameters 的模型上,对一些任务进行预训练,然后针对不同的任务进行微调,例如 ELMo, BERT 等。最终,得到多个 task-specific 的模型。

      一段时间以来,人们一直试图为 NLP 任务设计一个统一的接口(《Ask meanything: Dynamic memory networks for natural language processing》T5)。

      与这些工作并行,GPT-2 表明,在语言模型输入的末尾追加 trigger tokens (例如 "TL;DR" )可以使语言模型表现得像摘要模型。语言模型的 zero-shot 显示了将 NLP 任务统一到 language modelling框架中的潜力,在这个框架中,微调并不是获得良好性能的必要条件。此外,GPT-3 表明,任务无关的 few-shot 性能可以通过扩大语言模型的规模而得到改善。它有时甚至可以与之前 SOTA 的微调方法竞争。

    • 针对 PLMPrompt Designprompt design 的核心挑战是将训练数据(如果存在的话)转换成文本序列。大多数关于 prompt design 的工作集中在如何使 prompts 与语言模型更加兼容。

      《Language models as knowledge bases?》 利用人工努力来设计自然语言句子,然后根据 input context 进行 token prediction

      然而,手工制作的模板需要大量的人力,很可能最终会出现次优的性能。最近的工作探索了自动模板构建:

      • PET2 使用完形填空风格的任务来构建模板。

      • LM-BFF 使用外部语言模型来生成模板。

      • AutoPrompt 使用 gradient-guided search 来寻找性能最大化的模板。

      • LPAQA 使用一种基于挖掘的方法来自动创建多样化的模板。

    • Prompt Design 的顺序敏感性:

      • LM-BFF 证明了基于微调的方法不像 In-context Learning 那样对顺序敏感。

      • KATE 利用一个标准规模的训练集,使用最近邻搜索来检索与特定测试样本最相关的训练样本。他们成功地检索到了相关的样本,并得出结论:在检索到这些样本后,它们在 prompt 中的顺序对性能几乎没有影响。虽然我们的研究与他们的研究有本质的区别,因为我们没有使用标准规模的训练集,但我们确实得出了相反的结论。

      以前所有关于prompt design 的工作都集中在 prompt 的文本质量上,据我们所知,没有一个人详细研究过顺序敏感性。

    • Few-shot Learning《True few-shot learning with language models》 评估了在没有验证集的情况下语言模型的 few-shot 能力。实验结果表明,以前的工作高估了语言模型在这种(真正的 few-shot learning )环境下的few-shot 能力。

      我们的工作则是利用语言模型的生成式特性来构建一个 probing set ,而不依赖 heldout 样本。我们表明,我们的 probing 方法比依靠验证集要好,因此可以实现真正的 few-shot learning

9.1 方法

9.1.1 Order Sensitivity and Prompt Design

  1. 在这里,我们研究了排列顺序的性能与各种因素之间的关系。为了便于观察,我们使用 SST-2 数据集中具有平衡标签分布的、由四个样本所组成的固定随机子集(指的是这个随机子集一旦确定下来就固定从而用于下游各种任务),并考虑所有 24 种可能的样本排列顺序。这一设置如下图中所示。

  2. 虽然有好处,但增加模型大小并不能保证低方差:我们针对 GPT-20.1B-1.5B )和 GPT-32.7B-175B )的四种不同模型规模,评估了样本顺序。正如我们在 Figure 1 中观察到的,模型可以获得优异的 few-shot 性能。我们看到:

    • GPT2-XL1.5B )模型甚至可以超过 90% 的准确率,只需给出四个样本。这个结果与那些在 6 万多个样本上训练的监督模型相当。

    • 然而,不同排列的性能变化仍然是一个大问题,特别是对于 "较小" 的模型。同一个模型可以在一种样本顺序下表现出近乎完美的行为,但在另一种样本顺序下又会回落到与随机猜测相当。

      虽然增加模型的大小(几个数量级)有时可以缓解这个问题,但它仍然不能完全解决这个问题(特别是如果我们考虑 SST-2 以外的任务)。相比之下,supervised fine-tuning 方法的不同初始化通常会导致其测试集性能的标准差小于 1%LM-BFF)。

  3. 增加训练样本并没有明显地减少方差:为了进一步探索few-shot prompts 的顺序敏感性,我们增加了训练样本的数量,然后采样了一个子集,并且对这个子集测试了最多24 种不同顺序。在 Figure 3 中,我们可以看到,增加训练样本的数量会导致性能的提高。然而,即使有大量的样本,高方差仍然存在,甚至会增加。

    基于此,我们得出结论:无论训练样本的数量如何,顺序敏感性可能是 In-context Learning 的一个基本问题。

    GPT-2 Small 的效果反而下降?

  4. 表现好的 prompts 不能跨模型迁移: 我们发现,如果将底层模型从 GPT2-XL1.5B)改为 GPT2-Large0.8B ),一个特定的排列顺序的性能可能从 88.7% 下降到 51.6% 。这表明,一个特定的排列对一个模型效果好,并不意味着它将为另一个模型提供良好的结果。

    为了验证这一假设,我们使用四个样本的所有可能的顺序排列作为 prompts (一共 24 个)。然后我们对不同的模型进行以这些 prompts 为条件的预测,并计算分数之间的 pairwise Spearman’s rank correlation coefficient 。这些结果显示在Figure 4 中。

    如果有一个共同的表现好的 prompts 的模式,那么我们就应该能够观察到不同模型之间的高相关性。然而,即使在同一模型的不同规模中,排列的行为似乎也是随机的。例如,175B2.7B 模型的相关性只有0.05 ,这意味着 2.7B 模型的好的排列绝不能保证它对 175B 模型也能产生好的性能。

  5. 表现好的 label orderings 在不同的模型中并不一致:除了训练样本的排序,我们还探索了 promptslabel ordering 。我们使用上述全部排列的所有模式:六种不同的标签模式。然后我们按照前文的所述,计算不同模型间的 pairwise Spearman 相关性。如 Figure 5 所示, label orderings 的行为在同一模型的不同规模中再次显得很随机。因此,不可能找出一个在不同模型中表现良好的 label ordering

    注意:假设 P/N 分别代表 positive/negative,那么六种标签模式分别为:NNPP, NPNP, NPPN, PNNP, PNPN, PPNN

    这里并不是把所有样本的 label 独立地放在一起,而是根据 label 的位置来决定所对应样本的位置。例如,正样本和正样本放在一起、负样本和负样本放在一起。

  6. bad prompts 的退化行为:我们对表现好的 prompts 和不好的 prompts 进行了错误分析,并观察到大多数失败的 prompts 都存在高度不平衡的 predicted label distributionsFigure 6 (left) )。解决这个问题的一个直观方法是按照 《Calibrate before use: Improving few-shot performance of language models》 的思路,对输出分布进行校准。然而,我们发现,尽管校准导致了更高的性能,但方差仍然很高( Figure 6 (right) )。

9.1.2 方法

  1. 上一节表明,prompt orderings 对性能有很大的影响,同一模型的同一prompt 的某些顺序提供了随机猜测的性能,而其他 "更好" 的顺序提供了与监督方法竞争的性能。这表明,可能有各种选择 prompt orders 的方法来实现更好的性能,但挑战在于如何在不需要额外标签(例如,验证集)的情况下自动地做到这点。

    因此,在这里我们探讨的问题是:怎样才能自动地生成一个 "probing set",以找到表现好的 prompt orderings

    我们通过以下方式来解决这个问题:

    • 首先,对于随机选择的训练样本构成的集合,我们使用这个样本集的每一个可能的排序作为候选。

    • 然后,通过使用所有候选 prompts 作为上下文来查询语言模型,从而构建一个 probing set

    • 最后,使用这个 probing set 通过使用 probing 指标对它们进行排序来确定最佳排序。

    假设有 k 个训练样本,那么所有可能的候选是 k! 个,对这 k! 个候选进行推断,非常耗费计算资源。

a. 从语言模型中采样以构建 Probing Set
  1. 我们提出了一种简单的方法,通过直接从语言模型本身采样,自动构建一个 "probing set" 。这种方法使得自动生成 probing sets 成为可能,而无需获取任何额外的数据。具体来说,给定一组训练样本 S={(xi,yi)},i=1,,n,其中 xiyi 表示第 i 个训练样本的句子和标签。然后我们定义一个变换 T ,将每个样本映射到自然语言空间,使得 ti=T(xi,yi)。因此 ti 是第 i 个训练样本采用 T 定义的模板所得到的文本序列。在这项工作中,我们使用一个简单的变换函数 T

    (34)T(xi,yi)=input:xi type:yi

    这将每个样本转化为一个标准格式的句子,将集合中的每个元素线性化为自然语言空间 S={ti},i=1,,n

    注意,这里的 lalbel 是在训练集上的,而不是验证集/测试集上的。

    然后,我们定义 n 个训练样本的全排列的 function group 为:F={fm},m=1,,n!,其中每个函数 fmS 为输入,输出 cm (某个排列顺序的样本的拼接)。在我们的案例中,随机抽取四个训练样本,可以得到 24 个可能的排列。

    对于每个 prompt 的候选 cm ,我们再从语言模型中采样,得到探测序列(probing sequencegmP(cm;θ),其中 θ 表示 pretrained 语言模型的参数。我们从语言模型中解码时,在特殊的 end-of-sentence token (由一个模板来定义)处、或达到 generation 长度限制时停止解码。我们的 probing set 构建方法如下图所示,其中, objective 是生成一个与训练样本有相似分布的 probing set

    Spromptsprompts:通过 S 中训练样本的各种排列组合,诱导语言模型生成新的 prompt,然后用这些新生成的 prompt 来作为 Probing Set

    作者没有直接把 S 作为 probing set,因为 probing set 是当做验证集来使用的。

  2. 我们对所有可能的 prompt 顺序的排列方式运行这个采样过程,并从中提取 probing 样本 T(1)(g)。然后将提取到的样本聚集在一起,形成 probing set D=T1(g1)T1(gn!)。尽管 probing set 包含了每个句子的 predicted label ,但并不能保证这些标签的有效性。因此,我们将 predicted labelprobing set 中舍弃,因为我们只对来自于语言模型且对应于输入分布的 sampling probes 感兴趣。

    核心思想:既然没有验证集,那么让语言模型自动生成一个验证集出来。当然,这个 “验证集” 的 label 是模型预测出来的,因此不保证是有效的。

b. Probing Metrics
  1. 一旦我们为给定的样本集构建了一个 probing set ,我们现在就可以使用该 probing set 来确定该特定样本集的最佳 prompt ordering 。在此,我们探讨两种选择最佳排序的方法: 全局熵(Global Entropy: GlobalE ),和局部熵(Local Entropy: LocalE )。

  2. 全局熵:GlobalE 背后的动机是,确定特定排序的 prompts 从而避免极不平衡的预测问题(因为我们之前已经确定 unbalanced predictions 是针对表现不好的 prompts 的关键性问题)。

    我们计算数据点 (xi,yi) 在上下文 cm 下的 predicted label y^i 如下:

    (35)y^i,m=argmaxvVP(vcmT(xi);θ)

    对于每个标签 vV(其中 V 表示 target 标签集合),我们计算 probing set 上的标签概率为:

    (36)pmv=iI{y^i,m=v}|D|

    然后,我们使用预测的 category label entropy 作为 cmGlobalE 得分,如下所示:

    (37)GlobalEm=vVpmvlogpmv

    核心思想:类别标签的分布尽可能均匀。

    注意:训练集合 S 被用了两次,一次用于生成 probing set、另一次在这里作为上下文 cm

  3. 局部熵:LocalE 背后的动机是,如果一个模型对所有 probing inputs 都过于自信,那么该模型的行为很可能不符合预期。至少,它的校准工作做得不好,这也可能是区分不同 class 的能力差的表现。

    GlobalE 的计算类似,我们计算数据点 (xi,yi) 在上下文 cm 下预测 target label vV 的概率为:

    (38)pi,mv=P(xi,yi)D(vcmT(xi);θ),vV

    然后我们计算每个数据点的平均 prediction entropy 作为 LocalE 得分:

    (39)LocalEm=ivVpi,mvlogpi,mv|D|

    LocalE 计算的 vVpi,mvlogpi,mv 是数据点 iprediction 分布的熵,然后对所有数据点取平均。

    GlobalE 计算的是全局上的 predicted label 分布的熵。

  4. 由于我们现在有办法对每个 prompt ordering 进行打分(根据 prompt orderingprobing set 上的效果),我们可以根据GlobalELocalE 分别衡量的性能对每个 prompt ordering 进行排名。

9.2 实验

  1. 我们使用四种不同大小的 GPT-2 (有 0.1B/0.3B/0.8B/1.5B 参数)和两种大小的 GPT-3 (有 2.7B/175B 参数)。由于上下文窗口大小有限(GPT-2 系列模型最多 1024word-pieces ),除了 AGNewsDBPedia 之外,我们对所有的数据集都采用了 4-shot setting

    我们的实验是基于 GPT-2 模型的 open-source checkpoints 、以及对 OpenAI GPT-3 API 的访问。对于 probing set 的生成,我们将最大 generation 长度限制为 128 。我们还使用温度为 t=2 的采样,我们还利用了 block n-gram repetition 重复(《A deep reinforced model for abstractive summarization》)来鼓励多样化的generation

    我们对每组随机选择的训练样本使用 24 种不同的排列,并对每个实验使用 5 个不同的集合(除了具有 175B 参数的 GPT-3 ,由于金钱成本高,我们只做两组,每组 12 种不同的排列),总共有 120run 。我们报告了 5 个不同集合的相应评价指标的平均值和标准差。

    对于promot 的选择,我们使用 LocalEGlobalE 探测指标对自动生成的 probing setcandidate prompts 进行排名。然后,在现有的 24 个排列中,我们选择按最高 entropy 排名的 top K 样本作为表现好的 prompts ,在我们的实验中 K=4 。最后,我们使用这些表现好的 prompts 来评估各种数据集的性能,并展示了更好的性能和缩减的方差。

    即,选择表现最好的 4 种排列顺序。

    我们还提供了一个 majority baseline 的结果,它总是预测数据集中的 majority label ,作为性能的下限。我们还提供了一个 oracle 从而显示性能的上界,即根据验证集上的 prompt 性能选择 top K 性能好的排序。

  2. 数据集:十一个文本分类数据集,如下表所示。

    为了评估,我们对所有数据集的验证集采样了 256 个样本,以控制 GPT-3 的推理成本,因为它需要使用付费的 API

    这些任务的 prompts 模板如下表所示。

  3. 实验结果如 Table 2 所示,我们观察到 LocalEGlobalE 在所有任务中都有一致的改进。

    结论:

    • 无论模型大小如何,entropy-based probing 对表现好的 prompt 的选择是有效的。与不使用 probingprompts 相比,GlobalE11 个不同的句子分类任务中平均实现了 13% 的相对改进;LocalE 略逊于GlobalE ,与基线模型相比,平均有 9.6% 的相对改善。

    • 使用 Entropy-based probing 来排名是鲁棒的:在 Figure 8 中,我们直观地显示了在改变 Ktop K prompt selection的平均性能。K=24 对应于使用所有 sampled prompt orders ,这相当于 Table 2 中的基线模型性能。

      我们可以观察到,所有数据集的曲线斜率都是负的,这表明我们的方法可以有效地对表现好的 prompts 进行排序。虽然 K=1 可以在大多数情况下提供良好的性能,但在我们的实验中,我们使用 K=4 ,因为初步实验表明,它在不同的数据集上产生了稳定的性能。

    • entropy-based probing 在不同的模板中都是有效的:我们对类似于 LM-BFF《Calibrate before use: Improving few-shot performance of language models》的四种不同模板(table 4 )的 Entropy-based probing 进行评估,用于 SST-2 数据集。Table 3 的实验结果表明,Entropy-based probing 对不同的模板是有效的。这些发现表明,Entropy-based probing 特定的模板并不敏感,因为它对所有的情况都能提供改进。

    • 表现好的 permutation selectionIn-context Learning 的一个安全选择:我们发现,对于受到高 prompt variance 影响的模型,我们的 prompt selection 过程可以显示出很大的改进(相对改进达 30% )。此外,对于初始 prompt 性能的方差较低的任务,我们的方法并没有对性能产生负面影响。我们的 prompt selection 在更糟的情况下提供了边际改善,在大多数情况下平均有 13% 的相对改善。

    • sentence-pair 任务对于较小的模型来说仍然具有挑战性,即使有表现好的 permutation selection:对于 CBRTE 数据集,GPT-2 模型的性能与 random baseline 的性能没有明显区别。尽管如此,我们发现,我们的方法仍然可以提供小幅的性能提升,尽管这些性能提升仍然在随机猜测或 majority vote 的水平之内。其中一个原因可能是,对于这些任务上的特定规模的模型,不存在好的 prompts 。因此,在这种情况下,优化 prompts 并不是特别有效。在较大的模型规模下,prompt selection 可以大大改善 CBRTE 的性能(对于 GPT-3 175B 模型尤其如此),这一观察进一步支持了这一点。

    • Entropy-based probing 优于使用训练数据的子集进行调优:如果不依赖 generationprompt selection 的另一种方法可以是拆分(有限的)训练数据以形成验证集。为了与这种方法进行比较,我们将 4-shot training samples (与 Table 2 的设置相同)分成两半。然后我们用验证集的表现来选择表现最好的四个 prompts 。从 Table 5 中可以看出,这种方法一直优于baseline 。然而,两种 Entropy-based probing 方法在所有的模型大小上都能提供更好的性能。

      拆分为验证集的方式,相比较于 baseline,也是有所提升的。