【论文&模型讲解】文本分类 Towards Unified Prompt Tuning for Few-shot Text Classification

前言

论文标题:Towards Unified Prompt Tuning for Few-shot Text Classification
论文网址:https://arxiv.org/abs/2205.05313

0 摘要

  基于 Prompt 的 fine-tuning 通过使用特定于任务的提示,提高了预训练语言模型 (PLMs,Pre-trained Language Models) 在 few-shot 文本分类中的性能。

  然而,由于 PLMs 在预训练时并不熟悉 prompt-style 的表达,限制了下游任务中 few-shot 的学习性能。

  如果模型能够在特定的 NLP 任务之前就获得一些 prompting 知识,则是可取的。

  本文提出了 UPT(Unified Prompt Tuning,统一提示调优) 框架,通过从无目标 (non-target) 的 NLP 数据集中显示捕获提示语义,为 BERT-style 模型提供更好的 few-shot 文本分类。在 UPT 中,一种新的范式 Prompt-Options-Verbalizer (POV) 被提出,用于不同 NLP 任务的联合 prompt 学习,使 PLMs 捕获任务不变 (task-invariant) 的 prompting 知识。为了提高 PLM 的泛化能力,使其能够准确地适应以前未见过的任务,作者进一步设计了一种自监督任务——Knowledge-enhanced Selective Masked Language Modeling (KSMLM,知识增强的选择性 MLM)

  在跨多个任务的多任务学习后,PLM 可以在低资源的情况下更好地针对不同的目标任务进行 prompt-tuned。在各个 NLP 任务上的实验表明,UPT 在基于 Prompt 的 fine-tuning 的表现优于 SOTA。

1 Introduction

  预训练语言模型 (PLMs,Pre-trained Language Models) 的出现提高了各种 NLP 任务的性能。然而,在 fune-tuning 过程中,由于模型过拟合,PLMs 在较少训练样本的情况下表现不佳。

  为了缓解低资源场景中的这个问题,自然语言提示 已经被应用于 PLMs 的 few-shot 或 zero-shot 学习。为了使 prompts 更加灵活且适用于各个任务,prompt tuning 冻结了 PLM backbone 并调整 prompts 的表征。这种方法特别适用于难以微调的超大型 PLMs。对于 BERT-style 的 PLMs, 基于 prompt 的 fine-tuning 被提出,将文本分类任务转化为完形填空式的问题。将在输入文本中添加具有 masked tokens 的特定于任务的离散模板。通过 MLM 头预测的 masked 位置的 tokens 结果用于类标签预测。因此,通过 “重新用” MLM 训练目标,可以更好地利用 PLMs 获得的预训练知识。由于 few-shot 学习中 prompt 的成功使用,进行了各种后续工作,如连续提示编码,只是提示学习和提示生成。

  最近,有一些工作关注超大型 PLMs 上的多任务 prompt-tuning。具体来说,他们根据来自不同任务的全部训练样本来微调 PLMs,迫使 PLMs 学习到更多的 prompting 知识,并通过 zero-shot 学习直接对目标任务进行预测。然而,作者观察到,对于 BERT-style PLMs,性能并不令人满意,由于以下两个原因:

  1. 这些 PLMs 对不同的 prompt 模板和 verbalizers 的设计很敏感,这些模板和 verbalizer 不能适应于新的 prompts 和 verbalizers 的目标任务;

  2. 预训练语料库中的 prompt-style 文本和句子的词汇分布存在差异。

  如果 BERT-style PLMs 能够在适应下游任务之前就获得一些 prompting 知识,那就更好了。因此,一个问题就自然产生了:如何使 BERT-style PLMs 在具有更多 prompting 知识的情况下准确地适应目标 NLP 任务?

  为了解决这些问题,我们引入了一个新的框架 UPT (Unified Prompt Tuning),通过从无目标数据集中显式地捕获通用提示语义,为 BERT-style 模型提供更好的 few-shot 文本分类性能。特别地,我们提出了统一的范式 Prompt-Options-Verbalizer (POV),它能够对一系列不同类型的无目标 NLP 任务进行混合 prompt-tuning。为了进一步提高模型对以前未见过任务的泛化能力,我们提出了一种新的辅助任务 Knowledge-enhanced Selective MLM (KSMLM),它模仿 MLM 的行为,遵循 POV 范式,明确 prompts 的使用。在完成多任务训练后,可以使用相同的 prompting 范式对底层 PLM 进行 fine-tune,以适应任何 few-shot 任务。

  在实验中,我们验证了 UPT 在各个任务的公开 NLP 数据集上的有效性。实验结果表明,在基于 prompt 的 few-shot fine-tuning 中,UPT 的性能始终优于 SOTA。

