PPT: Pre-trained Prompt Tuning for Few-shot Learning

文章汇总

当前的问题

当前的学者(a)、(b)、©都是通过微调模型(encoder/decoder)来适应下游任务。尽管效果很好,但是一方面代价很大 ,一方面在小样本设置下 ,微调模型这种做法性能差得多。本文的想法:通过一些预训练任务仅冻结所有PLM参数并仅调整软提示 ,而不添加任何中间层和任务特定组件。

从公式的角度来描述:

目标都是希望掩码的预测结果等于标签 v ( y ) v(y) v(y)

公式(1)即为之前的做法:微调的为encoder/decoder的参数 θ \theta θ

公式(2)即为推荐的做法:添加上软提示 P \bm P P,微调的为软提示 P \bm P P。

作者的预训练做法

将下游任务分成 m m m种 { τ 1 , τ 2 , ... , τ m } \{\tau_1,\tau_2,\ldots,\tau_m\} {τ1,τ2,...,τm}。我们希望在所有模型参数固定的情况下,对这些任务通过公式(2)进行软提示的预训练,得到 m m m个预训练提示 { P 1 , P 2 , ... , P m } \{\bm P_1,\bm P_2,\ldots,\bm P_m\} {P1,P2,...,Pm}其中 P i \bm P_i Pi适用于 τ i \tau_i τi的下游任务提示。之后 P i \bm P_i Pi作用于该任务的推理。当然,这样的 P i \bm P_i Pi仅针对某个下游任务,所以作者也设计了一个任务得到通用的 P \bm P P来适应各种任务。

作者举了三种经典的下游任务以及设置通用的 P \bm P P的任务。

1.句对分类

预训练任务: P V P i p r e = ( f i p r e , v i p r e ) PVP^{pre}_i=(f^{pre}_i,v^{pre}_i) PVPipre=(fipre,vipre), v i p r e v^{pre}_i vipre为标签, f i p r e f^{pre}_i fipre为训练数据。

取两个句子 x = ( s 1 , S 2 ) x = (s1,S2) x=(s1,S2)作为输入。设标签 Y = { 0 , 1 , 2 } \mathcal{Y}=\{0,1,2\} Y={0,1,2}为3分类作为预训练任务。 Y \mathcal{Y} Y中的这些标签可以分别表明两个句子之间的语义关系是一致的(标签2),相似的(标签1)和不相关的(标签0)。

2.选择分类

给定一个句子作为查询,要求从6个候选句子中选择相邻的句子,记为 s 1 ∼ s 6 s_1 \sim s_6 s1∼s6,因此标签集为 Y = { 1 , 2 , 3 , 4 , 5 , 6 } \mathcal{Y}=\{1,2,3,4,5,6\} Y={1,2,3,4,5,6}。

对于 x = ( s q , s 1 , ... , s 6 ) x=(s_q,s_1,\ldots,s_6) x=(sq,s1,...,s6), ( f i p r e , v i p r e ) (f^{pre}_i,v^{pre}_i) (fipre,vipre)为

3.单句情感分类

对于语料库中的一个给定的句子 s s s,我们有输入 x = ( s ) x=(s) x=(s)和标签集 Y = { 1 , 2 , 3 , 4 , 5 } \mathcal{Y}=\{1,2,3,4,5\} Y={1,2,3,4,5}。 ( f i p r e , v i p r e ) (f^{pre}_i,v^{pre}_i) (fipre,vipre)为

统一的提示P

PVPs可以统一为单一格式:多项选择分类 。具体来说,对于句子对分类,查询是两个句子的连接,标签设置为三个选项:no、maybe和yes。对于单句分类,查询是输入句子,选项是具体标签。注意,通过这种方式,预训练的PVP可以用于来自任意域的单个文本分类任务,并且具有更多的标签

由于不同的任务可能有不同的候选数和长度,我们构建了选项数从2到16,选项长度从50到20的预训练样本。我们使用[2.选择分类节]中的PVP进行预训练,然后应用预训练的软提示来覆盖上面提到的三个分类任务。

摘要

