ZeroPrompt: Scaling Prompt-Based Pretraining to 1,000 Tasks Improves Zero-Shot Generalization

任务数量极大的情况下,模型大小对性能的影响很小…

论文地址: https://arxiv.org/pdf/2201.06910.pdf

XLNet作者杨植麟团队发布了首个中文多任务Prompt统一模型:ZeroPrompt。研究的重点是 【任务的规模】 和 【zero-shot】 的 prompting。

以前的模型只在几十个任务上进行训练,ZeroPrompt 使用真实世界的数据将其扩展到1000个任务(中文数据)。这导致了一个重要的发现,即任务规模可以成为模型尺寸的有效替代方案; 即,模型尺寸对大量任务的性能影响很小

此外,该文还提出了一种结合了遗传算法来自动搜索 unseen 任务的最佳 prompt。

Introduction

众所周知,prompt 可以激发语言模型的潜力,避免预训练和Fine tuning 之间的gap,并且是一个非常 Parameter-Efficient 的调整方法。不仅如此,Prompt 还可以对不同的NLP任务进行范式统一,统一为相同的数据形式。同时,受益于预训练语言模型的强大,就对多任务、多领域进行统一建模。

最初,GPT-3 证明了通过在更大规模模型上使用 prompt 来实现零样本和少样本学习的可能性。 然而,与全监督微调相比,zero-shot 和 few-shot 泛化的性能在许多任务上仍然不足。

之前 FLAN 与 T0 分别探索了模型大小与 prompt数量对多任务预训练的性能和效率,但目前还不清楚扩展训练任务的数量的影响如何。

如图 1 所示,实证研究表明,任务扩展可以成为模型尺寸的有效替代方案:

由于训练任务非常多,模型大小对性能的影响很小。 此外,任务规模可以提高各种模型规模的性能。 对于参考基线,RoBERTa-Large 以完全监督的方式进行微调,而 Pangu Alpha 和 CPM-2 是 zero-shot prompted。 所有模型都用中文训练和评估。

除此之外,ZeroPrompt 还探索了,在多任务训练时:

  • 如何对不同任务类型更好地统一建模,Prompt如何设计?
  • 应该选择哪些任务数据进行多任务训练呢?
  • 对unseen domain的新任务如何获得高性能,如何自动构建Prompt?

ZeroPrompt

Zero-shot Adaptation with Few-shot Validation

为了验证Prompt的效果,需要标注一些样本做验证集,论文将这一设置称为,“Zero-shot Adaptation with Few-shot Validation”,设置总结在下图:

Datasets for scaling to 1,000+ tasks

数据来源主要是学术界公开的数据集和工业生产数据,包括情感分析、新闻分类、推断、NER、MRC、摘要等多个任务。其中,公开数据集共80个。下图列出了每种任务类型中的任务数量:

一共的1110个任务数据上,有824个用作多任务预训练,剩余的286个数据是进行zero-shot测试的unseen任务。

ZeroPrompt 的pipeline

与传统的预训练-微调范式相比, ZeroPrompt 引入了两个关键差异:

  • 为所有下游任务提供通用模型,而不是为每个特定下游任务提供多个不同的微调模型。
  • 其次,使用 Genetic Prompt Search (GPS)在我们的“Zero-shot Adaptation with Few-shot Validation”设置中自动生成高性能prompt。 此外,我们的 ZeroPrompt 使用混合 prompt 形式,包括 soft prompt 和 hard prompt。

目标在不更新模型参数的情况下自动获得高性能prompts,提出了 GPS 以进一步提高 ZeroPrompt 的 zero-shot性能。

遵循更现实的零样本学习设置,采样少量数据作为下游任务的开发集 $D_{dev}$——“Zero-shot Adaptation with Few-shot Validation”。

GPS 的过程在算法1中进-行了描述,其中 $f{GPS}$是决定保留或消除哪个 prompt 的度量函数,$g{GPS}$表示生成新 prompt 的遗传函数。 对于下游任务,算法首先使用一组手工 prompt $G_0$ 进行初始化。

在实践中,通过 3 次初始化来实现良好的性能。 对于每次迭代,使用 $f{GPS}$ 计算 $G^t$ 中 prompt 的分数,并选择前 K 个提示作为 $G^t$。 然后我们使用基于 $G^t_$ 的 $g_{GPS}$ 生成 $G^{t+1}$。最后,我们从整个生成的 prompt 集中选择前 K 个 prompts。

Prompt Design