作者的贡献如下:

  1. 为了改进 BERT-style 模型的基于 prompt 的 fine-tuning,作者引入了新的 UPT 框架,该框架从多个不同类型的源任务重捕获统一的 prompting 语义,用于新目标任务的 few-shot 文本分类。
  2. 在 UPT 中,提出了一种新的范式 POV,用于跨不同 NLP 任务的联合 prompt tuning。作者进一步设计了自监督的 KSMLM 任务,以提高 PLM 的泛化能力,实现精确的任务适应。
  3. 在各种 NLP 数据集上进行的大量实验表明,UPT 在基于 prompt 的few-shot fine-tuning 的性能一直大幅度优于 SOTA。

2 UPT: The Proposed Framework

我们首先简要概述UPT框架,然后是它的详细技术。

2.1 UPT 概述

Figure 1:UPT 是一个统一的框架,它以 Prompt-Options-Verbalizer 的形式,从无目标 NLP 数据集中学习 prompting 知识,以提高目标任务的性能。图 a) 和图 b) 展示了监督和自监督学习任务的示例 (即 Knowledge-enhanced Selective MLM)。

  首先介绍一些基本的符号。设 D ∗ \mathcal D^* D 是一个目标 NLP 任务 T ∗ \mathcal T^* TN-way-K-shot 训练集。底层 PLM 由 Θ \Theta Θ 作为参数。few-shot 学习的基本目标是基于 D ∗ \mathcal D^* D 获得一个用于 T ∗ \mathcal T^* T 的高性能模型,参数由 Θ \Theta Θ 初始化。由于 D ∗ \mathcal D^* D 的大小只有 N × K N\times K N×K,所以模型性能将受到极大的限制。这里,我们假设存在 M M M 个与 T ∗ \mathcal T^* T 不同的 NLP 任务,即 T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M),它们 (通常是非 few-shot) 的训练集分别定义为 D ( 1 ) , ⋯   , D ( M ) \mathcal D^{(1)},\cdots,\mathcal D^{(M)} D(1),,D(M)。UPT 框架旨在探索如何利用 D ( 1 ) , ⋯   , D ( M ) \mathcal D^{(1)},\cdots,\mathcal D^{(M)} D(1),,D(M) 来提高 PLM 在一个新任务 (如 T ∗ \mathcal T^* T) 上的性能,基于其自身的 few-shot 训练集 D ∗ \mathcal D^* D

  注意,我们限制 T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M) T ∗ \mathcal T^* T 不同,以处理真正的低资源场景,其中没有类似任务的训练集可用。如果 T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M) T ∗ \mathcal T^* T 相似,则可以直接应用迁移学习技术对模型进行训练,这被认为是一个相对琐碎的问题,而不是本文的重点。

  在 UPT 中,该模型首先在所有源任务 T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M) 上训练,旨在学习 prompts 的语义并通过 prompt 解决下游任务。然后,在低资源场景下,对特定的目标任务 T ∗ \mathcal T^* T 进行 prompt-tuning。为了统一学习过程,所有不同任务 ( T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M) T ∗ \mathcal T^* T) 中的每个训练样本 i i i 都以相同的格式通过 Prompt-Options-Verbalizer (POV) 三元组 ( P i P_i Pi, O i O_i Oi, V i V_i Vi) 来增强。这里 P i P_i Pi 是 prompt, O i O_i Oi 是在 masked tokens 中 所有可能的选项 (即标签词的集合), V i V_i Vi 是将 PLM 的 MLM head 预测的目标 token 映射到类标签的verbalizer。可以参考 Figure 1 中有监督学习任务的示例。

  另外,我们观察到原始任务 T ( 1 ) , ⋯   , T ( M ) \mathcal T^{(1)},\cdots,\mathcal T^{(M)} T(1),,T(M) 中的标签词汇是有限的。对于以前未见过的任务,仅对这些任务进行优化往往会导致一个偏向这些任务都不太通用的模型。因此,我们引入了自监督 Knowledge-enhanced Selective MLM (KSMLM) $ \widetilde {\mathcal T}$ 作为辅助任务。具体来说,将源任务训练数据 D ~ = D ( 1 ) ∪ D ( 2 ) ∪ ⋯ ∪ D ( M ) \widetilde{\mathcal D}=\mathcal D^{(1)}\cup\mathcal D^{(2)}\cup\cdots\cup\mathcal D^{(M)} D =D(1)D(2)D(M) 作为输入。这些句子被选择性地 mask 掉,选项由大量语料库中挖掘出的丰富知识生成。Figure 1 中也有一个示例。因此,该模型具有较好的泛化能力,避免了预训练知识的灾难性遗忘。

