引言
目前零样本学习主要是基于预训练微调,然而预训练模型微调的主要方法是Prompt和Adaptor。其中基于Prompt的模型微调方法对模板设计依赖度极高。那么,「今天给大家分享的这篇文章抛弃模板设计,采用正则表达式挖掘prompt示例进行模型微调,同样得到了非常棒的结果」。
背景介绍
然而,众所周知,Prompt对模式和语言描述器的选择非常敏感,但在真正的零样本学习中设计提示时,实践者是盲目的。与此相关的是,表面形式竞争等微妙现象对性能有很大影响。最近的工作试图通过校准、提示组合、自动提示生成来缓解这些问题。同时,对于语言模型如何进行零样本学习,仍然没有原则性的理解。
在本文中,我们提出了一种比提示更灵活、更可解释的零样本学习新方法,并在实验中获得了更好的结果。「本文的方法通过使用模式和语言化器通过正则表达式从语料库中挖掘标记示例,并利用它们作为监督来调整预训练的语言模型」。为每个任务自然地组合多个模式和语言表达器,同时通过查看挖掘的示例提供交互设计它们的信号。
本文方法
与Prompt类似,本文方法需要预训练的语言模型、模式和语言生成器,以及未标记的语料库(例如,用于预训练的语料库)。如下图所示,本文方法主要分为三个步骤。
「步骤一:挖掘」。首先使用匹配模式和一组语言表达器从语料库中提取标记示例。为此,我们定义了一些模式,这些模式充满了语言表达器并扩展为正则表达式。例如,上图匹配模式和语言表达器将提取“is good”或者“was good”后面的每个句子,作为正面例子,而下面的每句话都是“is bad”或者“was bad”,作为负面例子。在实践中,本文定义的模式与用于提示的模式相当,而语言表达器是完全相同的(如下表)。
在之前的prompt中,每个类的通常使用单个语言表达器,但本文方法可以将多个语言表达器在单个数据集中挖掘的示例结合起来。为了减轻类的不平衡并将挖掘的数据集保持在合理的大小,在平衡不同的语言表达器后,每个类最多挖掘40k个示例。
「步骤二:筛选」。作为可选的第二步,本文研究从挖掘的数据中自动删除具有嘈杂的示例。为此,这里使用零样本prompt对挖掘的示例进行分类,并删除预测标签和挖掘标签不匹配的示例。这个过滤步骤依赖于prompt的性能,本文只删除了10%的不匹配示例,其中零样本学习prompt效果最好。
「步骤三:微调」。最后,我们使用挖掘的数据集以标准监督方式微调预训练的语言模型,学习新的分类头。
实验结果
1、情感分析、主题分类和自然语言推理 (NLI) 的实验证实了我们方法的有效性,「当使用完全相同的语言器和可比较的模式时,它的性能大大优于Prompt方法」,平均优于提示8.8个点。
2、下表展示了使用不同语言表达器的情绪分类结果,发现提示和挖掘都对语言器的选择高度敏感,但将它们结合起来可以得到相对较好的结果。
3、如下表所示,使用不同的模式有更大的影响。在一种方法上表现良好的模式和语言表达器在另一种方法上不一定表现良好。
论文&&源码
Paper:https://arxiv.org/pdf/2210.14803.pdf