尽管带有 prompt 的大规模预训练模型,例如 GPT-3 在没有任何标记数据的情况下对看不见的任务进行零样本泛化,显示出可喜的结果,快速设计对其性能至关重要。在本小节中,描述了我们选择的 prompt 设计和其他一些经过测试的变体。

在 prompt 模板 $T$ 的最简单形式中,提示方法通过手工提示 $P$ 和文本输入序列 $X$ 构造 $T$:

其中 $[MASK]$ 是应填写答案以完成句子的空白。 这被称为句子填充。

如图 4 所示,优化后的prompt $P$ 进一步分解为 $\Epsilon$、$V$ 和 $D$ 三个部分,其中有任务特定的 soft prompt $E$、verbalizer prompt $V$ 和任务描述prompt $D$。结果, 我们的提示模板 $T$ 可以表示为:

与 PET 类似,使用生成任务的 prompt 和用于分类任务的 prompt-verbalizer对 (PVPs)。

对于每种任务类型,我们首先设计一个基本 prompts 集合,然后通过添加特定任务的关键字或表达式来修改基本 prompts,以获得最终的任务描述 prompt。 强制每个任务类型中的任务具有相同或相似的 verbalizer 以保持一致性。

Prompts with Verbalizer Candidates

对于 unseen 的任务的零样本学习,在这种情况下微调不是一种选择,从大量候选词汇中找到表现最好的verbalizer v ∈ V 是一个难题。为了解决这个问题,我们将所有可能的 verbalizer 候选者 $V = {v_1 , v_2 , …}$ 连接起来,并将候选者放在任务描述提示之前,如图 4 所示。

Disentangled Task Representations

如上所述,我们强制执行直观相似的任务以具有相似的 prompts 或 PVPs,以便与任务无关的知识已经以这种方式正确建模。 同时,特定于任务的知识也应该有助于零样本泛化。

为了在多任务预训练中 解耦 特定于任务和与任务无关的知识,安装了一个连续 prompt 嵌入作为前缀,这被称为图 4 中所示的特定于任务的 soft prompt。

对于 unseen 的任务,需要冷启动 并在没有标记数据的情况下从头开始初始化 prompt 嵌入。 一种直觉是直接使用来自具有相似数据分布的训练任务的soft prompt。

Experiments

Experiment Setups

Baseline Models

  • Pangu-α : 具有多达 2000 亿个参数的预训练解码器模型。 在计算资源有限的情况下,以 130 亿版本的 Pangu-α 作为基准。
  • CPM-2 : 具有 110 亿个参数的预训练编码器-解码器模型。 以中文版的 CPM-2 为基准。
  • RoBERTa : 与强基线、微调的 RoBERTa-large 模型进行比较。

Main Results

Results of Task Scaling

有上图可以看出:随着任务数量从20升至800个,不同参数大小模型间的差距变得很小,FLOPs提升30倍。

Results Compared with Other Approaches

在unseen的测试数据集上将 ZeroPrompt 与其他强大的零样本和完全监督的方法进行比较。 由于篇幅有限,表 3 中仅包含部分保留的测试任务( 17 个学术数据集和 10 个生产数据集以进行比较)。

主要结论是:

  • ZeroPrompt显著提升T5的zero-shot性能,从37.8提升到68.76,一共提升近31个点;
  • ZeroPrompt显著提升CPM2和盘古的zero-shot性能,提升近28个点;
  • ZeroPrompt的zero-shot性能与RoBERTa-large有监督finetune可比或更好(如上图红色标识);
  • ZeroPrompt与finetuned的RoBERTa-large相比,整体只差4.7个点,而ZeroPrompt没有使用任何标记数据进行微调。原论文表示:这是“令人欣喜”的结果。

Ablation Studies

Effect of Prompt Design

【特定任务的soft prompt】 和 【候选标签verbalizer prompt】对最终结果有正向收益。

【Prompt遗传搜索算法】好于之前的LM-BFF、翻译等方式。

Effect of Cross Task Type Transfer

在跨任务类型的zero-shot性能测试上,只能从某些任务类型中受益,而利用其他任务的更多标记数据并没有持续提升。

Limitations and Future Work

虽然可以将任务缩放视为模型缩放的替代方案,它提高了零样本学习的效率和性能。然而,仍一些局限性,未来通过研究这些问题可能会进一步提高零样本性能。

  • 跨任务迁移的zero-shot性能,并不总是随着任务规模的增加而持续提升
  • 在多任务训练中,如何选择更好的训练任务分布。
  • 如何收集更多多样的任务数据,而当前的任务数据规模仍然是受限的。