预训练语言模型(PLMs)的提示通过弥合预训练任务和各种下游任务之间的差距,显示出了显著的性能。在这些方法中,提示调优(prompt tuning)冻结PLM,只调整软提示,为大规模PLM适应下游任务提供了一种高效的解决方案。然而,提示调整尚未得到充分的探索。在我们的先导实验中,我们发现当下游数据充足时,提示调优的性能与传统的全模型调优相当,而在小样本学习设置下,提示调优的性能要差得多 ,这可能会阻碍提示调优的应用。我们将这种低性能归因于初始化软提示的方式。因此,在本工作中,我们提出通过在预训练阶段添加软提示来预训练提示,以获得更好的初始化 。我们将这个预训练提示调整框架命名为"PPT"。为了保证PPT的泛化性,我们将类似的分类任务制定成统一的任务表单,并针对统一的任务预训练软提示。大量的实验表明,在全数据和小样设置下,对下游任务的预训练提示进行调优可以达到甚至优于全模型微调。我们的方法对于在实践中使用大规模PLM是有效和高效的。该代码可在https://github.com/thu-coai/PPT公开获得。

1 介绍

图1:预训练(屏蔽语言建模)、全模型调优(面向任务的微调和面向提示的微调)和提示调优的范例。语言表达器是一个将任务标签映射到具体单词的功能。< X >表示典型预训练编码器-解码器模型的掩码。

微调预训练语言模型(PLM) (Devlin等人,2019;Radford等人,2019;rafael et al ., 2020)近年来取得了很大进展。通过调整整个模型参数,从大规模未标记语料库中获得的通用知识可以适应处理各种NLP任务并且优于从头开始学习模型的方法(Han et al ., 2021a)。为简单起见,我们将这种全模型调优命名为"FT"。如图1 (b)和©所示,有两种主流的FT方法。第一种是面向任务的微调,在PLM之上添加一个特定任务的头部,然后通过在相应的训练数据上优化特定任务的目标来对整个模型进行微调。

第二个是面向提示的微调(Schick和sch策,2021a),其灵感来自最近使用语言提示来探索PLMs中的知识的作品(Petroni等人,2019;Brown et al, 2020)。在面向提示的微调中,数据样本被转换为包含提示符号的序列,下游任务被形式化为语言建模问题。如图1 ©所示,通过在句子中添加提示"It was .",我们可以通过预测掩码位置的"great"或"terrible"来确定其与plm的情感极性。如图1所示,与面向任务的微调相比,面向提示的微调更类似于预训练目标(掩模语言建模),从而有助于在PLM中更好地使用知识,并通常获得更好的性能。

尽管FT(Fine Tuning)显示出了令人满意的结果,但随着模型规模的快速增长,为每个下游任务微调和存储整个大型模型的成本要高得多 。为了应对这一挑战,Lester等人(2021)提出了提示调整(Prompt Tuning),以使大型PLM适应下游任务,如图1 (d)所示。具体而言,PT使用由连续嵌入组成的软提示,而不是硬提示(离散语言短语)。这些连续提示通常是随机初始化和端到端学习的。为了避免为每个下游任务存储整个模型,PT冻结所有PLM参数并仅调整软提示,而不添加任何中间层和任务特定组件。

图2:PT和FT的对比。调优提示由100个可学习的嵌入组成,这些嵌入的维度与PLM的令牌嵌入相同(4096个维度)。所有这些结果都是基于11B PLMs T5和CPM-2。FT需要优化全部11B个参数,而PT只训练约410K个提示参数。

PT(Prompt Tuning)有两个有希望的优势。首先,与硬提示相比,软提示可以端到端学习。其次,对于大规模PLM的实际应用来说,PT(Prompt Tuning)是一种高效的范例,当下游数据充足时,它与FT相当(图2(a))。然而,如图2(b)所示,我们发现在小样本设置下,PT的性能远不如FT,这可能会阻碍PT在各种低资源场景下的应用。

因此,在本文中,我们探索如何通过PT高效有效地利用PLM进行小样本学习。具体而言,我们在第2节中进行了试点实验,实证分析了PT对PLM的有效性,这是大多数现有工作所忽略的。研究发现:(1)言语表达者的选择对绩效有较大影响;(2)单纯初始化带有具体词嵌入的软提示并不能提高性能,而(3)软硬结合的提示有助于提高性能;(4)这些||示令牌至关重要。