2.2 统一 prompting 范式

  对于 BERT-style 模型跨 D ( 1 ) , ⋯   , D ( M ) \mathcal D^{(1)},\cdots,\mathcal D^{(M)} D(1),,D(M) 基于 prompt 的训练的一个基本挑战是不同的 NLP 任务关于 masked tokens 有着不同的标签词。当处理混合训练样本时,一个简单的解决方案是建立一个统一的输出预测空间,由来自所有任务的候选标签词组成。然而,扩大的输出空间使得 PLM 的优化具有挑战性。此外,输出的预测空间可能不会覆盖所有可能的未见过的 NLP 任务的标签词。

  我们提出了一个统一的 prompt 范式,它通过 Prompt-Options-Verbalizer (POV) 三元组 ( P i P_i Pi, O i O_i Oi, V i V_i Vi) 来增强每个样本 i i i。其中 P i P_i Pi 是提供任务指导的 prompt (与 PET (Exploiting Cloze-Questions for Few-Shot Text Classification and Natural Language Inference) 一致), O i O_i Oi 是一个固定的表达,它显式地为模型提供所有候选标签词。为了快速适应任意任务,verbalizer V i V_i Vi 将 mask 掉的 token 的输出映射到整个单词表 V \mathcal V V 中。我们可以看到,这些选项是至关重要的,因为它们对 PLM 可能的输出 (即候选词) 给出了强有力的指示。总体上,关于训练样本 i i i,token v ∈ V v \in \mathcal V vV 的输出概率 q ( v ∣ i , P i , O i , Θ ) q(v|i,P_i,O_i,\Theta) q(vi,Pi,Oi,Θ) 计算如下:
q ( v ∣ i , P i , O i , Θ ) = e x p ( s ( v ∣ i , P i , O i , Θ ) ) ∑ v ′ ∈ V e x p ( s ( v ′ ∣ i , P i , O i , Θ ) ) q(v|i,P_i,O_i,\Theta)=\frac{ {\rm exp}(s(v|i,P_i,O_i,\Theta))}{\sum_{v^{'}\in \mathcal V}{\rm exp}(s(v^{'}|i,P_i,O_i,\Theta))} q(vi,Pi,Oi,Θ)=vVexp(s(vi,Pi,Oi,Θ))exp(s(vi,Pi,Oi,Θ))
其中 s ( v ∣ i , P i , O i , Θ ) s(v|i,P_i,O_i,\Theta) s(vi,Pi,Oi,Θ) 是 MLM head 的未归一化的分数 (在 softmax 函数之前),用于以 i , P i , O i i,P_i,O_i i,Pi,Oi 作为输入、在 [MASK] 位置上生成 token v v v。将整个预测向量 (长度为 ∣ V ∣ |\mathcal V| V) 定义为 Q ( V ∣ i , P i , O i , Θ ) Q(\mathcal V|i,P_i,O_i,\Theta) Q(Vi,Pi,Oi,Θ)