为了帮助模型找到合适的提示,我们在大规模未标记语料库上使用自监督任务预训练这些令牌。为了保证预训练提示的泛化,我们将典型的分类任务分为三种格式:句子修复分类、多项选择分类和单文本分类,每种格式对应一个自监督预训练任务。

此外,我们发现在这些格式中,选择题分类更为普遍,我们可以将所有的分类任务统一到这种格式中。我们将这个预先训练的提示调整框架(Pre-trained Prompt Tuning framework)命名为"PPT"。我们在几个数据集上评估PPT,这些数据集基于三个11B PLM: T5-XXL (rafael等人,2020),mT5-XXL (Xue等人,2021)和CPM-2 (Zhang等人,2022)。实验表明,PPT不仅可以大幅度提高PT,达到甚至超过FT方法,而且还可以减少小样本学习的方差。除了有效性,PPT还保留了PT的参数效率,这对未来大规模PLMs的应用有价值。

2 先导实验

在本节中,我们提出了PT的少量学习先导实验。我们分析了三种策略:混合提示调优、语言器选择,以及实字初始化。我们遵循Lester等人(2021)使用T5-XXL (11B参数)测试PT,并使用100个可调软提示令牌1。

根据Schick and sch (2021b),我们从原始训练数据中随机选择32个样本构建训练集 D t r a i n D_{train} Dtrain。为了调整超参数,我们从原始训练数据组成一个验证集 D d e v D_{dev} Ddev,并确保 ∣ D t r a i n ∣ = ∣ D d e v ∣ |D_{train}|=|D_{dev}| ∣Dtrain∣=∣Ddev∣来模拟小样本学习设置(Perez et al, 2021)。我们跟随Zhang等人(2021)和Gao等(2021)使用原始验证集作为测试集 D t e s t D_{test} Dtest,即 ∣ D t e s t ∣ ≫ ∣ D t r a i n ∣ = ∣ D d e v ∣ |D_{test}|\gg |D_{train}|=|D_{dev}| ∣Dtest∣≫∣Dtrain∣=∣Ddev∣。

Hybrid Prompt Tuning

表1:在SST-2上,硬提示和语言表达器对小样本学习(32个样本)PT的影响。P表示软提示。S表示输入句子。"Man"表示手动设计的硬提示,"Gen"表示自动生成的硬提示。硬提示和语言表达器的选择对模型性能有显著影响。

在Hybrid Prompt Tuning中,同时使用软提示和硬提示(Liu et al ., 2021;Han et al ., 2021b)。然而,以前的工作是与整个模型联合训练软提示。在只有提示令牌可调的PT中,混合提示的有效性尚未得到充分探索。在表1中,我们展示了将软提示 P \bm P P与三个手动设计的硬提示和两个自动生成的硬提示(Gao et al, 2021)结合起来处理情感分类任务(Socher et al, 2013)的结果。我们可以看到,硬提示提高了PT,但仍然低于FT。而且,不同的硬提示对性能的影响很大,因此需要大量的人力来设计和选择提示。

用言语表达选择

言语表达者将任务特定的标签映射到具体的标记。例如,在图1 ©和(d)中,语言表达器将标签"Positive"映射为"great"。从表1可以看出,言语者的选择对绩效的影响是显著的。一般来说,解释相应标签含义的常用词效果很好。这也指导了我们在第3节中PPT的语言选择。

实字初始化

在实际单词初始化中,我们使用具体单词的嵌入来初始化软提示,并测试了四种初始化策略。在以前的工作中,这种方法的有效性已经在小型PLM(小于3B个参数)上得到了验证(Lester et al, 2021)。然而,从SST-2 (Socher et al ., 2013)和BoolQ (Clark et al ., 2019)的实验中(表2),我们发现对于11B模型,在小样本学习场景下,真实单词初始化对性能的影响很小,甚至是负面的。这表明小模型上的观测结果不能直接适用于大模型,为软提示找到一个好的初始化还有待探索。