多任务 prompting 损失 (定义为 L M P \mathcal L_{MP} LMP) 如下:
L M P = − ∑ i ∈ D P ( V ∣ i , P i , O i , Θ ) ⋅ l o g   Q ( V ∣ i , P i , O i , Θ ) \mathcal L_{MP}=-\sum_{i\in \mathcal D} P(\mathcal V|i,P_i,O_i,\Theta)\cdot {\rm log}\ Q(\mathcal V|i,P_i,O_i,\Theta) LMP=iDP(Vi,Pi,Oi,Θ)log Q(Vi,Pi,Oi,Θ)
其中 D = ∪ k = 1 M D ( k ) \mathcal D=\cup_{k=1}^M \mathcal D^{(k)} D=k=1MD(k) P ( V ∣ i , P i , O i , Θ ) P(\mathcal V|i,P_i,O_i,\Theta) P(Vi,Pi,Oi,Θ) 为 one-hot ground-truth 预测向量。

  另外,我们注意到 D ( 1 ) , ⋯   , D ( M ) \mathcal D^{(1)},\cdots,\mathcal D^{(M)} D(1),,D(M) 可以是有着任意标签、大小不同的数据集。直接在原始数据集上优化 L M P \mathcal L_{MP} LMP 会使 few-shot 学习器更有可能偏向于更大的数据集。在我们的工作中,我们进行分层抽样形成一个 batch,其中从 D ( 1 ) , ⋯   , D ( M ) \mathcal D^{(1)},\cdots,\mathcal D^{(M)} D(1),,D(M) 中抽取一个训练样本 i i i,其概率与它自己的数据集大小成正比 (记为 w i w_i wi),即 w i = l o g ∣ D ( k ) ∣ + γ M ⋅ γ + ∑ k ′ = 1 M l o g ∣ D ( k ′ ) ∣ w_i=\frac{\rm log|\mathcal D^{(k)}|+\gamma}{M\cdot \gamma+\sum_{k^{'}=1}^M\rm log|\mathcal D^{(k^{'})}|} wi=Mγ+k=1Mlog∣D(k)log∣D(k)+γ,其中 γ > 0 \gamma>0 γ>0 是平滑因子, i ∈ D ( k ) i\in \mathcal D^{(k)} iD(k)。因此,将 L P T \mathcal L_{PT} LPT 重新定义为加权多任务提示 (WMP,weighted multi-task prompting) 损失 L W M P \mathcal L_{WMP} LWMP
L W M P = − ∑ i ∈ D w i ⋅ P ( V ∣ i , P i , O i , Θ ) ⋅ l o g   Q ( V ∣ i , P i , O i , Θ ) \mathcal L_{WMP}=-\sum_{i\in \mathcal D} w_i\cdot P(\mathcal V|i,P_i,O_i,\Theta)\cdot {\rm log}\ Q(\mathcal V|i,P_i,O_i,\Theta) LWMP=iDwiP(Vi,Pi,Oi,Θ)log Q(Vi,Pi,Oi,Θ)

2.3 统一提示在自监督学习中的推广

Figure 2: KSMLM 任务中 POV 生成过程的示例。

  上述方法的一个缺点是,这些有监督学习任务中的标签词汇是有限的,覆盖的单词表 V \mathcal V V 范围也很窄。模型不能很好地推广到有新标签词的任务中。因此,我们将利用 POV 范式提出 MLM 预训练的思想。

  给定一个句子,我们可以随机 mask 一个词,将正确的词和一个随机选择的词作为选项,然后让模型做出预测。不幸的是,看似可行的方法会破坏训练过程,因为不是所有的词都是合适的标签词。例如,停止词和大量的动词、副词,它们在下有任务中的任何 verbalizers 中都没有使用过。选项中使用的备选词要合理,才能使模型学到真正有用的知识。为了解决这个问题,我们提出了一个自监督的 KSMLM 任务,如 Figure 2 所示。下面,将描述 KSMLMPOV 的构造过程,之后也将给出任务的损失函数。