综上所述,尽管上述增强策略不能帮助PT在小样本设置下获得与FT相当的结果,但它们仍然是影响PT性能的关键因素。在接下来的章节中,我们将描述我们的PPT框架,并通过实验证明,PPT不仅提供了良好的提示初始化,而且利用了良好的语言化器,是混合提示的补充。

3 Pre-trained Prompt Tuning (PPT)

在本节中,我们描述了PPT的整个框架,包括如何预训练提示和使用这些预先训练好的提示来完成特定的任务。

3.1 概述

遵循T5 (rafael等人,2020)和PT (Lester等人,2021)的方法,我们以文本到文本的格式解决所有下游任务。如图1 ©所示,为了减少预训练与下游任务之间的目标差距,面向提示的微调将下游任务转换为完形目标。以分类为例,给定一个输入句子 x ∈ V ∗ x\in\mathcal{V}^* x∈V∗和它的标签 y ∈ Y y\in\mathcal{Y} y∈Y,一个模式映射 f : V ∗ → V ∗ f:\mathcal{V}^*\rightarrow\mathcal{V}^* f:V∗→V∗首先应用于将 x x x转换成一个新的序列 f ( x ) f(x) f(x),其中 V \mathcal{V} V是PLM的词汇表。 f ( x ) f(x) f(x)不仅添加了一些提示令牌作为提示,而且保留了掩码令牌,以便PLM预测掩码位置的令牌。然后,言语表达 v : Y → V ∗ v:\mathcal{Y}\rightarrow\mathcal{V}^* v:Y→V∗用于将 y y y映射到一些标签标记 v ( y ) v(y) v(y)。对于 f ( ⋅ ) f(\cdot) f(⋅)和 v ( ⋅ ) v(\cdot) v(⋅),分类任务可以用模式-语言器对 ( f , v ) (f,v) (f,v):

其中 θ \theta θ表示所有可调参数,特别是PLM的参数。为方便起见,我们使用"PVP"来表示这种模式-语言表达器对(Schick和sch tze, 2021a)。

在PT (Lester et al ., 2021)中,将一组软提示 P \bm P P连接到序列的开头,模型输入变为 [ P ; f ( x ) ] [\bm P;f(x)] [P;f(x)],其中 [ ⋅ , ⋅ ] [\cdot,\cdot] [⋅,⋅]是连接操作。通过调整 P \bm P P Eq.(1)被

由于大规模PLM的强大功能,在全数据设置下,Eq.(2)被验证与这些FT方法相当。然而,我们发现很难学习有效的软提示,这可能会导致在各种小样本场景下的低性能。

参数初始化通常对模型训练和优化的难度有很大的影响,我们的先导实验表明,现有的初始化策略对大规模PLM的PT性能影响很小甚至是负面的。我们将这些试点实验的更多细节参见第4节。

图3:在句子对任务中使用PPT的一个例子。P为软提示。表示T5、CPM-2等典型编解码器模型的掩码。

近年来,预训练已被证明是一种寻找良好模型初始化的有效方法。受此启发,我们建议对软提示进行预训练。我们注意到一些下游任务组与建立在未标记的预训练语料库上的某些自监督任务相关。例如,一些句子对分类形式的任务,如自然语言推理和句子相似度,类似于预训练阶段使用的下一个句子预测(NSP) (Devlin et al, 2019)任务。如图3所示,这些任务都以两个句子作为输入,并比较它们的语义。因此,NSP预训练的软提示可以作为这些句子对任务的良好初始化。

形式上,假设我们可以将下游任务分成 m m m组 { τ 1 , τ 2 , ... , τ m } \{\tau_1,\tau_2,\ldots,\tau_m\} {τ1,τ2,...,τm},其中 τ i \tau_i τi为包含 n i n_i ni个下游任务的集合: { P V P i 1 , P V P i 2 , ... , P V P i n i } \{PVP^1_i,PVP^2_i,\ldots,PVP^{n_i}_i\} {PVPi1,PVPi2,...,PVPini},其中 P V P i k = ( f i k , v i k ) PVP^k_i=(f^k_i,v^k_i) PVPik=(fik,vik)。对于每一组,我们设计了相应的预训练任务 P V P i p r e = ( f i p r e , v i p r e ) PVP^{pre}_i=(f^{pre}_i,v^{pre}_i) PVPipre=(fipre,vipre)。在所有模型参数固定的情况下,对这些任务进行软提示的预训练,得到 m m m个预训练提示 { P 1 , P 2 , ... , P m } \{\bm P_1,\bm P_2,\ldots,\bm P_m\} {P1,P2,...,Pm}。然后,对于 τ i \tau_i τi中的每个任务 P V P i k PVP^k_i PVPik,我们使用 P i \bm P_i Pi作为软提示初始化,继续优化Eq.(2)。

3.2 设计模式-言语者对进行预训练

在本节中,我们以三个典型的分类任务为例,描述了用于快速预训练的模式语化器对 P V P i p r e PVP^{pre}_i PVPipre的设计。

3.2.1 句对分类

句对分类任务,如自然语言推理和句子相似度,取两个句子 x = ( s 1 , S 2 ) x = (s1,S2) x=(s1,S2)作为输入。为了为这些任务设计PVP,我们将Devlin等人(2019)的下一个句子预测扩展为标签\\mathcal{Y}={0,1,2} 3 分类作为预训练任务。 3分类作为预训练任务。 3分类作为预训练任务。\\mathcal{Y} 中的这些标签可以分别表明两个句子之间的语义关系是一致的 ( 标签 2 ) ,相似的 ( 1 ) 和不相关的 ( 0 ) 。为了从未标记的文档中构建信号,我们将相邻的两个句子设置为标签 2 ,将来自同一文档但不真实的句子设置为 1 ,将来自不同文档的句子设置为 0 。我们考虑标签集 中的这些标签可以分别表明两个句子之间的语义关系是一致的(标签2),相似的(1)和不相关的(0)。为了从未标记的文档中构建信号,我们将相邻的两个句子设置为标签2,将来自同一文档但不真实的句子设置为1,将来自不同文档的句子设置为0。我们考虑标签集 中的这些标签可以分别表明两个句子之间的语义关系是一致的(标签2),相似的(1)和不相关的(0)。为了从未标记的文档中构建信号,我们将相邻的两个句子设置为标签2,将来自同一文档但不真实的句子设置为1,将来自不同文档的句子设置为0。我们考虑标签集\|\\mathcal{Y}\|\\le 3 ,因为它涵盖了大多数句子对任务。 ,因为它涵盖了大多数句子对任务。 ,因为它涵盖了大多数句子对任务。PVP^{pre}_i=(f^{pre}_i,v\^{pre}_i)KaTeX parse error: Expected 'EOF', got '#' at position 118: ...071d67047f8.png#̲averageHue=%23f...PVP^k_i=(f^k_i,v^k_i)根据PVP^{pre}_i ,它很简单。 ,它很简单。 ,它很简单。s_1 和 和 和s_2 可以被输入的句子对替换。如果一个任务输出两个标签,那么我们取 可以被输入的句子对替换。如果一个任务输出两个标签,那么我们取 可以被输入的句子对替换。如果一个任务输出两个标签,那么我们取v_i^k(\\mathcal{Y})=\[\\text{no,yes}\]。如果一个任务输出三个标签,我们设置v_i^k=v_i\^{pre} 。如果一个任务要求测量两个句子之间的相似性,概率大于 。如果一个任务要求测量两个句子之间的相似性,概率大于 。如果一个任务要求测量两个句子之间的相似性,概率大于{\\text{no,yes}}可以胜任这项任务。

3.2.2 选择分类

许多任务可以公式化为多项选择分类,它以一个查询和几个候选答案作为输入。我们设计了一个下一个句子选择任务来预训练提示符。给定一个句子作为查询平方,训练模型从6个候选句子中选择相邻的句子,记为 s 1 ∼ s 6 s_1 \sim s_6 s1∼s6,因此标签集为 Y = { 1 , 2 , 3 , 4 , 5 , 6 } \mathcal{Y}=\{1,2,3,4,5,6\} Y={1,2,3,4,5,6}。这些候选词由正确答案、来自同一文档但与查询不相邻的一个句子以及来自其他文档的四个句子组成。对于 x = ( s q , s 1 , ... , s 6 ) x=(s_q,s_1,\ldots,s_6) x=(sq,s1,...,s6), ( f i p r e , v i p r e ) (f^{pre}_i,v^{pre}_i) (fipre,vipre)为