P-Generation:这个过程旨在为每句话生成一个带有 [MASK] token 的模板,在多任务训练阶段固定为 “It is [MASK].”在特定任务的 fine-tuning 阶段,遵循 LM-BFF (Making Pre-trained Language Models Better Few-shot Learners) 为每个任务自动生成模板。在训练过程中,要求 PLM 预测 [MASK] 位置的实际单词。

O-Generation: 参考 LM-BFF,可以看到,语言理解任务的标签词大多是形容词 (例如情感分析中的 “great” 和 “terrible”)。因此在我们的工作中,我们通过词性标注模型 (使用的是 spacy 工具,https://spacy.io/) 检测语料库中的所有形容词,并过滤掉低频的形容词。然后用 K-Means 对形容词进行聚类,并将它们的 token 表征从底层 PLM 中生成作为特征。我们构造了一个名为 选项知识库 (Options Knowledge Repository,OKR) 的知识库,其形式为三元组 R = ( v , v ⃗ , c v ) \mathcal R={(v,\vec{v},c_v)} R=(v,v ,cv),其中 v v v 是一个候选标签词, v ⃗ \vec{v} v c v c_v cv 分别定义为 v v v 的表征向量和隶属的簇。集群中心也被存储。我们不使用现有的词典,如 WordNet,因为它们可能所覆盖的标签词有限。此外,自动的过程使我们的算法能够扩展到任意语言和领域。

  由于 R \mathcal R R 的可用性,我们可以生成知识引导的选项。给定一个以 v v v 为 [MASK] 单词的句子,我们针对 R \mathcal R R 查询关于 v v v 最不相似的聚类,定义为 c ~ v \widetilde c_v c v,采用向量表征 v ⃗ \vec{v} v 与聚类中心的余弦相似度作为相似度的评价指标。最后, c ~ v \widetilde c_v c v 中随机选择一个形容词作为可替代的标签词,来生成知识引导选项 (knowledge-induced options)。选项的文本表达式是固定的,即 “Is it [x1] or [x2] ?”可以进一步参考 Figure 2 中的示例。

V-Generation: 对于 verbalizers,将选项中的 真实标签词 和 生成的标签词 映射到两类,即 Class: CorrectClass: Incorrect例如,Figure 2 中示例语句的 verbalizers 是:

It is “effective”. →“Class: Correct”
It is “ineffective”. →“Class: Incorrect”

损失函数: KSMLM loss 与 PET 中使用的辅助 MLM loss 显著不同。在 D ~ \widetilde{\mathcal D} D 中,每个训练样本 i i i 可以通过 POV 的构造过程直接扩展到 KSMLM 的训练样本,其中只有一个 [MASK] token、知识引导选项 O i O_i Oi 和 prompt P i P_i Pi。训练 PLM 来预测句子中正确的 [MASK] 单词,损失函数为
L K S M L M = − ∑ i ∈ D ~ P ( V ∣ i , P i , O i , Θ ) ⋅ l o g   Q ( V ∣ i , P i , O i , Θ ) \mathcal L_{KSMLM}=-\sum_{i\in \widetilde{\mathcal D}} P(\mathcal V|i,P_i,O_i,\Theta)\cdot {\rm log}\ Q(\mathcal V|i,P_i,O_i,\Theta) LKSMLM=iD P(Vi,Pi,Oi,Θ)log Q(Vi,Pi,Oi,Θ)
总的来说,UPT 的损失函数 L \mathcal L L 定义为 WMP 和 KSMLM 的总和:
L = L W M P + λ ⋅ L K S M L M \mathcal L=\mathcal L_{WMP}+\lambda\cdot\mathcal L_{KSMLM} L=LWMP+λLKSMLM
其中 λ ≥ 0 \lambda\geq 0 λ0 为平衡超参数。

讨论: 据我们所知,外部知识也被应用于其他基于 prompt 的方法,如 KPT (Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification)。与 KPT 的主要区别在于 UPT 使用了知识用于自监督任务 KSMLM 的选项创建,以提高模型的泛化能力,从而准确地适应新的任务。相反,以前的工作考虑了特定下游 NLP 任务的 verbalizers 的扩展。

2.4 Few-shot Fine-tuning

  对于特定的下游任务 T ∗ \mathcal T^* T,目标 few-shot 训练集 D ∗ \mathcal D^* D 中的样本可以在 UPT 中使用与那些有监督任务相同的方式进行处理和计算。两个阶段的学习一致性确保了底层 PLM 已经获得了 T ∗ \mathcal T^* T 的 prompting 知识。此外,可以在各种任务上 prompt-tune 一个单一的 PLM,并使用它对任何目标任务进行 fine-tune,从而在计算上高效地为这些应用生成相应的模型。

3 实验

3.1 实验设置

  在实验中,使用了 9 个公开的文本分类数据集来评价所提出的 UPT 框架,这些数据集被分为 3 组:

  • 情感分析: SST-2,MR,CR;
  • 自然语言推理 (NLI,Natural Language Inference): MNLI,SNLI,QNLI,RTE;
  • 复述 (Paraphrase): MRPC,QQP;

数据统计见附录。默认情况下, K = 16 K=16 K=16 (每类的训练实例)。

  在 UPT 中,我们只利用来自所有 dissimilar 任务组的全部训练数据,然后在低资源设置下对目标任务的模型进行 prompt-tune。例如,当目标任务是 SST-2 时,UPT 中的训练数据来自于 NLI 和 Paraphrase。除非另有说明,底层 PLM 模型一般是 RoBERTa-large。baseline 包括标准的 fine-tuning,以及最近提出的 4 中 few-shot 学习算法:PET,LM-BFF,P-tuning,PPT。为了与这些单个任务的 baseline 进行公平比较,我们方法的一个变体 (称为 UPT-Single) 也是通过仅对基于 POV 的 few-shot 任务进行 fine-tuning 而实现,而不使用 dissimilar 的有监督源任务。

  当使用其它 dissimilar 数据集来训练模型时,我们还使用两个相同的 dissimilar 数据集作为 strong baselines 进行 meta-tune 作为两个多任务方法,即 MT (Zero-shot) 和 MT (Few-shot)。我们还是先了 UPT 的 zero-shot 版本,即 UPT (Zero-shot)。此外,给定一个有监督 NLP 任务,可以手动创建多个 prompt。通过这些 prompt 增强一个训练样本,我们可以自动实现 self-ensemble learning。对于 self-ensemble 版本的 UPT,使用了 5 中不同的 prompt。对于每个输入样本,随机选择一个选项表达式和一组 verbalizers。我们把这种方法称为 UPT-SE。所设计的 prompts,options,verbalizers 如 Table 5 所示。所有这些模型的结果以平均准确率和标准差作为评价指标,超过 5 个随机种子。

  训练模型时使用 Adam 优化器,所有训练阶段时的学习率固定为 1e-5。超参数默认设置为 γ = 0.001 \gamma=0.001 γ=0.001 λ = 0.1 \lambda=0.1 λ=0.1,这些也在开发集上微调。参数正则化器与 LM-BFF 一样。

3.2 主要结果

Table 1:在所有测试集中 UPT 和 baselines 的 accuracy (%) 和标准差的比较。“FT” 和 “PT” 分别指 fine-tuningprompt-based fine-tuning 的范式。加粗的 Method 指的是我们的方法及其变体。baselines 的分数是使用他们开源的代码重新跑出来的。

Table 1 中,展示了 UPT 和所有 baseline 的实验结果。结果表明:

  1. 基于 prompt 的方法 (即 PET、LM-BFF、P-tuning、PPT) 比标准的 fine-tuning 有很大改进。
  2. UPT-Single 的平均性能由于以往的 few-shot 学习模型,这表明使用 POV 优于普通的 prompts (PET)。
  3. UPT (包括不同版本和 ensemble 版本) 在所有任务上的表现都优于所有 baselines,这表明我们的框架通过从 dissimilar 任务组中学习而具有更好的泛化性能。
  4. MT (Zero-shot) 和 UPT (Zero-shot) 在 BERT-style 模型上的结果并不令人满意。与超大型模型不同的是,我们认为 few-shot prompt-tuning 对于 BERT-style 模型在这些任务中产生好的结果是必要的。
  5. 通过 UPT 和 MT (few-shot) 的比较,可以看到,提出的 POV 范式和自监督 KSMLM 任务更适合用于 few-shot 学习。
  6. 一般来说,UPT-SE 在所有任务上的平均 accuracy 都比 UPT 提高了 1.2%。这意味着 self-ensemble 学习可以提高模型的泛化能力,但这种提高并不是在所有任务中都一样。一个可能的原因是某些 prompts 和 options 对于目标任务并不是最佳的。

3.3 模型分析

Figure 3:关于超参数 λ 的参数分析

参数分析: 对平衡系数 λ \lambda λ 的最佳选择进行了参数分析。在 Figure 3 中展示了在 SST-2 和 RTE 上的结果。当 λ = 0.1 \lambda=0.1 λ=0.1 时性能最好,这表明我们提出的 UPT 在与 自监督 KSMLM 任务联合训练时具有泛化能力。我们还观察到,当 λ \lambda λ 变大时,性能下降。这意味着 KSMLM 是一个合适的正则化任务,但也可能引入许多与下游任务无关的 prompts 和 options。这为模型改进提供了新的思路。


Table 3:在 accuracy (%) 方面的消融研究。这里忽略了标准差以节省空间。

消融研究: 为了明确验证 UPT 中每个成分的贡献,我们对所有组进行了消融研究,并展示了平均 accuracy。如 Table 3 所示:

  • w/o. POV 表示使用手动设计 prompts 的方法,而不是用任何 options;
  • w/o. KSMLM 等同于设置 λ = 0 \lambda=0 λ=0,这与 UPT-Single 相同;
  • w/o. OKR 是指在优化 KSMLM 任务时,在没有知识指导的情况下随机选择 options 中的备选标签词;
  • w/o. POV & KSMLM 表示没有任何 options 的方法和辅助的 KSMLM 任务

结果表明,无论去掉那个模块,模型性能都将受到影响。特别低,当同时去除 POVKSMLM 时,性能分别下降 1.4%、1.5%、4.4%,这个设置条件下的 accuracy 低于 w/o. POVw/o. KSMLM,这表明这两个成分对我们框架的高性能都有很大的贡献。我们还发现 w/o. POVw/o. KSMLM 在所有组中都优于 MT (few-shot)。此外,我们发现如果我们使用 KSMLM 但移除 OKR,所有这些任务的性能都有所下降,但仍然高于 w/o. KSMLM,这意味着我们从语料库中挖掘的选项知识适合于自监督学习任务。


Figure 4:样本效率分析的结果。比较了在两个任务中 UPT 和 标准 fine-tuning 有着不同的训练样本数 K 时的模型性能。

样本效率 (Sample Efficiency): 我们进一步探讨了每类训练样本的数量 ( K K K) 从 16 到 512 的模型效率。我们还使用标准 fine-tuning 作为参考。 如 Figure 4 所示,每个点指的是在 5 个随机采样数据集上的平局分数。可以观察到,无论训练样本数量如何,UPT 都能获得更高的分数。另外,UPT 的变动比 fine-tuning 低,说明我们方法的稳定性更好。这不同于其它的 prompt-based 方法 (PETLM-BFF)。


Table 2:模型规模分析结果。我们展示了基于其他规模的 BERT 的 UPT 的 accuracy (%),以及在 dissimilar 数据集上对比于 w/o. prompt learning 的相对提高。

模型规模分析: 为了进一步说明 UPT 无论在何种规模下都能提高模型性能,我们将多个 small-scale 的 BERT 作为模型的 backbone。由于篇幅限制,我们仅说明 Table 2 中关于 SST-2、MR 和 CR 的结果。为了进行公平的比较,我们还测试了在不使用 dissimilar NLP 数据集的情况下的性能,并展示了相对的提高。结果表明模型规模对模型的泛化能力有重大影响。我们还发现,使用 dissimilar 的数据集可以极大地提高效率,尤其是在 small-scale PLMs 上。因此,我们的方法更适合生产用于在线应用程序的小型 PLMs。


任务组适应效率 (Adaptation Efficiency of Task Groups): 因为我们着重于多任务训练,然后在低资源的设置下对目标任务进行 prompt-tuning,因此哪一组/多少组任务对适应改善的效果更好是值得探讨的。具体来说,当给定一个目标任务 (例如 MNLI),我们只选择一组任务 (如 Group 3 (Paraphrase) 中的 MRPC 和 QQP) 进行多任务 prompt-tuning ,然后在目标任务上对模型进行 fine-tune。如 Figure 5 所示,第 i i i 行第 j j j 列中的单元格表示 从 对于第 j j j 个任务的单任务学习 到 第 i i i 组被加入到多任务 prompt 学习 的相对提高。为了可视化,我们将每一列的值都归一化,以显示每一组的影响百分比。结果表明,在同一任务组中添加来自其他数据集的数据样本时,目标任务的性能提高最大。但是,在低资源的场景下,类似的数据集是不可用的。通过 UPT,我们甚至可以将 dissimilar 任务的数据集中的知识转移到目标任务中。

  具体来说,以 NLI 作为源组,从这组中随机选择 M M M 个数据集作为源任务,然后对每个目标任务进行模型的 prompt-tune。Figure 6 的结果表明,当增加 M M M 值时,accuracy 会提高。我们还发现对于 MRPC 和 QQP 的改进更为明显。我们认为 NLI 更容易适应 parapharse 任务,因为它们都对句子对之间的关系进行了建模。

4 相关工作

预训练语言模型: 近年来,得益于 PLMs 强大的建模能力和计算资源,我们见证了多个 NLP 任务的质的提升。例如,大型 GPT 模型系列利用多层 Transformer 解码器捕获自然语言的从左到右的语义。BERT 专注于双向语境表征的学习。其他值得注意的 PLMs 包括 Transformer-XL、ELMo、RoBERTa、AlBERT、XLNet、StructBERT、T5 等等。由于模型的结构不是我们工作的重点,我们不做详细说明。

Prompt-based Learning: 通过学习 [ C L S ] [CLS] [CLS] head 直接 fine-tuning PLMs 可能在训练样本很少的情况下表现不佳。最近,巨大的 GPT-3 模型被提出来支持 in-context 学习,它引入了手工制作的 prompts 和 demonstrations。PET 将手工制作的 prompts 应用于 BERT-style 模型的 prompt-based fine-tuning。为了促进自动生成 prompt,Gao等人提出了 LM-BFF 来生成离散模板。其它的工作基于启发式规则/语义关系从训练语料库中提取 prompts。然而,这些方法对于挖掘目标任务的优化 prompt 都比较耗时。一系列方法被提出用来学习 连续 prompt 或 soft prompt 的 embeddings,例如 P-tuningP-tuning V2、OptiPrompt、Prefix-tuning。

  最近,Finetuned Language Models Are Zero-Shot LearnersAdapting Language Models for Zero-shot Learning by Meta-tuning on Dataset and Prompt CollectionsMetaICL: Learning to Learn In ContextReframing Instructional Prompts to GPTk’s Language 将来自于不同 NLP 任务中提取的混合数据样本对 PLMs 微调,并使用手动设计的任务特定的 prompts。然后利用得到的 PLMs 以 zero-shot 学习的方式来处理未见过的任务。这些方法由于大型 PLMs (例如 GPT-3、T5) 而成功,但消耗了大量的计算资源。我们进一步利用来自无目标 NLP 任务的数据,使 PLMs 的 prompt-tune 能够在未见过的 NLP 任务上具有更好的适应能力。

5 结论和未来的工作

  在本文中,我们提出了 Unified Prompt Tuning 框架 (UPT),通过显式地从无目标数据集中捕获提示语义,使 BERT-style 模型能够更好地进行 few-shot 文本分类。

  实验表明,UPT 在基于 prompt 的 fine-tuning 方面的性能始终优于 SOTA。

  在未来的工作中,我们寻求将 UPT 扩展到其他任务,如命名实体识别、文本生成和机器翻译。此外,我们将探索 UPT 的延伸的 prompt-tuning。

猜你喜欢

转载自blog.csdn.net/Friedrichor/article/details/128428830
今日推荐