大多数选择题都可以使用 { f i p r e , v i p r e } \{f^{pre}_i,v^{pre}_i\} {fipre,vipre}直接作为他们的PVPs。对于阅读理解这样的任务,输入可能包含一篇文章和一个问题。我们将它们连接起来形成查询。

3.2.3 单句分类

对于单句分类,我们创建伪标签进行快速预训练。以情感分类为例,我们使用另一个小模型对预训练语料库中的句子标注情感标签,过滤掉分类概率较低的句子。在实践中,我们使用RoBERTaBASE (Liu et al ., 2019)模型对5类情感分类数据集进行微调,而不是我们评估的小样本数据集。然后,对于语料库中的一个句子 s s s,我们有输入 x = ( s ) x=(s) x=(s)和标签集 Y = { 1 , 2 , 3 , 4 , 5 } \mathcal{Y}=\{1,2,3,4,5\} Y={1,2,3,4,5}。 ( f i p r e , v i p r e ) (f^{pre}_i,v^{pre}_i) (fipre,vipre)为

对于5个标签的情感分类任务,我们可以使用 P V P i k = P V P i p r e PVP^{k}_i=PVP^{pre}_i PVPik=PVPipre。对于那些少于5个标签的,我们从 v i p r e ( Y ) v_i^{pre}(\mathcal{Y}) vipre(Y)中选择一个子集作为标签。

虽然上述方法提高了模型的性能,但我们必须指出,它仍然局限于推广到不同领域和不同数量标签的其他单文本分类。因此,我们提出以下方法来解决这个问题。

3.3 统一任务格式

上述用于预训练的PVPs可以统一为单一格式:多项选择分类。具体来说,对于句子对分类,查询是两个句子的连接,有三个选项:no、maybe和yes。对于单句分类,查询是输入句子,选项是具体标签。注意,通过这种方式,预训练的PVP可以用于来自任意域的单个文本分类任务,并且具有更多的标签。

构建统一的PVP类似于MultiQA (Talmor and Berant, 2019)和UnifiedQA (Khashabi et al, 2020)的理念。最近,Zhong等人(2021a)使用一些硬提示将多个任务统一为元问答任务。他们在QA数据集集合上用这个元任务调整整个模型,然后在低资源设置下转移到其他分类任务。但是,我们的PPT专注于调整软提示,固定了PLM的主体,我们的预训练是在完全无监督的数据上进行的,而不是在有监督的数据集上进行的。

由于不同的任务可能有不同的候选数和长度,我们构建了选项数从2到16,选项长度从50到20的预训练样本。我们使用3.2.2节中的PVP进行预训练,然后应用预训练的软提示来覆盖上面提到的三个分类任务。

4 实验

4.1 设置

表3:我们评估的数据集。"格式"一栏表示任务类别。SSC代表单句分类,MCC代表多项选择分类,SPC代表句对分类。 n c l a s s n_{class} nclass表示每个数据集的标签号。

我们对中文和英文任务都进行了实验(见表3)。如第2节所述,对于少于5个标签的任务,我们从原始训练数据中选取32个样本构建 D t r a i n D_{train} Dtrain和 D d e v D_{dev} Ddev,并确保标签数量平衡。对于像TNews和YahooAnswer这样有超过5个标签的任务,很难用标签平衡的样本组成一个数据集。因此,我们为每个标签随机选择8个样本。

对于英文数据集,由于前人的工作(Lester et al ., 2021;Zhang et al ., 2022)表明,在全数据设置下,T5-XXL与FT具有可比性。我们还在不同尺寸的T5上评估了FT,验证了更大的模型表现更好,因此基于T5- xxl改进PT是有意义的。对于中国数据集,我们基于11B模型CPM-2进行PT。由于CPM-2没有提供其他尺寸模型,我们将其与不同尺寸的mT5 (Xue et al, 2021)进行比较。

一致地,我们为PT使用100个软令牌。因此,可调参数只有100×4096 = 4.1 × 10^5 = 410K。与FT的11B (1:1 × 1010)个参数相比,PT每个任务只需要存储3000倍的参数。

为了提示预训练,我们从OpenWebText (Gokaslan等人,2019)中抽取10GB的英语任务数据,从WuDaoCorpora (Yuan等人,2021)中抽取10GB的中文任务数据。我们使用Yelp-5 (Zhang et al, 2015a)数据集来训练3.2.3节中提到的RoBERTaBASE模型。关于训练超参数的更多细节可以在附录C中找到。

4.2 主要结果

中英文数据集的主要结果如表4所示。在FT块中,我们给出了T5模型从小到XXL的FT结果。在PT块中,我们显示了PPT和其他基线的结果。第一个基线是Vanilla PT,其中软提示是从正态分布随机初始化的。第二种是第2节中的混合策略。我们还考虑了Lester等人(2021)使用的LM Adaption,其中使用语言建模对T5模型进行了10K步的进一步预训练,以减少预训练与PT之间的差距。我们测试了PPT的两种变体:混合PPT,其中精心设计的硬提示与预训练的软提示相结合;统一PPT,其中所有任务都统一为多项选择分类格式。
有效性 从表4中我们有四个观察结果。首先,更大的模型获得更好的整体性能,这意味着增加模型尺寸在少镜头设置下仍然有帮助。因此,我们在大规模预训练模型上研究PT。注意,在中国实验中,CPM2和mT5-XXL具有相同的参数尺度。

由于CPM-2在所有任务中都优于mT5-XXL,因此我们使用CPM-2作为基本模型。

其次,PPT在大多数数据集上显著优于香草PT和LM适配。虽然PPT在BoolQ上比Hybrid PT差,但结合PPT和硬提示(Hybrid PPT)的表现优于所有基线。这意味着预先训练软提示和使用混合提示是互补的。在RACE-m、立法会mc和C3等其他数据集上也观察到类似的现象,在PPT中添加硬提示继续改善结果。

第三,PPT在所有中文数据集和大多数英文数据集上都优于FT。这表明在屏蔽语言建模和下游任务之间仍然存在差距。快速的预训练在一定程度上弥补了这一差距。基于这一观察,我们的方法的一个直观的扩展是使用PVPpre i进一步预训练整个模型,并将模型微调到相应的下游任务。然而,由于我们在本文中关注的是PT,因此我们将其作为未来的工作。

第四,PPT在大多数数据集上的方差较低。Few-shot学习因其不稳定性而非常棘手,这在Vanilla PT中变得非常明显。对于一些数据集,如SST-2,方差达到15.5,这意味着模型在某些情况下并不比随机猜测表现得更好随机种子。结合语言建模的硬提示或进一步的预训练可以在一定程度上缓解这一问题。但在CCPM等数据集上,Hybrid PT增加了方差,LM自适应不能保证平均性能。在预训练的帮助下,所有数据集的方差保持在较低的水平。

表4:分类结果。每个数据集分别使用32个训练样本和32个验证样本进行实验。FT意味着全模型调优,即应该在每个数据集上对整个模型(大约有11B个参数)进行调优。PT表示快速调优,其中只训练了410K个参数。我们报告5个随机种子的均值和标准差。用粗体标记的分数表示在所有方法中表现最好。标有下划线的分数表示提示调优(PT)方法中的最佳分数。

表5:5个以上标签的单文本分类任务实验。不同于以往的实验,我们为每个标签随机选取8个样本。PT (MC)是指在没有及时预训练的情况下,以选择题的形式进行PT。
Unified PPT 将所有格式统一为多选项分类格式是PPT的另一种变体。在表4中,我们可以看到,统一PPT达到了与PPT和混合PPT相当的性能,仍然优于其他PT基线。然而,到目前为止,我们考虑的数据集不超过5个标签。对于标签较多的任务,特别是单文本分类,伪标签预训练不适合跨域适应,统一PPT是一个很好的选择。在表5中,我们在超过5个标签的数据集上测试统一PPT。对于PT和FT,我们使用将标签映射到直观选择的单词的语言化器。PT (MC)是指我们在没有快速预训练的情况下以选择题分类的形式解决任务。我们不使用PPT进行3.2.3节讨论的单句分类,因为很难找到其他合适的数据集来训练伪标签注释器。然而,我们可以看到,统一PPT仍然取得了最好的表现,甚至远远超过FT。

4.3 样品效率

我们讨论了当训练样本数量增加时,FT、PT和PPT的性能如何变化。在图4中,我们展示了这些方法在RACE-m和CB数据集上的趋势。在32 ~ 128个样本中,PPT始终优于PT,当样本数增加到256个时,三种方法的性能逐渐收敛。我们还比较了给定完整训练数据的不同调优方法。从表6中,我们可以看到PPT和Unified PPT在大多数数据集上仍然优于Vanilla PT。此外,我们观察到,尽管PT在单个优化步骤中比FT更快,但它的收敛速度要慢得多,这导致更长的训练时间。我们认为PPT可以有效地解决这一问题。如图5所示,通过预先训练的初始化,PPT加速了Vanilla PT在RACE-m和CB数据集上的收敛。我们在附录e中对培训消耗进行了更详细的分析。由于PPT的收敛速度仍然比FT慢一些,如何进一步加快PT的收敛速度值得在以后的工作中进行研究

图4:FT、Vanilla PT和PPT在不同训练样本数量下的对比。在样本数量较少的情况下,PPT始终优于Vanilla PT。当样本数量增加时,这些方法的性能越来越接近。

图5:FT、Vanilla PT和PPT的收敛性比较。PT的收敛速度比FT慢得多。由于预训练的初始化,PPT显著加快了收敛速度。

表6:FT、PT、PPT和Unified PPT在完整训练数据集下的表现。我们报告验证集上3个随机种子的均值和标准差。

5 相关工作

6 结论与未来工作

在本文中,我们提出了PPT,这是一个框架,可以提高对小样本学习的提示调整。我们建议首先将下游任务统一为几种格式。然后,我们为每种格式设计自监督预训练任务,并在这些任务上预训练提示。最后,我们根据预训练的初始化对下游任务进行提示调优。大量的实验表明,我们的方法明显优于其他提示调优基线,执行与全模型调优相当甚至更好。

未来的工作有三个重要方向:(1)为语言生成、关系提取等其他类型的任务设计统一的任务格式和相应的预训练目标。(2)评估其他参数高效调优方法的少镜头性能(He et al ., 2022),并对其进行统一的任务预训练。(3)在软提示之外,研究统一任务预训练对预训练语言模型本身是否有帮助。

参考资料

论文下载(ACL 2022)

https://arxiv.org/abs/2109.04332

代码地址

https://github.com/thu-coai/PPT

相关推荐
aneasystone本尊11 分钟前
学习 Coze Studio 的知识库入库逻辑
人工智能
然我12 分钟前
从 “只会聊天” 到 “能办实事”:OpenAI Function Call 彻底重构 AI 交互逻辑(附完整接入指南)
前端·javascript·人工智能
岁月宁静19 分钟前
软件开发核心流程全景解析 —— 基于 AI 多模态项目实践
前端·人工智能·后端
wangjiaocheng20 分钟前
软件功能分解输入处理输出递归嵌套模型
人工智能
G等你下课20 分钟前
Function call
前端·人工智能
岁月宁静21 分钟前
MCP 协议应用场景 —— Cursor 连接 Master Go AI
前端·vue.js·人工智能
柠檬味拥抱23 分钟前
融合NLU与NLG的AI Agent语言交互机制研究
人工智能
wydaicls27 分钟前
用函数实现方程函数解题
人工智能·算法·机器学习
努力当一个优秀的程序员34 分钟前
3.逻辑回归:从分类到正则化
人工智能·机器学习
小沈熬夜秃头中୧⍤⃝1 小时前
IOPaint 远程修图:cpolar 内网穿透服务实现跨设备图片编辑
人工智能