二十七、Prefix-Tuning[2021]

论文:《Prefix-Tuning: Optimizing Continuous Prompts for Generation》

  1. 微调是(finetuning )使用大型 pretrained 语言模型执行下游任务(如摘要)的普遍范式,但它需要更新和存储语言模型的所有参数。因此,为了建立和部署依赖大型 pretrained 语言模型的 NLP 系统,目前需要为每个任务来存储语言模型参数的 modified copy 。考虑到当前语言模型的庞大规模,这可能是非常昂贵的,例如,GPT-2774M 参数、GPT-3175B 参数。

    解决这个问题的一个自然方法是lightweight fine-tuning ,它冻结了大部分 pretrained parameters ,并用小的可训练模块来 augment模型。例如,adapter-tuningpretrained 语言模型的层之间插入额外的 task-specific layersadapter-tuning 在自然语言理解和自然语言生成基准上有很好的表现,达到了与微调相当的性能,而只增加了大约 2-4%task-specific parameters

    在另一个方面,GPT-3 可以在没有任何 task-specific tuning 的情况下部署。相反,用户将自然语言的任务指令(例如,TL;DR 用于摘要任务)和一些样本添加到任务输入中,然后从语言模型中生成输出。这种方法被称为 in-context learningprompting

    在本文中,我们提出了 prefix-tuning ,这是一种轻量级的替代微调的方法用于自然语言生成任务,其灵感来自于 prompting 。考虑为数据表格生成文本描述的任务,如 Figure 1 所示,任务输入是一个线性化的表格(例如,"name: Starbucks | type: coffee shop" ),输出是一个文本描述(例如,"Starbucks serves coffee." )。prefix-tuningcontinuous task-specific vectors 序列(我们称之为prefix,在 Figure 1(bottom) 中用红色块描述)前置到输入中。对于随后的 tokensTransformer 可以关注 prefix ,就像它是一串 "virtual tokens" 一样,但与 prompting 不同的是,prefix 完全由 free parameters 组成,不对应于 real tokensFigure 1 (top) 中的微调会更新所有 Transformer parameters ,因此需要为每个任务存储模型的 tuned copy 。与微调相反,prefix-tuning 只优化 prefix 。因此,我们只需要存储大型Transformer 的一个副本、以及学到的一个 task-specific prefix ,为每个额外的任务产生一个非常小的开销(例如,250K 参数用于table-to-text 任务)。

    实际上是在模型的每一层 Layer (包括输入层)都添加了相同的一个 prefix ,而不同任务的 prefix 不同。

    与微调相反,prefix-tuning 是模块化的:我们训练一个上游的prefix ,这个上游的 prefix 引导下游的语言模型,而下游的语言模型保持 unmodified 。因此,单个语言模型可以一次同时支持许多任务。在任务对应不同用户的 personalization 的背景下,我们可以为每个用户准备一个单独的prefix ,这个 prefix 只对该用户的数据进行训练从而避免数据交叉污染。此外,prefix-based 的架构使我们甚至可以在一个 batch 中处理来自多个 users/tasks 的样本,这是其他轻量级微调方法所不能做到的。

    我们在使用 GPT-2table-to-text generation 任务上、以及使用 BART 在抽象摘要任务上评估 prefix-tuning 。在存储方面,prefix-tuning 存储的参数比 fine-tuning1000 倍。在对完整数据集进行训练时的性能方面,prefix-tuningfine-tuningtable-to-text 任务上不相上下,而 prefix-tuning 在摘要任务上会有小幅下降。在 low-data setting 中,prefix-tuning 在这两项任务上的平均表现都优于微调。prefix-tuning 还能更好地推断出有 unseen 主题的表格(在 table-to-text 任务)和文章(在摘要任务)。

  2. 相关工作:

    • natural language generation: NLG 的微调:目前 SOTA 的自然语言生成系统是基于 fine-tuning pretrained LM

      • 对于 table-to-text generation《Text-to-text pre-training for data-to-text tasks》 微调了一个 sequence-to-sequence 模型(T5 )。

      • 对于抽取式摘要(extractive summarization )和抽象式摘要(summarization ),研究人员分别微调 masked language model (如 BERT )和 encode-decoder model (如BART )。

      • 对于其他的 conditional NLG 任务,如机器翻译和对话生成,微调也是普遍存在的范式。

      在本文中,我们关注的是使用 GPT-2table-to-text 任务、以及使用 BART 的摘要任务,但 prefix-tuning 也可以应用于其他 generation 任务、以及其他 pretrained 模型。

    • 轻量级微调:轻量级微调冻结了大部分 pretrained parameters ,并用小的可训练模块来修改 pretrained model 。关键的挑战是如何确定高性能的模块结构、以及要调优的 pretrained parameters 的子集。

      • 一条研究路线是考虑删除参数:通过在模型参数上训练一个 binary mask 从而消除一些模型权重(《Masking as an efficient alternative to finetuning for pretrained language models》《How fine can fine-tuning be? learning efficient language models》)。

      • 另一条研究路线考虑插入参数。例如:

        • 《Side-tuning:A baseline for network adaptation via additive side networks》训练了一个 "side"网络,该网络通过 summationpretrained model 进行融合。

        • adapter-tuningpretrained LM 的每一层之间插入 task-specific layersadapters )(《Parameter-efficient transfer learning for NLP》《Exploring versatile generative languagemodel via parameter-efficient transfer learning》《Learning multiple visual domains with residual adapters》《Adapter-fusion: Non-destructive task composition for transfer learning》)。

        这个研究方向调优了大约 3.6% 的语言模型参数。与之相比,我们的方法在 task-specific parameters 方面进一步减少了30 倍,只调优了 0.1% 的参数,同时保持了相当的性能。

    • Promptingprompting 是指在任务输入中前面添加指令和一些样本,并从语言模型中生成输出。

      • GPT-3 使用手动设计的 prompts 从而适配它的 generation 从而用于不同的任务,这个框架被称为 in-context learning 。然而,由于Transformers 只能对有界长度的上下文进行条件生成(例如,GPT-32048 tokens ),in-context learning 无法完全利用长于上下文窗口的训练集。

      • 《Conditioned natural language generation using only unconditioned language model: An exploration》也通过关键词来提示从而控制 generated sentence 的情感或主题。

      • 在自然语言理解任务中,prompt engineering 已经在之前的工作中为 BERTRoBERTa 等模型进行了探索。例如,AutoPrompt《Autoprompt: Eliciting knowledge from language model swith automatically generated prompts》)搜索 discrete trigger words 的一个序列,并将其与每个输入拼接起来,从而引导被 masked LM 的情感或事实性知识。与 AutoPrompt 相比,我们的方法优化 continuous prefixes ,其表达能力更强。此外,我们专注于语言生成任务。

      连续向量已经被用来引导语言模型;例如,《Can unconditional language models recover arbitrary sentences?》 表明,pretrained LSTM 语言模型可以通过优化一个连续向量来重建任意的句子,使向量成为 input-specific 。相比之下,prefix-tuning 优化了一个 task-specific prefix ,适用于该任务的所有实例。因此,与之前的工作(它的应用仅限于句子重建)不同的是,prefix-tuning 可以应用于自然语言生成任务。

    • 可控的 generation:可控生成的目的是引导 pretrained 语言模型与句子层面的属性(例如,positive 情感、或关于体育的话题)相匹配。

      • 这种控制可以在训练时发生:《Ctrl: A conditional transformer language model for controllable generation》对语言模型( CTRL )进行预训练,从而对元数据(如关键词或 URL )施加条件。

      • 此外,控制可以发生在解码期间,通过加权解码(《GeDi: Generative Discriminator Guided Sequence Generation》)或迭代式地更新过去的 activationsPPLM《Plug and play language models: A simple approach to controlled text generation》)。

      然而,目前还没有直接的方法来应用这些可控的生成技术来对所生成的内容进行细粒度的控制,如 table-to-text 任务和摘要任务所要求的。

27.1 方法

  1. 考虑一个 conditional generation 任务,输入是一个上下文 x ,输出 ytokens 序列。我们关注两个任务,如 Figure 2(right) 所示:

    • table-to-text 任务中,x 对应的是一个线性化的数据表,y 是一个文本描述。

    • 在摘要任务中,x 是一篇文章,y 是一个简短的摘要。

    这里展示了 decoder-only 模型、encoder-decoder 模型。实际上 encoder-only 模型(如 BERT)也可以采用类似的思路。

  2. 自回归语言模型:假设我们有一个基于 Transformer 架构(如 GPT-2 )的自回归语言模型 pϕ(yx),参数为 ϕ 。如 Figure 2(top) 所示,令 z=[x;y]xy 的拼接,令 Xidx 表示与 x 对应的索引序列,Yidx 表示与 y 对应的索引序列。

    hi(j)Rd 是时间步 i 的第 jTransformer layer 的激活;令时间步 iactivationhi=[hi(1),,hi(n)] ,为这个时间步的所有 activation layers 的拼接。自回归 Transformer 模型将 hi(j) 计算为 zi 和其左侧上下文中 past activations 的函数,如下所示:

    (1)hi(j)=LMϕ(zi,h<i(j))

    其中,最后一层的 hi(n) 用于计算 next token 的分布:

    (2)pϕ(zi+1hi)=softmax(Wϕhi(n))

    其中:Wϕpre-trained 参数矩阵。

    zi 表示拼接后的文本序列的第 itoken

  3. Encoder-Decoder 架构:我们也可以使用 encoder-decoder 架构(例如 BART )来建模 pϕ(yx),其中 x 由双向编码器来编码,解码器自回归地预测 y (以编码后的 x 、以及解码器左侧上下文为条件)。我们使用相同的索引和激活符号,如 Figure 2(bottom) 所示。所有 iXidxhi 由双向Transformer encoder 计算,所有 iYidxhi 由自回归解码器使用相同的方程式 hi(j)=LMϕ(zi,h<i(j)) 来计算。

  4. 微调:在微调框架中,我们用 pretrained parameters ϕ 来初始化。这里 pϕ 是一个可训练的语言模型分布,并且我们对以下对数似然目标进行梯度更新:

    (3)maxϕlogpϕ(yx)=iYidxlogpϕ(zih<i)
  5. Prefix-Tuning 的直觉:基于来自 prompting 的直觉,我们认为有一个适当的上下文可以引导语言模型而不改变其参数。例如,如果我们想让语言模型生成一个单词(如,“奥巴马”),我们可以在输入的签名添加它的常见搭配作为上下文(如,"巴拉克"),语言模型将为所需的单词分配更高的概率。

    将这一直觉延伸到生成单个单词或单个句子之外,我们想找到一个引导语言模型解决 NLG 任务的上下文。直观地说,上下文可以通过指导从 x 中提取什么来影响 xencoding ;也可以通过指导 next token 的分布来影响 y 的生成。然而,这样的上下文是否存在并不是显然的。自然语言任务的指令(例如,"summarize the following table in one sentence" )可能会指导专家标注员解决该任务,但对大多数 pretrained LM 来说是失败的。对离散的指令进行数据驱动的优化可能会有帮助,但 discrete optimization 在计算上具有挑战性。

    我们可以将指令作为 continuous word embeddings 来优化,而不是对 discrete tokens 进行优化,其效果将向上传播到所有Transformer activation layers 、并向右传播到后续的 tokens 。严格来说,这比 discrete prompt 更有表达能力,因为 discrete prompt 需要匹配一个真实的单词的 embedding 。同时,这比介入所有层的 activations (即,微调)的表达能力要差,后者避免了长距离的依赖,并包括更多可调优的参数。因此,prefix-tuning 优化了 prefix 的所有层。

  6. Prefix-Tuning 的方法:prefix-tuning 为自回归语言模型添加了一个前缀,得到 z=[Prefix;x;y],或者为编码器和解码器都添加前缀,得到 z=[Prefix;x;Prefix;y] ,如 Figure 2 所示。这里,Pidx 表示前缀的索引序列,我们用|Pidx|表示前缀的长度。

    我们遵循方程 hi(j)=LMϕ(zi,h<i(j)) 中的递归关系,只是 prefix 是自由参数。prefix-tuning 初始化一个尺寸为 |Pidx|×dim(hi) 的可训练矩阵 Pθ(参数为 θ )来存储 prefix parameters

    (4)hi(j)={Pθ[i,:], if iPidxLMϕ(zi,h<i(j)),else

    训练目标为 maxθlogpθ(yx)=iYidxlogpθ(zih<i) ,但可训练参数的集合发生了变化:语言模型参数是固定的,prefix parameters 是唯一可训练的参数。

    注意:这在每一层都添加了相同的 prefix,包括输入层。

    是否可以对不同的层采用不同的 prefix,使得表达能力更强?这就是 P-Tuning V2 的思想。

    这里,hi(对所有 i 而言)是可训练的 Pθ 的函数:

    • iPidx 时,这很清楚,因为 hi 直接从 P 中复制。

    • iPidx时,hi 仍然取决于 Pθ ,因为 prefix activations 总是位于左侧的上下文中,因此会影响其右边的任何 activations

  7. Pθ 的参数化:根据经验,直接更新 Pθ 参数会导致不稳定的优化和性能的轻微下降。因此,我们通过一个由大型前馈神经网络(MLPθ )组成的较小的矩阵(Pθ)来重参数化矩阵 Pθ[i,:]=MLPθ(Pθ[i,:])。注意,PθPθ 有相同的行维度(即前缀长度),但有不同的列维度。一旦训练完成,这些 reparametrization parameters 可以被放弃,只有前缀(Pθ )需要保存。

    这种重参数化为什么能提升效果?作者没有讲解原因。读者猜测是:原始的 Pθ 的自由度太高,而重参数化限制了它的自由度。这相当于降低了模型的容量。

    这种重参数化技巧相当于对 Pθ 增加了先验知识,但是读者感觉:原理上没讲清楚,整体算法不太优雅。

27.2 实验

  1. 我们在三个标准的数据集上评估了 table-to-text generation任务:E2E, WebNLG, DART

    • E2E 只有 1 个领域(即,餐厅评论),包含大约 50K 个样本,有 8 个不同的字段。对于一个 source table,它包含多个 test references ,平均输出长度为 22.9 。我们使用官方的评估脚本,其中报告了 BLEU, NIST, METEOR, ROOUGE-L, CIDEr

    • WebNLG14 个领域,包含 22K 个样本,输入 x(subject, property, object) 三元组的序列。平均输出长度为 22.5 。在训练集和验证集,输入描述了来自 9 个不同的 DBpedia 类别的实体(例如,Monument )。测试集由两部分组成:前半部分包含训练数据中的 DB 类别,后半部分包含 5 个未见过的类别。这些未见过的类别被用来评估外推(extrapolation )。我们使用官方评估脚本,它报告 BLEU, METEOR, TER

    • DART 是开放领域,使用来自维基百科的 open-domain tables 。它的输入格式 (entity-relation-entity) 三元组与WebNLG 相似。平均输出长度为 21.6 。它由来自 WikiSQL, WikiTableQuestions, E2E, WebNLG82K 个样本组成,并应用了一些人工或自动转换。我们使用官方评估脚本并报告 BLEU, METEOR, TER, Mover-Score, BERTScore, BLEURT

    对于摘要任务,我们使用 XSUM 数据集,它是一个关于新闻文章的抽象摘要数据集,有 225K 个样本。文章的平均长度为 431 个单词,摘要的平均长度为 23.3 。我们报告了 ROUGE-1, ROUGE-2, ROUGE-L

  2. baseline

    • 对于 table-to-text generation ,我们将 prefix-tuning 与其他三种方法进行了比较:微调(FINETUNE )、仅对顶部 2 层进行微调(FT-TOP2 )、adapter-tuningADAPTER )。

      我们还报告了目前在这些数据集上的SOTA 结果:

      • E2E 上,《Pragmatically informative text generation》使用了一个没有预训练的 pragmatically informed model

      • WebNLG 上, 《Text-to-text pre-training for data-to-text tasks》T5-large 进行了微调。

      • DART 上,没有发布在这个数据集版本上训练的官方模型。

    • 对于摘要,我们与微调 BART 进行比较。

  3. 实验配置:

    对于 table-to-text ,我们使用 GPT-2_MEDIUMGPT-2_LARGEsource tables 被线性化。对于摘要,我们使用 BART_LARGE ,源文章被截断为 512BPE tokens

    我们的实现是基于 Hugging Face Transformer 模型。在训练时,我们使用 AdamW 优化器和一个线性学习率调度器,正如 Hugging Face 默认设置所建议的。我们调优的超参数包括 epoch 数量、batch size 、学习率、prefix 长度。超参数的细节如下表所示。默认设置是训练 10 epochs ,使用 batch size = 5 ,学习率 5×105prefix 长度为 10

    table-to-text 模型在 TITAN XpGeForce GTX TITAN X 机器上训练。在 22K 样本上,prefix-tuning 每个 epoch 需要 0.2 小时,而微调则需要 0.3 小时。摘要模型在 Tesla V100 机器上训练,在 XSUM 数据集上每个 epoch 需要 1.25 小时。

    在解码时,对于三个 table-to-text 数据集,我们使用 beam size = 5beam search 。对于摘要,我们使用 beam size = 6beam search ,以及 0.8 的长度归一化。对于 table-to-text ,每个句子的解码需要 1.2 秒(没有 batching );对于摘要,每个 batch 的解码需要 2.6 秒(batch size = 10 )。

27.2.1 实验结果

  1. Table-to-text Generation 任务:我们发现,只添加 0.1%task-specific parametersprefix-tuningtable-to-text generation 中是有效的,超过了其他轻量级 baselineADAPTERFT-TOP2 ),并取得了与微调相当的性能。这一趋势在所有三个数据集上都是如此: E2E, WebNLG, DART

    为了公平比较,我们将 prefix-tuningadapter-tuning 的参数数量匹配为 0.1%Table 1 显示,prefix-tuning 明显优于ADAPTER0.1% ),平均每个数据集获得 4.1 BLEU 的改善。

    即使我们与微调(100% )和 adapter-tuning3.0% )相比(它们更新的参数数量要超过 prefix-tuning),prefix-tuning 仍然取得了相当或更好的结果。这表明 prefix-tuningadapter-tuning 更具有帕累托效率:在提高生成质量的同时大大减少了参数。

    帕累托效率:效果好的同时参数量也少。

    此外,在 DART 上取得良好的性能表明,prefix-tuning 可以泛化到具有不同领域和大量关系的 table 。我们将在后续实验深入研究外推性能(即泛化到对未见过的类别或主题)。

    总的来说,prefix-tuning 是一种有效的、节省空间的方法,可以使 GPT-2 适用于 table-to-text generation 。学到的 prefix 有足够的表达能力来引导 GPT-2 ,以便正确地从非自然语言的格式中提取内容并生成文本描述。prefix-tuning 也能很好地从 GPT-2_MEDIUM 扩展到 GPT-2_LARGE ,这表明它有可能扩展到具有类似架构的更大的模型,比如 GPT-3

  2. 摘要任务:如 Table 2 所示,在参数为 2% 的情况下,prefix-tuning 获得的性能略低于微调(在 ROUGE-L 中为 36.05 vs. 37.25 )。在只有 0.1% 的参数下,prefix-tuning 的性能低于 full fine-tuning35.05 vs. 37.25 )。

    XSUMtable-to-text 数据集之间有几个不同之处,可以解释为什么prefix-tuningtable-to-text 中具有相对优势:

    • XSUM 包含的样本比三个 table-to-text 数据集平均多 4 倍。

    • XSUM 输入的文章比 table-to-text 数据集的线性化表格的输入平均长 17 倍。

    • 摘要任务可能比 table-to-text 更复杂,因为它需要阅读理解、以及识别文章的关键内容。

    Prefix(0.1%)Prefix(2%) 分别代表 prefix length 等于多少?论文并未说明。根据读者猜测,Prefix(0.1%) 对应于 prefix length = 5Prefix(2%) 对应于 prefix = 100

  3. Low-data Setting:基于 table-to-text 任务和摘要任务的结果,我们观察到,当训练样本的数量较少时,prefix-tuning 具有相对的优势。为了构建 low-data settings ,我们对完整的数据集(table-to-textE2E 、摘要任务的 XSUM )进行降采样,得到大小为 {50, 100, 200, 500} 的小数据集。对于每个大小,我们采样五个不同的数据集,并训练两个 training random seeds 然后取平均。因此,我们对 10 个模型进行平均,以获得每个 low-data setting 的估计。

    Figure 3(right) 显示,prefix-tuninglow-data setting 下平均比微调多出 2.9 BLEU ,此外所需的参数也更少;但随着数据集规模的增加,差距也在缩小。

    从质量上看,Figure 3(left) 显示了由在不同数据量上训练的prefix-tuning modelfine-tuning model 所产生的 8 个样本。虽然两种方法在 low data 区域下都倾向于生成不足(缺失表格内容),但 prefix-tuning 往往比微调更忠实。例如,微调 (100, 200) 错误地声称顾客的评价很低,而真实的评价是平均的;而 prefix-tuning (100, 200) 所生成的描述是忠实于表格的。

    prefix-tuning 和微调在 low-data setting 下的表现,更详细的曲线如 Figure 6 所示。

  4. Extrapolation :我们现在研究了针对 table-to-text 和摘要任务对未见过的主题的推断性能。为了构建一个外推环境,我们对现有的数据集进行了拆分,使训练集和测试集涵盖不同的主题。

    • 对于 table-to-textWebNLG 数据集被 table topics 所标记。有 9 个类别在训练集和验证集中出现,表示为 SEEN5 个类别只在测试集中出现,表示为 UNSEEN 。所以我们通过对 SEEN 类别的训练和对 UNSEEN 类别的测试来评估外推法。

    • 对于摘要,我们构建了两个外推数据子集:

      • news-to-sports 中,我们对新闻文章进行训练,对体育文章进行测试。

      • within-news 中,我们对 {world, UK, business} 新闻进行训练,并对其余新闻类别(如健康、科技)进行测试。

    Table 3Table 1 (中间)的 "U" 列所示,在 table-to-text 任务和摘要任务上,pre-fixtuning 在所有指标下都比微调有更好的外推能力。

    我们还发现,adapter-tuning 取得了良好的外推性能,与 pre-fixtuning 相当,如 Table 1 所示。这种共同的趋势表明,保留语言模型参数确实对外推有积极影响。然而,这种收益的原因是一个开放的问题,我们将在后续章节进一步讨论。

27.2.2 消融分析

  1. Prefix 长度:较长的 prefix 意味着更多的可训练参数,因此有更强的表达能力。Figure 4 显示,性能会随着 prefix 长度的增加而增加,直到一个阈值(摘要任务为 200table-to-text10 ),然后性能会有轻微的下降。

    根据经验,较长的 prefix 对推理速度的影响可以忽略不计,因为整个 prefix 的注意力计算在 GPU 上是并行的。

  2. Full vs Embedding-only:如前文所述,我们讨论了优化"virtual tokens"continuous embeddings 。我们将这一想法实例化,并称之为 embedding-only 消融分析。word embeddings 是自由参数,上层 activation layersTransformer 计算。Table 4 (top) 显示,性能明显下降,表明仅仅调优 embedding layer 并不具有足够的表达能力。

    embedding-only 的消融分析给出了 discrete prompt optimization 的性能上限,因为 discrete prompt 限制了 embedding layer 要完全匹配真实单词的 embedding 。因此,我们有这样一个表达能力递增的链条:discrete prompting < embedding-only ablation < prefix-tuning

    这里的结论是存疑的,因为Pθ 的参数化技巧导致的。这种参数化使得 embedding-only 的自由度降低。应该在采用embedding-only 的时候,去掉参数化技巧(这就是 P-Tuning 的思想)。

  3. Prefixing vs Infixing:我们还研究了可训练的 activations 在序列中的位置如何影响表现。在 prefix-tuning 中,我们把它们放在开头 [Prefix;x;y] 。我们也可以把可训练的 activations 放在 xy 之间(即 [x;Infix;y]),并称其为 infix-tuningTable 4 (bottom) 显示,infix-tuning 的表现略逊于 pre-tuning 。我们认为这是因为 prefix-tuning 可以影响 xyactivations ,而 infix-tuning 只能影响 yactivations

  4. 初始化:我们发现,prefix 的初始化方式在 low-data settings 下有很大的影响。随机初始化会导致高方差的低性能。如 Figure 5 所示,用真实单词的 activations 来初始化prefix ,可以明显改善 generation 。具体而言,用任务相关的单词如 "summarization""table-to-text" 来初始化所获得的性能,比用任务无关的单词如 "elephant""divide" 略好,但使用真实的单词仍然比随机要更好。

    由于我们用语言模型计算的真实单词的 activations 来初始化前缀,这种初始化策略与尽可能地保留 pretrained LM 是一致的。

    注意:这里描述的是参数的初始化,而参数的梯度更新是采用参数化技巧。

    Figure 7 给出了更多的关于初始化的指标。

27.3 讨论

  1. 个性化(Personalization):正如我们在前面章节中指出的,当有大量的任务需要独立训练时,prefix-tuning 是有利的。一个实际的 setting 是用户隐私。为了保护用户隐私,每个用户的数据需要被分开,并且需要为每个用户独立训练一个个性化的模型。因此,每个用户可以被看作是一个独立的任务。如果有数以百万计的用户,prefix-tuning 可以 scale 到这种 setting ,并保持模块化。通过增加或删除用户的 prefix ,可以灵活地增加或删除用户,而不会造成交叉污染。

  2. 跨用户的 Batching:在 personalization setting 下,prefix-tuning 允许对不同用户的 query 进行 batching ,即使这些 query 采用不同的 prefix 。当多个用户用他们的inputsquery 云端 GPU 设备时,将这些用户放在同一 batch 是很有计算效率的。prefix-tuning 可以保持共享的语言模型不变;因此,batching 需要一个简单的步骤,即把 personalized prefix 添加到用户的输入之前,其余所有的计算都是不变的。相比之下,在 adapter-tuning 中,我们不能在不同的用户之间进行 batching ,因为 adapter-tuning在共享的 Transformer layers 之间有 personalized adapters

    batch 内不同样本的 prefix 不同,可以类似于 word embedding 的思路,认为每个用户一个 idprefix vector 就是 id embedding

  3. Prefix-tuning 的归纳偏置(Prefix-tuning):回顾一下,微调会更新所有的 pretrained parameters ,而 prefix-tuningadapter-tuning 则会保留 pretrained parameters 。由于语言模型是在通用语料库上进行预训练的,保留语言模型参数可能有助于泛化到训练期间未见的领域。与这种直觉相一致的是,我们观察到 prefix-tuningadapter-tuningextrapolation settings 中都有明显的性能提升;然而,这种提升的原因是一个开放的问题。

    虽然 prefix-tuningadapter-tuning 都冻结了 pretrained parameters ,但它们调优不同的参数集合来影响 Transformeractivations 。回顾一下,prefix-tuning 保持语言模型的完整,并使用 prefixpretrained attention blocks 来影响后续的 activationsadapter-tuning 在语言模型的层之间插入可训练的模块,直接将 residual vectors 添加到 activations 中。此外,我们观察到,与 adapter-tuning 相比,prefix-tuning 需要的参数要少得多,同时又能保持相当的性能。我们认为参数效率的提高是因为 prefix-tuning 尽可能地保持了 pretrained LM 的完整性,因此比 adapter-tuning 更能利用语言模型。

    《Intrinsic dimensionality explains the effectiveness of language model fine-tuning》 的同期工作使用 intrinsic dimension 表明,存在一个低维度的 reparameterization ,其微调效果与 full parameter space 一样。这解释了为什么只需更新少量的参数就能在下游任务上获得良好的准确率。我们的工作与这一发现相呼应,表明通过更新一个非常小的 prefix 就可以达到良好的 generation 性能。

二十八、P-Tuning[2021]

论文:《GPT Understands, Too》

  1. 语言模型预训练是许多自然语言处理任务的成功方法。有证据表明,在预训练过程中,语言模型不仅学习了 contextualized text representation ,还学习了语法、句法、常识、甚至世界知识。

    根据训练目标,预训练的语言模型可以分为三类:

    • 用于自然语言生成(natural language generation: NLG )的单向语言模型,如GPT

    • 用于自然语言理解(natural language understanding: NLU )的双向语言模型,如BERT

    • 结合前两种范式的混合语言模型,如 XLNetUniLM

    长期以来,研究人员观察到 GPT 风格的模型在具有微调的 NLU 任务中表现不佳,因此认为它们天然地不适合语言理解。

    新兴的 GPT-3 ,以及它在具有手工制作的 promptsfew-shot learningzero-shot learning 上的特殊表现,已经席卷机器学习界。它的成功表明,巨大的单向语言模型加上适当的 manual prompt 可能会对自然语言理解起作用。然而,手工制作一个表现最好的 prompt 就像在干草堆里找一根针,这往往需要不切实际的大型验证集。在许多情况下,prompt engineering 实际上意味着对测试集的过拟合。此外,很容易创建 adversarial prompts ,导致性能大幅下降。鉴于这些问题,最近的工作集中在自动搜索离散的 promptsLPAQALM-BFFMetaprompt),并证明其有效性。然而,由于神经网络本身是连续的,离散的 prompts 可能是次优的。

    在这项工作中,我们提出了一种新的方法 P-tuning ,该方法在连续空间中自动搜索 prompts ,以弥补 GPTNLU applications 之间的 gapP-tuning 利用少数连续的 free parameters 作为 prompts 输入到 pre-trained 的语言模型中。然后,我们使用梯度下降法对 continuous prompts 进行优化,从而作为 discrete prompt searching 的一种替代。

    简单的 P-tuning 方法为 GPT 带来了实质性的改进。我们在两个 NLU 基准上检验了基于 P-tuningGPTLAMA knowledge probingSuperGLUE

    • LAMA knowledge probing 中,其中模型参数是 fixed 的,与原始手工的 prompts 相比,基于 P-tuningGPTPrecision@1 中显示出 26.2%-41.1% 的绝对收益。最好的一个模型在 LAMA 中达到了 64.2% ,大大超过了 SOTA45.2%prompt searching 方法。

    • SuperGlue 中,我们在 few-shot 和完全监督的情况下联合应用 P-tuning 和微调。结果,GPT 的性能与具有相同规模的BERT 模型相比具有竞争力,对于某些数据集,GPT 的性能甚至超过了 BERT

      进一步的实验表明,BERT 风格的模型也可以在一定程度上受益于 P-tuning 。我们表明,带有 P-tuningALBERT 大大超过了以前的方法,并在 few-shot SuperGLUE 基准上取得了新的 SOTA

    我们的发现打破了GPT 只能 generate 而不能 understand 的刻板印象。它还表明,语言模型包含的世界知识、以及 prior-task 知识要比我们以前假设的多得多。P-tuning 也可以作为一种通用的方法来调优 pre-trained 的语言模型,以获得最佳的下游任务性能。总而言之,我们做出了以下贡献:

    • 我们表明,在自然语言理解方面,GPT 可以和 BERT 一样具有竞争力(有时甚至更好),而 P-tuning 可以提高 pre-trained 语言模型的性能。这表明,GPT 风格的架构在自然语言理解方面的潜力被低估了。

    • 我们表明,P-tuning 是一种通用的方法,可以在 few-shot settingfully-supervised setting 下改善 GPTBERT 。尤其地,通过 P-tuning ,我们的方法在 LAMA knowledge probingfew-shot SuperGlue 上的表现超过了 SOTA 的方法,这表明语言模型在预训练期间掌握了比我们之前想象的更多的世界知识和 prior-task 知识。

    论文缺乏消融研究部分,一些关键设计只有结论没有实验的验证。

  2. 相关工作:

    • Pre-trained Language Model:最近,自监督预训练语言模型的突破,推动了自然语言处理的发展。

      • GPT 首次利用 transformer 架构对大规模 web text 进行预训练。

      • BERT 提出了 masked language modeling ,并创建了 pre-train/finetuning 范式。

      • XLNet 创新性地提出了 permutation language modeling

      • RoBERTa 进行了详细的实验,展示了与预训练有关的有用技术。

      • BART, T5, UniLM ,它们试图统一语言理解和语言生成。

    • 作为知识库的语言模型:自语言模型诞生以来,研究人员观察到,语言模型不仅学习了 contextualized text representation ,还学习了各种类型和数量的知识,包括语言知识和世界知识。

      • 《A structural probe for finding syntax in word representations》 证明了语言模型产生的 contextualized representation 可以在 embedding 空间中形成解析树。

      • 《A multiscale visualization of attention in the transformer model》《What does bert look at? an analysis of bert’s attention》 研究了 multi-head attention internal transformers ,发现某些 attention head 可能对应于一些语法功能,包括共指关系(co-reference )和名词修饰。

      另一个重要的方向是关于语言模型学习了多少世界知识或事实性知识。

      • LAMA 提出利用从知识库中的 fact 三元组转化而来的完形填空测试来考察语言模型在记住 fact 的能力,其中答案是以单个 token 的形式给出的。

      • 《Language models are openk nowledge graphs》 中,作者研究了 attention 矩阵,发现 attention 也会表明上下文中包含的知识三元组,从而开发了一个开放的知识图谱构建框架。

      • 《X-factr: Multilingual factual knowledge retrieval from pretrained language models》 基于 LAMA 开发了一个 multi-tokenfact retrieval 数据集。

    • Language Model PromptingGPT-3 的诞生、以及 GPT-3 在多任务和 few-shot learning 中的出色表现让人们感到震撼。然而,GPT-3 并不是为微调而设计的,它在很大程度上依赖手工的 prompts (或 in-context learning )从而迁移到下游任务中。为了更好地将大型语言模型应用于自然语言理解,最近的工作集中在自动化搜索 discrete prompts,通过挖掘训练语料(《How can we know what language models know?》)、 token-based 的梯度搜索(《Autoprompt: Eliciting knowledge from language models with automatically generated prompts》)、以及使用单独的模型(《Making pre-trained language models better few-shot learners》)如 T5 来生成 prompts 。然而,由于神经网络的连续性的特点,在离散空间中的搜索是具有挑战性的和次优的。

      最近, 《Prefix-tuning: Optimizing continuous prompts for generation》 提出了用于自然语言生成任务的 prefix-tuning ,它采用了与我们的 P-tuning 类似的策略来训练 continuous prompt 。然而,它们在几个方面是不同的。

      • 首先,prefix-tuning 是为自然语言生成任务和 GPT 设计的,而 P-tuning 则针对自然语言理解任务和所有类型的语言模型。

        事实上,prefix-tuning 也可以用于所有类型的任务、所有类型的模型。

      • 第二,prefix-tuning 只允许在输入序列的开头添加 prompt tokens ,而 P-tuning 可以在任何地方插入 tokens

      • 第三,prefix-tuningtransformer 的每一层都侵入性地拼接了 continuous prompt tokens ,因为作者发现仅仅在输入中 prompting 并没有效果;相反,P-tuning 非侵入性地只在输入中添加 continuous prompts 从而工作良好。

      • 最后,P-tuning 还介绍了如何使用 anchor prompts 来进一步改进。

        即,添加类似于 "?" 这样的 tokenprompts 中。

      尽管存在差异,我们认为我们的 P-tuningprefix-tuning 都指出,学习 continuous prompts 是有用的,并且优于 discrete prompt searching

28.1 方法

  1. 动机:GPT-3DALLE 的奇迹似乎表明,巨型模型总是不折不扣的提升机器智能的万能药。然而,在繁荣的背后,存在着不可忽视的挑战。一个致命的问题是,巨型模型的可迁移性很差。对于这些万亿规模的模型,在下游任务上的微调几乎很难进行。即使是对于 many-shot finetuning setting ,这些模型仍然太大,无法快速记忆 fine-tuning samples《Interventional few-shot learning》)。

    鉴于这一挑战,最近的工作集中在自动化搜索 discrete prompts,通过挖掘训练语料、 token-based 的梯度搜索、以及使用单独的模型来生成 prompts 。然而,我们深入研究了寻找 continuous prompts 的问题,其中 continuous prompts 可以通过微分来优化。

  2. 接下来,我们介绍了 P-tuning 的实现。与 discrete prompts 类似,P-tuning 只对输入进行非侵入性的修改。尽管如此,P-tuning 用它的differential output embeddings 取代了 pre-trained 语言模型的 input embedding

28.1.1 架构

  1. 给定一个 pre-trained 语言模型 M ,以及一个关于离散的 input tokens 的序列 x0:n={x0,x1,,xn}pre-trained embedding layer eMx0:n 映射为 input embeddings {e(x0),e(x1),,e(xn)}。在具体场景中,以上下文 x 为条件,我们经常使用一组 target tokens youtput embeddings 进行下游的处理。例如:

    • 在预训练中,x 指的是 unmasked tokens ,而 y 指的是 [MASK] tokens

    • 在句子分类中,x 指的是 sentence tokens ,而 y 往往指的是 [CLS]

    prompt p 的功能是将上下文 xtarget y 、以及自身组织成一个模板 T 。例如,在预测国家首都的任务中(LAMA-TREx P36 ),一个模板可能是 "The capital of Britain is [MASK]." (如下图所示),其中 "The capital of ... is ... ."prompt"Britain" 是上下文,"[MASK]"targetprompts 可以非常灵活,我们甚至可以将其插入上下文或 target 中。

    V 为语言模型 M 的词表,[Pi] 指的是模板 T 中的第 iprompt token 。为了简单起见,给定一个模板 T={[P0:i],x,[Pi+1:m],y},传统的 discrete prompts 满足 [Pi]V 并且将 T 映射为:

    (5){e([P0:i]),e(x),e([Pi+1:m]),e(y)}

    相反,P-tuning[Pi] 视为 pseudo tokens ,并将模板映射为:

    (6){h0,,hi,e(x),hi+1,,hm,e(y)}

    其中:hi 为可训练的 embedding 张量,0im 。这使我们能够在原始词表 V 之外找到更好的 continuous prompts 。最后,利用下游损失函数 L ,我们可以通过以下方式对 continuous prompt hi,0im 进行优化:

    (7)h^0:m=argminhL(M(x,y))

    其中:h={h1,,hm}

    注意,这里的 prefix 不一定要位于输入的开始,也可以位于输入的 XY 之间、甚至位于 Y 之后。

    关于 prefix 的长度、位置,论文没有进行消融研究。

28.1.2 优化

  1. 虽然训练 continuous prompts 的想法很直接,但在实践中,它面临着两个优化挑战:

    • 离散性:M 的原始 word embedding e 在预训练后已经变得高度离散。如果 h 被初始化为随机分布,然后用随机梯度下降法进行优化,已经被证明只在小范围内改变参数(《A convergence theory for deep learning via over-parameterization》),优化器将很容易陷入局部最小值。

    • association :另一个担忧是,从直觉上讲,我们认为 prompt embeddings hi 的值应该是相互依赖的,而不是独立的。我们需要一些机制来将 prompt embeddings 相互关联起来。

    鉴于这些挑战,在 P-tuning 中,我们建议使用一个由非常简单的神经网络组成的 prompt encoderhi 建模为一个序列,以解决离散性和关联问题。而在实践中,我们选择了一个双向的 long-short term memory network: LSTM ,具有 ReLU 激活的双层 multilayer perceptron: MLP ,从而鼓励离散性。正式地,语言模型 Minput embeddings hi 为:

    (8)hi=MLP([hi:hi])=MLP([LSTM(h0:i):LSTM(hi:m)])

    虽然 LSTM head 的使用确实给 continuous prompts 的训练增加了一些参数,但 LSTM headpre-trained 模型要小几个数量级。而且,在推理中,我们只需要输出 embedding h ,可以舍弃 LSTM head

    Prefix-Tuning 直接采用简单的 MLP ,那么它采用这里的 LSTM + MLP 是否也能提升效果?

    这种优化 h 的方式也不太优雅,与 Prefix-Tuning 一样都是采用了参数化技巧。

    此外,为什么这里要用 LSTM?论文没有进行消融研究。

  2. 此外,我们还发现,在 SuperGLUE 基准测试中,添加一些 anchor tokens 有助于一些自然语言理解任务。例如,对于 RTE 任务,在 prompt 模板 "[PRE][prompt tokens][HYP]?[prompt tokens][MASK]" 中特别添加一个 anchor token "?" ,对性能有很大的影响。通常情况下,这样的 anchor words 代表了每个组件的特性,在这个例子中,"?" 表示 "[HYP]" 作为一个询问部分。

    缺乏消融研究。

28.2 实验

28.2.1 Knowledge Probing

  1. 知识探测,或被称为事实检索(fact retrieval),评估语言模型从预训练中获得了多少现实世界的知识。LAMA 数据集通过从知识库中选择的三元组创建的完形填空测试来评估它。例如,我们将把三元组 (Dante, born-in, Florence) 转化为一个带有人工的 prompt (即,"Dante was born in [MASK].")的完形填空句子,然后我们要求语言模型推断出 target 。因为我们要评估从预训练中获得的知识,所以 pre-trained 语言模型的参数是固定的(即不进行微调)。

  2. 数据集:LAMA

    LAMA 强迫所有的答案都是 single-token 的格式。我们首先采用原始的 LAMA-TREx 数据集,其中包括 41Wikidata 关系和总共 34,039 个测试三元组(即 LAMA-34k ,它涵盖了所有的 BERT 词表)。由于 GPTBERT 的词表不同,我们建立了另一个版本的 LAMA ,它涵盖了 GPT 词表和 BERT 词表的交集。这个子集加起来大约有 29k 个测试三元组,我们把它命名为 LAMA-29k

    至于训练,所有的 prompt searching 方法都需要一些额外的数据来训练或寻找 prompts 。我们遵循 AutoPrompt《Autoprompt: Eliciting knowledge from language models with automatically generated prompts》) 中的设置,作者从原始 TRE-x 数据集中构建了一个训练集。这个训练集与测试集类似,但答案分布略有不同。

  3. 评估:最初,LAMA 为每个关系提供了如 Table 1 所示的人工 prompt ,这些 prompt 是有效的,但却是次优的。对于双向 masked language model ,我们只需要将 "[X]" 替换为主语实体、将 "[Y]" 替换为 [MASK] token ;对于 GPT 等单向语言模型,遵循LAMA 最初在 Transformer-XL 上的设置,我们使用 target position 之前的模型输出。在进行 P-tuning 方面 ,我们对双向模型使用 (3, sub, 3, obj, 3) 模板,对单向模型使用 (3, sub, 3, obj) 模板,其中数字表示 prompt tokens 的数量。在这个知识探测任务中,我们不使用任何 anchor tokens 。在训练过程中,我们将学习率设置为 1e-5 ,并使用 Adam 优化器。

    为什么要采用 (3, sub, 3, obj, 3) 模板、 (3, sub, 3, obj) 模板?论文并未说明。

  4. 实验结果:结果如下表所示。可以看到:

    • P-tuning 极大地推动了知识探测的效果,在 LAMA-34k 中从 43.3% 提升到 50.6%,在 LAMA-29k 中从 45.2% 提升到最高64.2% 。这一结果有力地表明,语言模型仅仅通过寻找更好的 prompt ,在没有微调的情况下捕获到的知识远比人们以前认为的要多。

    • P-tuning 与以前的 discrete prompt searching 方法如 AutoPromptLPAQA 在相同大小的模型上进行比较时,P-tuning 仍然优于它们。

      AutoPrompt 这一行代表什么含义?是 AutoPrompt 结合 P-tuning ,还是仅仅代表 AutoPrompt ?论文未说明。读者猜测是仅仅代表 AutoPrompt

  5. P-tuning v.s. Fine-tuning:在传统的知识探测中,不允许通过微调来改变 pre-trained 模型的参数。我们试图评估语言模型在预训练期间学到了多少知识。然而,这项工作的基本内容是比较 P-tuningfine-tuning ,特别是在 GPT 这样的单向性语言模型上。我们对以下问题特别感兴趣: 单向和双向语言模型是否从 P-tuning 中获得了相似的改进?

    为了对现有的 tuning 方法进行全面回顾,我们包括以下方法:

    • Manual Prompt: MP :使用 LAMA 的原始的人工 prompts

    • Fine-tuning: FT :只呈现 subject 并微调模型以预测 object

    • Manual Prompt with Fine-tuning: MP+FT :用人工 prompts 对语言模型进行微调。

    • P-tuning :使用 continuous prompts ,同时固定语言模型的参数。

    我们在 LAMA-29k 中实现了这四种策略(见 Table 2 的右侧),我们发现 P-tuningfine-tuning-based 方法相当或更好,这令人惊讶但也是合理的。

    令人惊讶的是,微调应该是更有潜力的,因为它调优了所有语言模型的参数,而 P-tuning 则没有调优语言模型的参数。然而,这也是合理的,因为就知识探测而言,许多事实只能是 hard-coded 的,而不是由语言模型推断的。参数的微调可能会导致灾难性的遗忘。相反,P-tuning 并不改变 pre-trained 模型的参数,而是通过寻找更好的 continuous prompt 来唤起所存储的知识。

    此外,有趣的是,看到 BERTP-tuning 的改善、和 GPTP-tuning 的改善之间存在明显的差距。带有高质量人工 prompts 的微调(MP+FT )(PET-2LM-BFF)已被证明是相当有效的,这在我们的实验中也被观察到。然而,令人惊讶的是,GPTMP+FT 中受益的程度不如从 P-tuning 中受益的程度,而 BERTMP+FP 中收益程度与从 P-tuning 中收益程度相当。换句话说,P-tuning 显示出与单向语言模型更好的亲和性。就更大的模型而言,如具有 11B 参数的 MegatronLM ,虽然微调几乎不工作,但 P-tuning 仍然适用,并在 LAMA 上达到了 SOTA

28.2.2 SuperGLUE

  1. 我们在 SuperGLUE 基准上进行了实验从而评估 P-tuning 。总共有 8 个自然语言理解任务,我们专注于其中的 7 个任务,因为另一个任务 ReCoRD 没有采用 prompts ,因此没有 P-tuning 。这七个任务包括:问答 (BoolQMultiRC )、文本蕴含( CBRTE )、共指解析(WiC )、因果推理(COPA )、以及词义消歧( WSC )。

  2. 对于实验设置,我们考虑了 fully-supervised settingfew-shot setting

    • fully-supervised setting 中,我们使用整个训练集( Dtrain )并使用验证集(Ddev )进行模型选择和超参数调优。

    • 对于 few-shot setting ,我们采用 SuperGLUEfew-shot (也称为 FewGlue )。FewGLUESuperGLUE 的一个子集,每个任务由 32 个训练数据(Dtrain32 )和一个不同规模(数据集大小从 40020000 )的未标记集(Dunlabeled )组成。

      以前的工作(PET finetuning)假定没有任何验证集,并根据经验选择采用固定的超参数(这基本上是过拟合于测试集)。与它不同的是,我们构建了适当的few-shot 验证集(表示为 Ddev32 )。由于已经证明较大的验证集会带来额外的显著优势(LM-BFF),所以 Ddev32 是通过从未使用的训练数据中随机选择样本来构建的,并且严格限制其不大于 few-shot 训练集 Dtrain32 的大小。

    我们采用与PET-2 相同的评价指标。

  3. 我们将自然语言理解任务重新表述为完形填空任务。与PET finetuning 使用带有人类手工制作的 prompts 的模式不同,P-tuninginitial prompt embeddings 放在不同位置,然后与 pretrained 模型一起微调 prompt embeddings

    • 对于 fully-supervised settings ,我们使用具有线性衰减学习率的 AdamW optimizer 。我们对超参数进行网格搜索,在DdevDdev32 上采取最佳的超参数组合。具体而言,我们采用 {1e-5, 2e-5, 3e-5} 的学习率、以及 {16, 32}batch size

      对于小数据集(COPA, WSC, CB, RTE ),我们对 pretrained 模型微调 20 次。对于较大的数据集(WiC, BoolQ, MultiRC ),我们将 training epochs 的数量减少到 10 个,因为模型会更早收敛。我们评估每个 epoch 的性能。我们使用早停来避免对训练数据的过拟合。

    • 对于 few-shot learning ,我们使用与PET-2 相同的超参数,只是将微调 steps 扩大到 3500 步(而不是该论文中的 250 步),因为 prompt embeddings 的微调需要更多步数。

  4. P-tuning 可以用于所有的单向模型和双向模型。我们选择总计算量相似的模型进行公平的比较,其中我们选择 BERT-baseGPT2-base 进行比较、BERT-largeGPT2-medium 进行比较。像 RoBERTa 这样的模型具有类似的模型规模,但是是用更大的计算量来训练的,应该与更大规模的 GPT 进行比较。这将留给未来的工作。

    此外,对于 few-shot learning ,我们也用 albert-xxlarge-v2 进行了实验,它在 PET-2 中被证明是在 few-shot setting 中表现最好的 pretrained 模型。对于每个 pretrained 模型,我们报告了 standard finetuning (即使用 [CLS] embedding 进行分类)、PET finetuningPET zero-shotP-tuning 的性能。

  5. Fully-supervised Learning:主要结果见 Table 3Table 4

    • 首先,对于 bert-base-cased 模型 bert-large-cased 模型,P-tuning7 个任务中的 5 个任务上优于所有其他 bert-based 模型。

      例外的是 WiCMultiRCP-tuning 的表现比 standard fine-tuning 差一点。由于 WiCMultiRC 都有相对较大的训练集,我们猜测这可能是由于 standard fine-tuning 可以从较大的数据集中获得比 P-tuning 更多的优势。相反,P-tuninglow-resource setting 下似乎更有利。类似的观察也在后面的实验中显示。

    • 其次,对于 gpt2-basegpt2-medium 模型,P-tuning 在所有 gpt2-base 模型中取得了最有前景的结果。

    综上所述,我们可以得出结论,P-tuning 可以有效地提高 bert-based 模型和 gpt-based 模型的自然语言理解性能。

    此外:

    • base 模型的规模下,带有 P-tuninggpt2-base7 个任务中的 6 个任务上超过了 BERT-based 模型的最佳结果,同时在 WiC 上取得了相差无几的结果。

    • large 模型的规模下,带有 P-tuningGPT2-medium7 个任务中的 4 个任务上显示出优势,而在 RTEWSC 任务上则具有可比性。唯一的例外是 WiC 任务。我们注意到,在 WiC 任务中,标准微调在不同 setting 的模型上显示出最佳结果。我们推测,这是因为词义消歧任务不适合 prompt-based MLM prediction

    最重要的是,我们得出结论,通过 P-tuningGPT2 实现了与 BERT-based 模型相当的甚至更好的性能。这一发现颠覆了我们的普遍看法,即双向模型(如 BERT )在自然语言理解任务中总是比单向模型(如 GPT2 )更好。

  6. Few-shot learninng

    • 次优的和敏感的 Manual Prompts:最初,PET/iPETSuperGLUEfew-shot learning 任务上,通过几个人工编写的prompts 实现了 SOTA ,这些 prompts 是有效的但却是次优的,而且是劳动密集型的。

      为了全面了解 manual prompts ,我们首先进行了比较实验。Table 6 显示了使用不同 manual promptsP-tuning 的结果。

      • 首先,结果显示,few-shot 的表现与 prompts 的语义、格式、语法没有明显的关联。人类认为合理的prompts 对语言模型不一定有效。

      • 第二,manual prompts 的细微变化会导致大幅度的性能差异。pretrained 语言模型对 prompts 的选择相当敏感。

      我们可以得出结论,人工手写的 prompts 比我们想象的要复杂。此外,Table 6 还证明,使用 Ddev32 不可能找到表现最好的 manual prompts 。这表明,在 few-shot setting 中挑选出最好的 manual prompts 也很有挑战性。相比之下,P-tuning 在自动寻找更好的 prompts 方面似乎很有希望,而手工制作的 prompts 的希望要少得多。

    • SuperGLUE Few-shot Learning 的新的 SOTATable 5 列出了通过 P-tuning 实现的 Super-GLUE few-shot learning 的最新结果。我们将其与几个 baseline 进行了比较,包括 PETGPT-3 ,其中 GPT-3 实现了以前的 SuperGLUE Few-shot SOTA

      值得注意的是,除了 manual prompt finetuning 外,原始 PET 采用了多种额外的技术,包括数据增强、ensemble 、以及知识蒸馏,以提高性能。此外,它通过过拟合测试集来进行模型选择和超参数调优。为了确保公平的比较,PET 在我们的 Ddev32 setting 下进行了重新实验,去除所有的辅助技术(数据增强、ensemble 、知识蒸馏)。考虑到 PET 提供了多个 manual prompts ,这里报告了平均的 prompt 性能和最佳的 prompt 性能。

      Table 5 说明,P-tuning 在所有任务上的表现一直优于具有manual promptsPETDdev32 )和 PET-bestDdev32)。在 7 个任务中的 5 个任务上,解决方案对 PETDdev32 )的改进大于 multiple patterns 的标准差,证明 P-tuning 可以搜索到远比 manual prompts 提示更好的 prompts ,并显著提高 few-shot 任务的性能。在包括 CB, WiC, RTE, WSC 的任务上,P-tuning 甚至优于 PET/iPETDdev ),后者采用了辅助技术(数据增强、ensemble 、知识蒸馏)。与 GPT-3 相比,虽然 GPT-3 的规模比 P-tuning 大得多(albert-xxlargev2 ),P-tuning7 个任务中的 6 个任务中表现优异。结果证明了 P-tuningfew-shot 自然语言理解任务中的优势。

  7. Finetuning v.s. MP finetuning v.s. P-tuningTable 3Table 4 列出了三种 tuning-based 范式在提高自然语言理解的性能方面的结果。我们对这些 tuning-based 范式的不同表现特别感兴趣。

    • 总的来说,P-tuningBERT-based 模型上平均比fine-tuningMP fine-tuning 高出 2 分左右,在 GPT2-based 模型上平均比fine-tuningMP fine-tuning 高出 5 分左右。

    • 具体来说,尽管 P-tuning 在大多数任务上取得了最好的结果,但fine-tuning 在那些难以制定成完形填空问题的任务(如WiC)上可以胜出。

    • 比较 P-tuningMP fine-tuningP-tuning 一般比 MP fine-tuning 平均显示出更多的优势,因为 MP fine-tuning 要找到好的 manual prompts 是很困难的。相比之下,P-tuning 总是能够自动搜索到更好的 prompts

    作为调优pretrained 模型的新范式,P-tuning 在调优 pretrained 模型的参数时,可以在广阔的 prompt space 中搜索。结果表明,它在 prompting 难以微调的 larger-scale pre-trained 模型方面具有竞争性的潜力。

二十九、P-Tuning V2[2021]

论文:《P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks》

  1. pretrained 语言模型改善了各种自然语言理解任务的性能。一种广泛使用的方法,即微调,为 target 任务更新整个模型的参数集合。虽然微调获得了良好的性能,但它在训练过程中很耗费内存,因为必须存储所有参数的梯度和 optimizer states 。此外,在推理过程中为每个任务保留一份模型参数是不方便的,因为 pre-trained 模型通常很大。

    另一方面,prompting 冻结了 pretrained 模型的所有参数,并使用自然语言 promptquery语言模型(GPT-3 )。例如,对于情感分析,我们可以将一个样本(例如,"Amazing movie!" )与一个 prompt "This movie is [MASK]" 拼接起来,并要求 pre-trained 语言模型预测 pre-trained"good""bad" 的概率,以决定该样本的标签。prompting 完全不需要训练,只需存储一份模型参数。然而,与微调相比,discrete promptingAutopromptLM-BFF)在许多情况下会导致次优的性能。

    prompt tuning 是一种只调优continuous prompts 的想法。具体来说,《Gpt understands, too》《The power of scale for parameter-efficient prompt tuning》 提出在 input word embeddings 的原始序列中添加可训练的 continuous embeddings (也叫 continuous prompts )。在训练期间,只有 continuous prompts 被更新。虽然在许多任务上,prompt tuningprompting 有所改进,但当模型规模不大,特别是小于 10B 参数时,它仍然不如微调的表现(《The power of scale for parameter-efficient prompt tuning》 )。此外,正如我们的实验所显示的那样,与微调相比,prompt tuning 在几个难的序列标注任务上的表现很差,如 extractive 的问答。

    我们在本文中的主要贡献是一个新的经验发现,即适当优化的 prompt tuning 可以在不同的模型规模和自然语言理解任务中与微调相媲美。与之前工作中的观察相反,我们的发现揭示了 prompt tuning 在自然语言理解中的普遍性和潜力。

    从技术上讲,我们的方法 P-tuning v2 在概念上并不新颖。它可以被看作是 Deep Prompt Tuning《Prefix-tuning: Optimizing continuous prompts for generation》《Learning how to ask: Querying lms with mixtures of soft prompts》)的优化的和适配的实现,旨在 generationknowledge probing 。最显著的改进来自于对 pretrained 模型的每一层(而不仅仅是输入层)应用 continuous promptsdeep prompt tuning 增加了 continuous prompts 的能力,并缩小了在各种 setting 下与微调的差距,特别是对于小模型和困难任务。此外,我们提出了一系列优化和实现的关键细节,以确保 finetuning-comparable 的性能。

    实验结果表明,P-tuning v2 在不同的模型规模(从 300M100B 参数)和各种困难的序列标注任务(如抽取式问答、命名实体识别)上的性能与微调相媲美。与微调相比,P-tuning v2 每个任务的可训练参数仅为微调时的 0.1%3% ,这大大降低了训练时间成本、训练内存成本、以及每个任务的存储成本。

    P-tuning v2P-tuning 的核心变化是:P-tuning v2 不仅在输入层插入 continues prompts,而且在每个 layer 插入了 continues prompts。这似乎就是 Prefix-Tuning 的思想?

    Prefix-Tuning 的区别在于实现细节不同:

    • P-Tuning v2 直接采用 Classification Head,这类似于 BERT

    • P-Tuning v2 发现某些任务上,重参数化技巧导致效果下降。

    此外,论文实验部分聚焦于 fully-supervised setting,即有大量的标记数据用于训练。这主要是因为 P-Tuning v2 包含更多的 trainable parameters,包括:每一层的 trainable continues prompts、以及 Linear Classification Head

29.1 方法

  1. 自然语言理解任务:在这项工作中,我们将自然语言理解任务的挑战分为两个系列:简单的分类任务、困难的序列标注任务。

    • 简单的分类任务涉及 label space 上的分类。GLUESuperGLUE 的大多数数据集都属于这个类别。

    • 困难的序列标注任务涉及对tokens 序列的分类,如命名实体识别、抽取式问答。

  2. Prompt Tuning:令 V 是语言模型 M 的词表,令 eMembedding layer 。在 discrete promptingPET-2)的案例中 ,prompt tokens {"It", "is", "[MASK]"}V 可以用来对一篇电影评论进行分类。例如,给定输入文本 x="Amazing movie!"input embedding sequence 被表述为 [e(x),e("It"),e("is"),e("[MASK]")]

    《The power of scale for parameter-efficient prompt tuning》《Gpt understands, too》 介绍了可训练的 ·continuous prompts,作为自然语言理解任务的自然语言 prompts 的替代,其中 pretrained 语言模型的参数被冻结。给定可训练的 continuous embeddings [h0,,hi]input embedding sequence 被写成 [e(x),h0,,hi,e("[MASK]")] ,如下图所示。事实证明,在简单的分类任务上,在百亿参数的模型上, prompt tuning 与微调不相上下。

    注意,下图和 P-Tuning 的原始论文有差异。在 P-Tuning 原始论文中:

    • continues embeddings 仅应用于输入层,但是这里应用到了 Layer 1 Prompts

    • continues embeddings 不仅仅在序列中间插入,而是可以在序列的头部插入一部分、在序列的中间插入一部分、甚至在序列的尾部插入一部分。

  3. 缺乏普遍性:《The power of scale for parameter-efficient prompt tuning》《Gpt understands, too》在许多 NLP 应用中被证明相当有效,但由于缺乏普遍性,在取代微调方面仍有不足,如下所述。

    • 缺少跨尺度的普遍性:《The power of scale for parameter-efficient prompt tuning》表明,当模型规模超过 10B 参数时,prompt tuning 可以与微调相媲美。然而,对于被广泛使用的中型模型(从 100M1B ),prompt tuning 的表现比微调差很多。

    • 缺少跨任务的普遍性:尽管《The power of scale for parameter-efficient prompt tuning》《Gpt understands, too》在一些自然语言理解基准上表现出了优越性,但 prompt tuning 在困难的序列标注任务上的有效性并没有得到验证。sequence tagging 为每个input token 来预测标签序列,这可能更难,而且与 verbalizers 不兼容(PET-2)。在我们的实验中,我们表明《The power of scale for parameter-efficient prompt tuning》《Gpt understands, too》 在典型的序列标注任务上的表现比微调差。

    考虑到这些挑战,我们提出了 P-tuning v2 ,它将 deep prompt tuning《Prefix-tuning: Optimizing continuous prompts for generation》《Learning how to ask: Querying lms with mixtures of soft prompts》)作为一个跨 scales 和跨自然语言理解任务的通用解决方案。

  4. Deep Prompt Tuning:在《The power of scale for parameter-efficient prompt tuning》《Gpt understands, too》 中,continuous prompts 只被插入到 input embedding sequence 中(参照 Figure 2(a))。这导致了两个挑战:

    • 首先,由于序列长度的限制,可调优的参数的数量是有限的。

    • 第二,input embeddings 对模型预测有相对间接的影响。

    为了解决这些挑战,P-tuning v2 采用了 deep prompt tuning 。如 Figure 2 所示,在不同的层中,prompts 视为 prefix tokens 而被加入。

    • 一方面,P-tuning v2 有更多可调优的 task-specific 参数(从 0.01%0.1%-3% ),从而允许更多的 per-task 容量,同时具有parameter-efficient

    • 另一方面,被添加到更深的层的prompts 对模型预测有更加直接的影响(见附录B 的分析)。

  5. Optimization and Implementation:为实现最佳性能,有一些有用的优化和实施细节。

    • Reparameterization:之前的工作通常利用 reparameterization encoder (如 MLP )(《Prefix-tuning:Optimizing continuous prompts for generation》《Gpt understands, too.》)来转换 trainable embeddings 。然而,对于自然语言理解,我们发现其有用性取决于任务和数据集。对于一些数据集(如 RTE, CoNLL04 ),MLP 带来了持续的改进;对于其他数据集,MLP 导致的结果影响很小,甚至是负面的(如 BoolQ, CoNLL12 )。更多分析见附录 B

    • prompt 长度:prompt 长度在 P-Tuning v2 中起着关键作用。我们发现,不同的自然语言理解任务通常会在不同的 prompt 长度下达到最佳性能(参见附录 B )。一般来说,简单的分类任务更喜欢较短的 prompt (少于 20 tokens );困难的序列标注任务更喜欢较长的 prompt (大约 100 个)。

    • 多任务学习:在对单个任务进行微调之前,多任务学习用共享的 continuous prompts 联合优化多个任务。多任务在 P-Tuning v2 中是可选的,但可以通过提供更好的初始化来进一步提高性能(《Ppt: Pre-trained prompt tuning for few-shot learning》)。

    • Classification Head:使用 language modeling head 作为 verbalizers《It’s not just size that matters: Small language models are also few-shot learners》)一直是 prompt tuning 的核心(《Gpt understands, too》),但我们发现它在 full-data setting 中没有必要,而且与序列标注任务不兼容。P-tuning v2 反而像 BERT 一样,在 tokens 之上应用了一个随机初始化的分类头(参考 Figure 2 )。

    为了澄清 P-tuning v2 的主要贡献,我们在 Table 1 中提出了与现有 prompt tuning 方法的概念性比较。

29.2 实验

  1. 我们在一组常用的 pre-trained 模型、以及自然语言理解任务上进行了广泛的实验,以验证 P-tuning v2 的有效性。在这项工作中,除了微调,所有的方法都是在冻结的语言模型骨架上进行的,这与 《The power of scale for parameter-efficient prompt tuning》 的设置一致,但与 《Gpt understands, too》tuned setting 有所不同。task-specific 参数的比率(例如 0.1% )是通过比较 continuous prompts 的参数和 transformers 的参数得出的。另外需要注意的是,我们的实验都是在 fully-supervised setting 下(而不是 few-shot setting 下)进行的。

  2. 自然语言理解任务:首先,我们包括来自 SuperGLUE 的数据集,以测试 P-tuning v2 的通用 NLU 能力。此外,我们还引入了一套序列标注任务,包括命名实体识别、抽取式问答、和语义角色标注。

  3. pre-trained 模型:BERT-large, RoBERTa-large, DeBERTa-xlarge, GLMxlarge/xxlarge 。它们都是为自然语言理解任务设计的双向模型,涵盖了从约 300M10B 的广泛规模。

  4. 多任务学习:对于多任务设置,我们结合每个任务类型的训练集(例如,结合语义角色标注任务的所有训练集)。我们对每个数据集使用单独的线性分类器,同时共享 continuous prompts

    • 命名实体识别(Name entity recognition: NER):给定一个句子,任务是预测某些类别的实体(如,地理名、人名、机构名)在句子中的 span

      我们采用了 CoNLL03, OntoNotes 5.0, CoNLL04 数据集。所有的数据集都是以 IOB2 格式标记的。我们使用序列标注来解决NER 任务,通过分配标签来标记某些类别实体的开始以及内部。语言模型为每个 token 生成一个 representation ,我们使用一个线性分类器来预测标签。我们使用官方脚本来评估结果。

      对于多任务设置,我们结合三个数据集的训练集进行预训练。我们对每个数据集使用不同的线性分类器,同时continuous prompts

    • 抽取式问答(Extractive Question Answering):任务是从给定的上下文和问题中提取答案。我们使用 SQuAD 1.1, SQuAD 2.0

      遵循传统,我们将问题表述为序序列标注,为每个 token 分配两个标签之一: "start""end" ,最后选择最有把握的 (start, end) pairspan作为被提取的答案。如果最有把握的 pair 的概率低于阈值,该模型将假定该问题是不可回答的。

      对于multitask setting,我们用于预训练的训练集结合了 SQuAD 1.12.0 的训练集。在预训练时,我们假设所有的问题,无论其来源如何,都可能是无法回答的。

    • 语义角色标注(Semantic Role Labeling: SRL ):任务是为句子中的单词或短语分配标签,表明它们在句子中的语义作用。

      我们在 CoNLL05, CoNLL12 上评估P-tuning v2 。由于一个句子可以有多个动词,我们在每个句子的末尾添加 target verb token ,从而帮助识别哪个动词用于预测。我们根据相应的语义角色 representation ,用线性分类器对每个词进行分类。

      对于multitask setting ,预训练训练集是 CoNLL05CoNLL12propbank-release (用于训练语义角色标注的常见扩展数据)的训练集的组合。多任务训练策略与NER类似。

  5. 跨所有模型大小的结果:下表列出了 P-tuning v2 在不同模型规模上的表现。

    SuperGLUE 中,《The power of scale for parameter-efficient prompt tuning》P-tuning 在较小规模上的表现可能相当差。相反,P-tuning v2 在较小规模的所有任务中都与微调的性能相媲美。P-tuning v2 甚至在 RTE 上明显优于微调。

    就较大尺度(2B10B )的 GLM 而言,《The power of scale for parameter-efficient prompt tuning》P-tuning 与微调之间的差距逐渐缩小。在 10B 规模上,我们有一个与《The power of scale for parameter-efficient prompt tuning》 报告类似的观察,即 prompt tuning 变得与微调相媲美。

    也就是说,P-tuning v2 在所有规模上都与微调相当,但与微调相比,只需要 0.1%task-specific 参数。

  6. 跨所有任务的结果:从下表可以看出,P-tuning v2 在所有任务上都可以与微调相媲美。P-tuning《The power of scale for parameter-efficient prompt tuning》 的表现要差得多,特别是在 QA 上,这可能是三个任务中最具挑战性的。

    我们还注意到,《The power of scale for parameter-efficient prompt tuning》P-tuningSQuAD 2.0 上有一些异常的结果。这可能是因为 SQuAD 2.0 包含不可回答的问题,这给 single-layer prompt tuning 带来了优化挑战。

    除了 QA 之外,多任务学习一般会给 P-Tuning v2 的大多数任务带来明显的改进。

  7. 消融研究:

    • Verbalizer with LM head v.s. [CLS] label with linear headVerbalizer with LM head 一直是以前的 prompt tuning 方法的核心组成部分。然而,在 supervised setting 中,对于 P-tuning v2 ,用大约几千个参数来调优一个 linear head 是可以承受的。

      我们在 Table 4 中展示了我们的比较,其中我们保留了其他的超参数,只将 [CLS] labellinear head 改为 verbalizer with LM head 。在这里,为了简单起见,我们对 SST-2, RTE, BoolQ 使用 "true""false" 、对 CB 使用 "true", "false", "neutral"。结果表明,verbalizer[CLS] 的表现没有明显区别。

    • prompt depth《The power of scale for parameter-efficient prompt tuning》P-tuningP-tuning v2 的主要区别是 multi-layer continuous prompts 。为了验证它的确切影响,给定一定数量的 k 层来添加 prompts ,我们按照升序和降序选择它们来添加 prompts ;对于其余的层,我们不作任何处理。

      Figure 3 所示,在参数数量相同的情况下(即要添加 promptstransformer layers 数量),按降序添加总是比按升序添加好。在 RTE 的情况下,只在第 17-24 层添加 prompts 可以产生与所有层添加 prompts 非常接近的性能。

    • Embedding v.s. MLP reparameterization:在 prefix-tuningP-tuning 中,作者发现 reparameterization 在提高训练速度、鲁棒性和性能方面很有用。然而,我们进行的实验表明,reparameterization 的效果在不同的 NLU 任务和数据集中是不一致的。

      Figure 4 所示:

      • RTECoNLL04 中,MLP reparameterization 通常表明在几乎所有的 prompt 长度上都比 embedding 的性能好。

      • 然而,在 BoolQ 中,MLPembedding 的结果是相差无几的。

      • CoNLL12 中, embedding 的结果一直优于 MLP

    • Prompt 长度:prompt 长度是 P-tuning v2 的另一个有影响力的超参数,其最佳值因任务而异。从 Figure 4 中我们观察到:

      • 对于简单的 NLU 任务,通常情况下,较短的 prompts 就能获得最佳性能。

      • 对于困难的序列任务,通常情况下,长于 100prompts 会有帮助。

      我们还发现,reparameterization 与最佳 prompt 长度有着密切的联系。例如,在 RTE, CoNLL04, BoolQ 中,MLPreparameterizationembedding 更早达到最佳结果。这一结论可能有助于对 P-tuningoptimization 属性进行一些思考。

三十、The Power of Scale for Parameter-Efficient Prompt Tuning[2021]

论文:《The Power of Scale for Parameter-Efficient Prompt Tuning》

  1. 随着 pre-trained 大型语言模型的广泛成功,出现了一系列的技术来适配这些通用模型的下游任务。ELMo 提出冻结 pre-trained 模型并学习其每层表征的 task-specific weighting 。然而,自 GPTBERT 以来,主流的 adaptation 技术是 model tuning (也叫做 "fine-tuning" ),其中所有的模型参数在 adaptation 期间被调优,正如 《Universal language model fine-tuning for text classification》所提出的。

    最近,GPT-3 表明,prompt design (也叫做 "priming" )在通过 text prompts 来调节 frozen GPT-3 model 的行为方面是惊人的有效。prompts 通常由一个任务描述和/或几个典型的示例组成。这种回到 "冻结" pre-trained 模型的做法很有吸引力,特别是在模型规模不断扩大的情况下。与其说每个下游任务都需要一个单独的模型副本,不如说一个通用模型可以同时为许多不同的任务服务。

    不幸的是,prompt-based adaptation 有几个关键的缺点。任务描述容易出错并需要人的参与,而且 prompt 的有效性受限于模型输入中能容纳多少 conditioning text 。因此,下游的任务质量仍然远远落后于 tuned model 。例如,尽管使用了 16 倍的参数,GPT-3 175BSuperGLUE 上的 few-shot 性能比 fine-tuned T5-XXL17.5 分( 71.8 vs. 89.3 )。

    人们最近提出了一些 automate prompt design 的努力。AutoPrompt 提出了一种在单词的离散空间中的搜索算法,该算法被下游应用的训练数据所指导。虽然这种技术优于 manual prompt design ,但相对于 model tuning 来说仍有差距。

    《Prefix-tuning: Optimizing continuous prompts for generation》 提出了 "prefix tuning" ,并在生成式任务上显示了强大的结果。这种方法冻结了模型参数,并将tuning 过程中的误差反向传播到 prefix activations ,这些 prefix activations 被放置在 encoder stack 中每一层(包括输入层)之前。《WARP: Word-level Adversarial ReProgramming》 通过将可训练的参数限制在 masked language model 的输入子网和输出子网上,简化了这个配方,并在分类任务上显示了合理的结果。

    在本文中,我们提出了 prompt tuning 作为适配语言模型的进一步简化。我们冻结了整个 pre-trained 模型,只允许每个下游任务有额外的 ktunable tokens 被添加到 input text 之前。这种 "soft prompt" 是经过端到端训练的,可以浓缩来自完整的 labeled 数据集的信号,使我们的方法能够胜过 few-shot prompts ,并缩小与 model tuning 的质量差距(Figure 1 )。同时,由于单个 pre-trained 模型用于所有下游任务,我们保留了 frozen model 的高效 serving 的优势(Figure 2 )。

    虽然我们与《Prefix-tuning: Optimizing continuous prompts for generation》 以及 《WARP: Word-level Adversarial ReProgramming》 同时开发了我们的方法,但我们是第一个表明单独的 prompt tuning (没有中间层 prefixtask-specific 输出层)足以与 model tuning 竞争。通过详细实验,我们证明语言模型容量是这些方法成功的关键因素。如 Figure 1 所示,随着规模的扩大,prompt tuning 变得更具竞争力。

    我们在实验中与类似的方法进行比较。明确地将 task-specific 参数与一般语言理解所需的 "通用" 参数分开,有一系列额外的好处。我们在实验中表明,通过捕获在 prompt 中的任务定义,同时保持通用参数的固定,我们能够实现对 domain shift 的更好的适应性。此外,我们表明"prompt ensembling" ,即为同一任务来学习多个prompts ,可以提高质量,并且比传统的 model ensembling 更有效率。最后,我们研究了我们学到的 soft prompts 的可解释性。

    本论文的方法是 full-data training 的,而不是 few-data training

    总而言之,我们的主要贡献是:

    • 提出了prompt tuning ,并展示了其在大型语言模型领域中与 model tuning 的竞争力。

    • 消除了许多设计的选择,并表明质量和鲁棒性随着模型规模的扩大而提高。

    • 显示在 domain shift 问题上,prompt tuning 优于 model tuning

    • 提出 "prompt ensembling" 并显示其有效性。

    Prefix-TuningP-TuningP-Tuning v2 都采用了重参数化技巧,这增加了训练的复杂性。

    Prefix-TuningP-Tuning v2 对每一层添加了 continues prompts,相比之下这里仅对输入层添加了 continues prompts

    P-Tuning 也是仅对输入层添加了 continues prompts ,但是 P-Tuning 允许在输入的不同位置插入 continues prompts 。相比之下这里仅在输入的头部插入 continues prompts

30.1 Prompt Tuning

  1. 遵从 T5"text-to-text" 的方法,我们把所有的任务作为 text generation 。我们现在不是将分类任务建模为给定某个输入 X 的条件下输出类别 y 的概率 Pr(yX),其中 Xtokens 的一个序列,y 是单个 class label ;而是将分类任务建模为 conditional generation Pr(YX),其中 Y 是代表一个 class labeltokens 序列 。 T5 建模分类任务为 Prθ(YX),由编码器和解码器组成的 transformer 来建模,θ 为模型参数。

  2. promptinng 是在生成 Y 的过程中为模型添加额外信息的方法。通常情况下,prompting 是通过在输入 X 的前面添加 tokens 序列 P 来完成的,这样模型就能最大化正确的 Y 的似然( Prθ(Y[P;X]) ),同时保持模型参数 θ 固定。在 GPT-3 中,prompt tokens P={p1,p2,,pn}representation 是模型的 embedding table 的一部分,通过被冻结的 θ 来参数化 。因此,寻找最佳 prompt 需要选择 prompt tokens ,通过手动搜索、或非微分( non-differentiable )的搜索方法(《How can we know what language models know?》《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts》)。

    prompt tuning 消除了提示语 Pθ 参数化的限制;相反,prompt 有自己的专用的、可以被更新的参数 θPprompt design 涉及从frozen embeddingsfixed vocabulary 中选择 prompt tokens ,而 prompt tuning 可以被认为是使用 special tokensfixed prompt ,其中只有这些 prompt tokensembedding 可以被更新。我们新的 conditional generation 现在是 Prθ;θP(Y[P;X]),可以通过反向传播来最大化 Y 的似然从而进行训练,但是只对 θP 应用梯度更新。

    具体而言,给定 ntokens 组成的序列 {x1,x2,,xn}T5 做的第一件事是嵌入 tokens ,形成一个矩阵 XeRn×e,其中 eembedding 空间的尺寸。我们的 soft-prompts 被表示为一个参数 PeRp×e,其中 pprompt 的长度。然后,我们的 prompt 被拼接到 embedded input ,形成单个矩阵 [Pe;Xe]R(p+n)×e,然后像正常一样馈入 encoder-decoder 。我们的模型被训练成最大化 Y 的概率,但只有 promp 参数 Pe 被更新。

    这是 Prefix-tuning 在仅有输入被添加 prefix 的特殊情况,根据 prefix-tuning 的论文,这种情况的效果不佳。猜测原因是:Prefix-tuning 中的模型规模不够大;Prefix-tuning 采用了重参数化技巧的影响。

30.1.1 Design Decisions

  1. 有许多可能的方法来初始化 prompt representations

    • 最简单的是从头开始训练,使用随机初始化。

    • 一个更复杂的选择是将每个prompt token 初始化为一个从模型词表中提取的 embedding 。从概念上讲,我们的 soft-prompt 以与 text preceding the input (即,普通的 prompt )相同的方式来调节 frozen network 的行为,因此,word-like representation 可能会成为一个好的初始化点。

    • 对于分类任务,第三个选择是用列举 output classesembeddings 来初始化 prompt ,类似于 《Exploiting cloze-questions for few-shot text classification and natural language inference》"verbalizers" 。由于我们希望模型在输出中产生这些 tokens ,用 valid target tokensembedding 来初始化 prompt 应该使模型将其输出限制在合法的输出类别中。

    论文 《PPT: Pre-trained Prompt Tuning for Few-shot Learning》 表明:在full-data training 下更小模型上表现好的初始化方法,在few-shot training 下更大模型中不一定有效。

  2. 另一个设计考虑是 prompt 长度。我们方法的参数成本是 e×p,其中 etoken embedding 维度,pprompt 长度。prompt 越短,必须被调优的新参数就越少,所以我们的目标是找到一个仍然表现良好的最小长度。

30.1.2 Unlearning Span Corruption

  1. GPT-3 等自回归语言模型不同,我们试验的 T5 模型使用 encoder-decoder 架构,并对 span corruption objective 进行预训练。具体来说,T5 的任务是 "重建" 输入文本中的 masked spans ,这些 spans 被标记为独特的哨兵 tokenstarget output text 由所有 masked text 组成,用哨兵 tokens分开,再加上 final sentinel token 。例如,从文本"Thank you for inviting me to your party last week" 中,我们可以构建一个预训练样本,输入是 "Thank you <X> me to your party <Y> week"target 输出是 "<X> for inviting <Y> last <Z>"

  2. 虽然 《Exploring the limits of transfer learning with a unified text-to-text transformer》 发现这种架构和 pre-training objective 比传统的语言建模更有效,但我们假设这种 setting 并不适合产生一个 frozen model ,其中这个 frozen model 可以随时通过 prompt tuning 来控制。具体而言,一个专门针对 span corruption 进行预训练的 T5 模型(如 T5.1.1 ),从未见过真正自然的输入文本(不含哨兵 tokens ),也从未被要求预测真正自然的 targets 。事实上,由于 T5span corruption preprocessing 的细节,每一个 pre-training target 都会以一个哨兵 token 开始。虽然这种输出哨兵的 "非自然" 倾向很容易通过微调来克服,但我们怀疑,由于解码器的先验无法被调整,仅通过 prompt 就很难覆盖这种倾向。

    考虑到这些问题,我们在三种情况下实验了 T5 模型:

    • "Span Corruption" : 我们使用现成的 pre-trained T5 作为我们的 frozen 模型,并测试它为下游任务输出预期文本的能力。

    • "Span Corruption + Sentinel" : 我们使用相同的模型,但在所有的下游targets 之前放置一个哨兵 token ,以便更接近于预训练中看到的 targets

    • "LM Adaptation": 我们继续以少量的额外 steps 进行 T5 的自监督训练,但使用 T5 原始论文中的 "LM" objective :给定一个自然文本前缀作为输入,模型必须产生自然文本的延续作为输出。至关重要的是,这种 adaptation 只发生一次,产生单个 frozen模型,我们可以在任何数量的下游任务中作为 prompt tuning 来重复使用。

      通过 LM Adaptation ,我们希望将 T5 "快速" 转变为一个与 GPT-3 更相似的模型,其中 GPT-3 总是输出真实的文本,并且作为一个 "few-shot learner"prompts 做出良好的响应。与从头开始的预训练相比,这种后期转换的成功率并不明显,而且据我们所知,以前也没有人研究过这种情况。因此,我们对各种训练 stepsadaptation 进行了实验,最高可达 100K 步。

30.2 实验

  1. 实验配置:

    • 模型:各种尺寸的 pre-trained T5 checkpointsSmall, Base, Large, XL, XXL )。我们利用公共的 T5.1.1 checkpoitn ,其中包括对原始 T5.1 的改进。

    • 默认配置为绿色的 x 线,使用经过 LM-adaptedT5 版本(额外训练了 100k 步),使用 class labels 进行初始化,并使用 100 tokensprompt 长度。虽然这比 Prefix-tuning 使用的默认的 10-token prefix 要长,但我们的方法仍然使用较少的 task-specific 参数,因为我们只调优了输入层,而不是覆盖所有网络层的激活。

    • 数据集:SuperGLUE 。我们的每个 prompt 都在单个的 Super-GLUE 任务上进行训练,没有多任务设置或跨任务来混合训练数据。

    • 我们使用 T5 的标准交叉熵损失训练我们的 prompts30k 步,学习率恒定为 0.3batch size = 32checkpoint 是通过验证集上的早停来选择的,其中停止的指标是数据集的默认指标,或者是用多个指标评估的数据集的平均指标。所有实验都在JAX 中运行,使用 Adafactor 优化器,权重衰减 1e-5β2衰减 0.8parameter scaling off 。这些模型在 Flax 中实现。更多细节见附录 A

  2. 实验涉及到的数据的统计信息:

  3. 训练耗时:

  4. 可训练参数的占比:

30.2.1 弥补差距

  1. 为了将我们的方法与标准 model tuning 进行比较。我们考虑两个 baseline

    • "Model Tuning":为了进行一对一的比较,我们对每个任务分别进行调优,就像我们的 prompt tuning setup 一样。

    • "Model Tuning (Multitask)":我们使用 T5multi-task tuning setup 来实现一个更具竞争力的 baseline 。在这种情况下,单个模型在所有的任务上被联合调优,用 text prefix 表示任务名称。

    在下图中,我们看到,随着规模的增加,prompt tuningmodel tuning 的竞争变得更加激烈。在 XXL 规模( 11B 参数)下,prompt tuning 甚至与更强大的 multi-task model tuning 基线相匹配,尽管其 task-specific 参数少了 20000 倍。

    为了与 prompt design 进行比较,我们将 GPT-3 few-shotSuperGLUE dev split 上性能包括在内。下图显示,prompt tuning 以很大的优势击败 GPT-3 prompt designprompt-tuned T5-SmallGPT-3 XL (参数规模超过 16 倍)相匹配, prompt-tuned T5-Large 击败了 GPT-3 175B (参数规模超过 220 倍)。

30.2.2 消融研究

  1. Prompt LengthFigure 3(a)):对于大多数模型规模,增加 prompt 长度超过一个 token 是实现良好性能的关键。值得注意的是,XXL 模型在 single-token prompt 下仍有很好的效果,这表明模型越大,实现目标行为所需的 conditioning signal 就越少。在所有的模型中,增加到 20 tokens 以上只能产生微弱的收益。

    tokens 数量增加到 150 的时候,效果反而下降。这说明发生了过拟合。

  2. Prompt InitializationFigure 3(b)):

    • 对于随机初始化,我们从 [-0.5, 0.5] 范围内均匀采样。

    • 对于 sampled vocabulary 初始化,我们从 在 T5Sentence-Piece 词表中最 "常见" 的 5000 tokens 中随机采样,其中 tokens 按照在预训练语料库中的频次来排序。

    • 对于 class label 初始化,我们采用下游任务每个类别的字符串对应的 embedding 来初始化 prompt 中的一个 token。当一个 class labelmulti-token 时,我们采用 token embeddings 的均值。

      对于较长的 prompt,通常在使用 class label 初始化之后,还剩下很多 prompt tokens 尚未初始化,此时我们采用 sampled vocabulary 初始化。

    我们发现基于 class label 的初始化表现最好。在较小的模型尺寸下,不同的初始化之间有很大的差距,但是一旦模型被放大到 XXL 规模,这些差异就会消失。

  3. Pre-training ObjectiveFigure 3(c)):pre-training objectiveprompt tuning 质量有明显的影响。

    • T5 默认的 "span corruption" objective 并不适合于训练 frozen 的模型从而用于后续的 conditioned by prompts

    • 即使是在下游目标中添加哨兵的 "变通方法" 也没有什么好处。

    • LM adaptation 在所有的模型规模中都增加了效果。

    • 我们最大的 XXL 模型是最宽容的,即使是 span corruption objective 也能给出强有力的结果。

  4. adaption 长度(Figure 3(d)):较长的 adaption (最高可达 100K 步)提供了额外的收益。这表明,从 span corruption 到语言建模目标的 "过渡" 不是一个微不足道的变化,有效的过渡需要投入训练资源(原始 T5 预训练的 10%steps )。

    此外,我们观察到 XXL 模型对非理想的配置也很稳健。在这种规模下, adaption 的收益是相当小的。

    对于 non-optimal "span corruption" setting,我们观察到不同大小的模型的不稳定性:Small 模型的表现优于较大的 Base, Large, XL 模型。经检查,我们发现对于许多任务,这些中型模型从未学会输出一个合法的类别标签,因此得分为 0% 。此外,这种糟糕的表现并不是由于 "span corruption" setting 的随机方差造成的,因为我们观察到每个大小的模型在 3 次运行中的方差很低。这些结果表明,使用用 "sparn corruption" objective 预训练的模型可能是不可靠的,5 个模型中只有 2 个工作良好,而LM adapated 版本在所有模型大小上都工作可靠。

  5. 我们已经发布了 T5 1.1 checkpoint ,使用 LM objective 对所有模型大小进行了 100K 步的适配。

    没有关于训练样本数量的消融研究?这方面的消融研究可以参考 PPT 的实验部分。总体而言,样本数量越少,Prompt TuningFine Tuning 的差异越大。

30.2.3 与相似方法的比较

  1. 如下图所示,在具有可学习参数的方法中,prompt tuning 的参数效率最高,对于超过 1B 参数的模型,需要不到 0.01%task-specific 参数。

    • prefix tuning:学习 prefix 的一个序列,该序列添加到每个 transformer layer 的前面。相比之下,prompt tuning 使用单个 prompt representation ,该 prompt representation 被添加到 embedded input 之前。

      prefix tuning 还需要 prefix 的重参数化来稳定学习,这在训练过程中增加了大量的参数;而我们的配置不需要这种重新参数化。

    • WARPprompt parameters 被添加到输入层。它限制模型产生单个输出,且限制为分类任务。prompt tuning 没有这些限制。

    • P-tuning:可学习的 continuous promptsembedded input 中交错出现,使用基于 human design 的模式。我们的方法通过简单地将 prompt 添加到输入的开头,消除了这种复杂情况。

      为了达到强大的 SuperGLUE 结果,P-tuning 必须与 model tuning 结合使用,也就是说,模型联合更新 prompt 参数和 main model parameters ,而我们的方法保持原始语言模型是冻结的。

      P-tuning 的原始论文中,原始语言模型也是冻结的。

    • 《Learning how to ask: Querying LMs with mixtures of soft prompts》:使用 "soft words" 来学习 prompts ,以便从 pre-trained 语言模型中提取知识。 promptinput 的位置关系是基于手工设计的 prommtp prototypes ,每一层都包含一个学到的 Δil 参数,所以参数成本随着模型深度的增加而增加。

    • 《Few-shot sequence learning with transformers》:使用一个可学习的 prepended token 来使 transformer 模型适应各种任务,但重点是小的合成数据集,旨在适应 compositional task representation ,而不是较大的真实世界数据集。

    • 更广泛地说,关于 task prompts 的工作与关于 "adapters" 的工作密切相关,即在 frozen pre-trained network layers 之间插入小型 bottleneck layersadapters 提供了另一种减少task-specific 参数的手段。

      • 《Parameter-efficient transfer learning for NLP》 在冻结 BERT-Large 并只增加 2-4% 的额外参数时,实现了接近 full model tuningGLUE 性能。

      • 《MAD-X: An Adapter-Based Framework for Multi-Task Cross-Lingual Transfer》 在多语言背景下使用多个 adapters ,明确地将语言理解与任务规范分开,与我们的方法类似。

      adaptersprompt tuning 之间的一个核心区别是:这些方法如何改变模型行为。

      • adapters 通过允许重写任何给定层的 activations 来修改实际函数,该函数作用于 input representation 并由神经网络参数化。

      • prompt tuning 通过保持函数的固定、以及增加新的 input representation 来修改行为,这些 new input representation 会影响后续输入的处理方式。

30.2.4 对 Domain Shift 的恢复能力

  1. 通过冻结 core language model parametersprompt tuning 防止模型修改模型对语言的通用理解。相反,prompt representations 间接地调节了输入的 representation 。这减少了模型通过记忆特定的词汇线索、以及记忆虚假的相关关系来过拟合数据集的能力。这一限制表明,prompt tuning 可能会提高对 domain shift 的鲁棒性,即输入的分布在训练和评估之间有所不同。

  2. 我们在两个任务上研究 zero-shot domain transfer:问答、paraphrase detection

  3. 问答任务:MRQA 数据集作为 in-domain 数据集,然后我们在下表中的数据集(作为 out-of-domain )上评估。prompt tuning 大多数 out-of-domain 数据集上优于 model tuning 。在 domain shifts 较大的情况下(如 BioASQ 中的生物医学或 TextbookQA 中的数据集),prompt tuning 的收益更大。

  4. paraphrase detection :第一个任务是 QQP ,它询问社区问答网站 Quora 的两个问题是否是 "重复的"。第二个任务是 MRPC ,它询问的是来自新闻文章的两个句子是否是转述。和前面一样,我们在 "in-domain" 任务上进行训练,用 in-domain 验证集选择 checkpoint ,并在"out-of-domain" 任务上进行 out-of-domain 评估。

    结果表明:在 QQP 数据上训练一个轻量级的 prompt 并在 MRPC 上进行评估,比调优整个模型的性能好得多。在另一个方向上,结果要接近得多,prompt tuning 显示了准确率的小幅提高和 F1 的小幅下降。

    这些结果支持这样的观点:model tuning 可能是过度参数化的,更容易过拟合训练任务,对不同领域的类似任务不利。

30.2.5 Prompt Ensembling

  1. 在相同数据上从不同的初始化而训练出来的一组神经模型,对这组模型的 ensembles 被广泛观察到:改善了任务表现,并且对于估计模型的不确定性很有用。然而,随着模型规模的增加,ensembling 可能变得不切实际。除了存储 N 个模型所需的空间外(例如T5-XXL 的每个副本需要 42GiB ),运行 N 个不同的模型(无论是并行还是串联)都有很大的推断成本。

    prompt tuning 提供了一种更有效的方式来ensemble pre-trained 语言模型的多个 adaptations 。通过在同一任务上训练 Nprompts ,我们为一个任务创建了 N 个独立的 "模型",同时仍然在整个过程中共享 core language modeling parameters 。除了大幅降低存储成本外,prompt ensemble 还使推断更有效率。为了处理一个样本,与其计算 N 个不同模型的前向传播,我们可以执行一个 batch size = N 的单次前向传播,在整个 batch 中复制该样本并改变 prompt 。这些节约反映了 Figure 2 中多任务处理的情况。

  2. 为了证明 prompt ensembling 的可行性,我们为每个 SuperGLUE 任务训练了五个 prompts ,使用一个 frozen T5-XXL 模型和我们默认的超参数。我们使用简单的多数投票来计算 ensemble 的预测结果。Table 3 显示,在所有的任务中,ensemble 都比单个 prompt 的均值要好,也比最好的单个 prompt 要好或与之匹配。

30.2.6 可解释性

  1. 一个理想的可解释的 prompt 由自然语言组成,它清楚地描述了手头的任务,明确地要求模型做出一些结果或行动,并使人容易理解为什么 prompt 会从模型中引导这样的行为。

    由于 prompt tuning 是在连续的 embedding space 而不是离散的 token space 中工作,解释 prompt 变得更加困难。为了测试我们学到的 soft prompts 的可解释性,我们从冻结的模型词表中计算出每个 prompt token 的最近邻(余弦相似度作为距离指标)。

    • 我们观察到,对于一个给定的 learned prompt tokentop-5 最近邻居成了紧密的语义簇。例如,我们看到词汇上相似的簇,如 { Technology / technology / Technologies/ technological / technologies },以及更多样化但仍然强烈相关的簇,如 { entirely / completely / totally / altogether/ 100% }。这些簇的性质表明,这些 prompts 实际上是在学习 "word-like" representation 。我们发现,从 embedding space 中抽取的随机向量并不显示这种语义聚类。

    • 当使用 "class label" 策略初始化 prompts 时,我们经常发现 class labels 在训练中一直存在。具体来说,如果一个 prompt token 被初始化为一个给定的 label ,在调优之后,那么这个 label 往往是在 learned token 的近邻中。

      当用 "Random Uniform""Sampled Vocab" 方法初始化时,class label 也可以在 prompts 的最近邻中找到;但是它们往往作为多个 prompt tokens 的邻居出现。

      这表明,模型正在学习将预期的输出类别存储在 prompts 中作为参考,而将 prompt 初始化为输出类别使之更容易、更集中化。

      这是否意味着:在 discrete prompts 的设计过程中,我们可以将候选答案也加入到 prompts 中?比如:Options: postive, negative. Question: [X]. The sentiment is :

    • 当检查较长的 prompts (如长度为 100 )时,我们经常发现有几个 prompt 具有相同的近邻。这表明,要么prompt 中存在过剩的容量,要么prompt representation 中缺乏序列结构使得模型难以将信息定位到特定的位置。

      正如 P-Tuning 所述:从直觉上讲,他们认为 prompt embeddings 的值应该是相互依赖的,而不是相互独立的。如何很好地建模这种依赖性?这是一个挑战。

    • 虽然作为序列的 learned prompts 显示出很少的可解释性,但我们确实观察到像 science, technology, engineering这样的单词作为在 BoolQ 数据集上训练的 prompt 的最近邻的频率很高,大约 20% 的问题属于 "自然/科学" 类别。虽然还需要更多的调查,但这表明 prompt 的一个作用可能是引导模型解释特定领域或背景下的输入(例如 "科学")。

三十一、Querying LMs with Mixtures of Soft Prompts[2021]

论文:《Learning How to Ask: Querying LMs with Mixtures of Soft Prompts》

  1. pretrained 语言模型(如 ELMoBERT、和 BART )已被证明在其他自然语言处理任务中提供有用的 representations 。最近, 《Language models as knowledge bases?》《How can we know what language models know?》证明语言模型还包含可以通过 prompt 引发的事实知识和常识知识。例如,要查询莫扎特的出生日期,我们可以使用 prompt___ was born in ___”,其中我们将第一个空填入了 “莫扎特”,并要求一个完形填空语言模型(cloze language model )填写第二个空。《Language models as knowledge bases?》 使用手动创建的 prompts ,而 《How can we know what language models know?》 使用基于挖掘(mining )和释义(paraphrasing )的方法来自动地扩充 prompt 集合。

    了解幼儿知道什么知识是困难的,因为他们对问题的形式非常敏感(《Children’s Minds》)。民意调查也对问题设计敏感(《The assumptions and theory of public opinion polling》)。我们观察到,当我们查询一个语言模型而不是一个人时,我们有机会使用梯度下降来调优 prompts ,从而更好地引发所需类型的知识。

    神经语言模型将 prompt 视为连续的单词向量的序列。我们在这个连续空间中进行调优,放宽了向量必须是实际英语单词的 embedding 的约束。允许使用 "soft prompts" (由 "soft words" 组成)不仅方便优化,而且更加表达力强。soft prompts 可以强调特定单词(通过增加它们的向量长度)或这些单词的特定维度。它们还可以调整那些具有误导性、模糊性的或过于具体的单词。考虑以下用于 relation date-of-deathprompt

    这个 prompt 可能适用于男歌手 Cab Calloway ,但如果我们希望它也适用于女画家 Mary Cassatt ,可能有助于软化 "performed""his" ,以避免强调错误的职业和性别,并且可以将 "until" 软化为一个较弱的介词(因为事实上 Cassatt 在她最后的几年里失明无法继续绘画)。

    另一种将这些情况联系起来的方法是:一个 prompt 使用 "performed" ,另一个 prompt 使用 "painted" 。一般来说,可能有许多不同的词汇模式可以表明特定的 relation ,使用更多的模式将获得更好的覆盖率。因此,我们提出了学习 mixture of soft prompts 的方法。

    我们在几个完形填空语言模型上测试了这个想法,训练了用于补全三个数据集中的事实关系和常识关系的 prompts 。通过对 held-out 样本进行比较,我们的方法显著优于先前的工作,即使是随机初始化的情况下也是如此。因此,当将其视为近似知识库时,语言模型知道的东西比我们意识到的要多。我们只是需要找到正确的提问方式。

  2. 相关工作:

    • 大多数先前的工作都是手动创建 prompts 来从 trained 语言模型中提取答案。

      • LM Prompt And Query Archive: LPAQA 方法通过挖掘语料库、或 paraphrasing 现有 prompts 来搜索新的 prompts

      • AutoPrompt 通过使用梯度信号搜索 improved prompts ,然而其 prompts 仅限于实际(hard )的英语单词的序列,与我们的方法不同。

      我们将我们的新型 soft prompts 与所有这些系统进行比较。

    • 在我们于 202011 月提交本文之后,arXiv 上出现了两篇尚未发表的论文,它们也研究了 soft prompts

      • 《Prefix-tuning: Optimizing continuous prompts for generation》考虑了从 pretrained 语言模型( GPT-2BART )以 prompt 为条件来生成文本。为了改进结果,他们在 prompt 之前添加了一些 task-specific "soft tokens",并仅仅微调了这些 tokensembedding (在所有 embedding layers 上)。

      • 《GPT understands, too.》 采用了与我们类似的策略,通过在连续空间中调优 fill-in-the-blank prompts 来对 GPT-2BERT 模型进行测试,然而他们没有使用我们提出的增强方法。

      与我们的工作类似,这两篇论文都取得了很大的进展。

    • 在其他工作中:

      • 《Inducing relational knowledge from BERT》从语料库中挖掘 prompts ,然后对整个语言模型进行微调,以使其更准确地补全 prompts

      • PETPET-2的方法类似,但是对于每个 prompts ,他们以不同的方式微调语言模型。

      我们的方法通过调优 prompts 本身来补充这些方法。

    • 询问语言模型对特定句子的了解程度的 probing system 通常使用前馈网络而不是进一步的自然语言 prompts 。然而, AutoPrompt 展示了如何使用自然语言 prompts 来询问特定句子。我们的方法可能适用于这些 prompts ,或者适用于包含 input-output examplesfew-shot learningGPT-3 )。

31.1 方法

  1. 给定一个固定的 pretrained 语言模型、一个 特定的关系 r (如 date-of-death )、一个由关系 r(x,y) pairs 组成的训练数据集 Er ,我们训练一个系统用于从 x 中预测 y ,然后在相同关系的 held-out (x,y) pairs 上评估该系统。

    prompt t 是一个包含两个空格的句子或短语。为了提出 query,我们用 x 填充第一个空格,然后要求语言模型预测单个单词来填充第二个空格。

  2. 假设 word embedding 的维度为 d 。我们允许 tsoft prompt,即 t 中的 tokens 可以为任意的 d 维向量。我们可以将这些向量初始化为某些真实的英语单词的 embedding 。然而,我们可以连续地调优这些向量。

  3. Deeply Perturbed Prompts:对于 prompt 中的每个 token i ,它的向量 representation vi 参与了语言模型的计算从而补全 prompt 。我们通过添加一个小的扰动向量 Δi(l) 到每个 vi(l) 来调优 prompt ,其中 l 表示网络的第 l 层。

    仅仅调优 layer 0 等价于直接调优 vi 。我们也可以调优所有的层。扰动向量可以通过 early stopping 或其他形式的正则化技术从而保持很小。我们的直觉是:小的扰动将产生与 LM 所训练得到的 activation patterns 更加相似的 activation patterns

    Prefix-tuning 的唯一区别在于:这里施加正则化技术使得每次的更新 Δi(l) 很小。

    事实上,这可以在 Prefix-tuning 中采用较小的学习率、以及梯度范数截断来实现。

  4. Mixture Modeling:给定关系 r 的一组 soft prompts Tr ,我们能够定义 ensemble predictive distribution

    (9)p(yx,r)=tTrp(tr)×pLM(yt,x)

    其中:

    • pLM(yt,x) 为语言模型的条件输出分布。

    • p(tr)soft promtps tTr 的权重。

    这就是 《How Can We Know What Language Models Know?》 中采用的 Prompt Ensembling 策略。

  5. Data-Dependent Mixture Modeling:作为扩展,我们可以将 p(tr) 替换为 p(tr,x) 。即,对于不同的输入 x 选择不同的权重。我们没有直接建立 neural softmax model 来优化 p(tr,x) ,而是基于贝叶斯理论将 p(tr,x) 重写为:

    (10)p(tr,x)p(tr)×p(xt,r)1/T

    其中 T 为超参数。我们使用这个固定的语言模型来预估第二项为:

    (11)p(xt,r)=ypLM(x,yt,r)

    需要两次推断:一次预测 p(xt,r) 、另一次预测 p(yt,x)

  6. Training Objective:给定 Tr 的初始集合,我们联合优化 soft promtps tTr 和它们的 mixture weights p(tr)

    (12)(x,y)ErlogtTrp(yt,x)

31.2 实验

  1. 略。

    本论文和 Prefix-Tuning 非常类似,因此实验部分省略。

三十二、PPT[2021]

论文:《PPT: Pre-trained Prompt Tuning for Few-shot Learning》

  1. 近年来,微调预训练语言模型(pre-trained language model: PLM )取得了重大进展。通过调优整个模型的参数,可以将从大规模 unlabeled 语料库中获得的各种各样的知识适用于处理各种自然语言处理任务,并超越从头开始学习模型的方法(《Pre-trained models: Past, present and future》)。为简单起见,我们将这种完全模型的微调称为 "FT" 。如 Figure 1 (b) and (c) 所示,有两种主流的FT 方法:

    • 第一种是 task-oriented fine-tuning ,在 PLM 之上添加 task-specific head ,然后通过优化相应训练数据上的 task-specific objectives 来对整个模型进行微调。

    • 第二种是 prompt-oriented finetuning《Exploiting cloze questions for few-shot text classification and natural language inference》),其灵感来自最近利用语言prompts 来探索 PLM 中的知识的工作(LAMAGPT-3 )。在 prompt-oriented finetuning 中,数据样本被转换为包含 prompt tokens 的序列,并将下游任务形式化为语言建模问题。如 FIgure 1(c) 所示,通过在句子中添加 prompt "It was <X>.",我们可以通过在 mask position 预测 "great""terrible" 来确定其情感极性。如 Figure 1 所示,与 task-oriented fine-tuning 相比, prompt-oriented finetuning 更类似于 pre-training objectivesmasked language modeling),从而有助于更好地利用 PLM 中的知识,并经常获得更好的性能。

    虽然 FT 已经显示出有希望的结果,但随着模型规模的迅速增长,为每个下游任务进行整个大模型的微调和存储变得更加昂贵。为了解决这个挑战,《The power of scale for parameter-efficient prompt tuning》提出了 prompt tuning: PT ,以更低的成本将大型 PLM 适应于下游任务,如 Figure 1(d) 所示。具体而言,PT 使用由 continuous embeddings 组成的 soft prompts ,而不是hard prompts (离散的语言短语)。这些 continuous prompts 通常是随机初始化并进行端到端学习。为了避免为每个下游任务存储整个模型,PT 冻结所有 PLM 参数,仅微调 soft prompts ,而不添加任何中间层和 task-specific 组件。

    如果训练样本足够多,也可以把 Prompt Tuning 中的 Verbalizer 替换为 Task Head 。在数据稀疏的条件下,Verbalizer 的效果可能更好。

    PT 具有两个有前景的优势:

    • 首先,与 hard prompts 相比,soft prompts 可以进行端到端学习。

    • 其次,PT 是大规模 PLM 实际使用的一种高效而有效的范例,当下游数据足够时,与 FT 相媲美( Figure 2 (a) )。

    然而,如 Figure 2(b) 所示,我们发现在 few-shot settings 下,PT 的性能远远低于 FT ,这可能阻碍 PT 在各种低资源场景(low-resource scenarios )中的应用。

    因此,在本文中,我们通过 PT 探索如何以高效且有效的方式利用 PLM 进行 few-shot learning 。具体而言,我们进行了实证实验,以分析 PTPLM 上的有效性,而这个方面在大多数现有研究中被忽视。我们的发现如下:

    • 选择合适的 verbalizer 对性能有很大影响。

    • 简单地用 concrete word embeddings 来初始化 soft prompts 无法改善性能。

    • soft promptshard prompts 的结合是有帮助的。

    • 所有这些方法都不能很好地处理 few-shot prompt tuning 问题。

    以上观察结果揭示了 PLMprompt searching 并不是一件简单的事情,仔细地初始化 soft prompt tokens 至关重要。

    为了帮助模型找到合适的 prompts ,我们使用自监督任务在大规模 unlabeled 语料库上预训练 soft prompt tokens 。为了确保pre-trained prompts 的泛化性,我们将典型的分类任务分为三种格式:sentence-pair classificationmultiple-choice classificationsingle-text classification ,每种格式对应一个自监督预训练任务。此外,我们发现 multiple-choice classification 在这些格式中更为通用,可以将所有分类任务统一到该格式中。我们将这个 Pre-trained Prompt Tuning 框架命名为 "PPT" 。我们在几个数据集上基于三个 11B PLMT5-XXLmT5-XXLCPM-2 )上评估了 PPTfew-shot 场景下的性能。实验结果表明,PPT 不仅可以大幅提升 PT 的性能,达到甚至超越 FT 方法,而且可以降低 few-shot learning 的方差。除了有效性外,PPT 还保留了 PTparameter efficiency ,这对于将来在大规模 PLM 上的应用是有价值的。

    本文的核心思想:Prompt Tuning 的自监督预训练,从而提升 few-shot 场景下的性能。

    注意:自监督的预训练非常消耗资源(算力成本、时间成本)。大多数用户没有足够的资源来支撑大模型的 PPT

  2. 相关工作:

    • PLM and Task-oriented Fine-tuning:最近,人们提出了各种强大的 PLM ,例如 GPTBERTRoBERTaT5。为了将这些 PLM 适应于下游 NLP 任务,究人员提出了task-oriented fine-tuning ,其中使用 PLM 作为骨干并添加一些 task-specific heads 来优化 task-specific objectives 。然后,使用 task-specific dataPLMadditional heads 的所有参数进行微调。结果表明,task-oriented fine-tuning 可以在一系列NLP 任务上胜过从头开始训练的模型。

    • Prompt-oriented Fine-tuning:大多数现有的 PLM 是使用 language modeling objectives 进行预训练的,然而下游任务的目标却有很大的差异。为了弥合预训练和下游任务之间的差距,人们引入了 prompt-oriented fine-tuning 。在 prompt-oriented fine-tuning 中,下游任务也被形式化为语言建模问题,通过插入language prompts ,语言建模的结果可以对应到下游任务的 solutions

      knowledge probing《Language models as knowledge bases?》《A simple method for commonsense reasoning》《Commonsense knowledge mining from pretrained models》)是激发prompts 的发展的开创性工作。在 knowledge probing 中,语言 triggers 被广泛用于诱导 PLM 生成 relational facts 。这些开创性的工作表明,language prompts 可以有效地引导 PLM 的知识。受此启发,由离散的单词所组成的人工设计的 hard prompts 首次用于 prompt-oriented fine-tuningPETPET-2)。考虑到手动设计 prompts 既耗时又难以找到最佳选择,后来的研究(LM-BFFLPAQAAutoPrompt)提出了自动生成 prompts 的方法。然而,这些方法仍然将自动生成的 prompts 限制在离散空间中,而这通常不是最优的。

      为了克服离散空间的缺点,Prefix-TuningP-Tuning《PTR: prompt tuning with rules for text classification》《WARP: Word-level adversarial reprogramming》OptiPrompt 探索了将 hard promptsoft prompts 相结合。与使用 concrete and discrete tokenshard prompts 不同,soft prompts 由几个连续的可学习的 embedding 组成,这些 embedding 是随机初始化的。为了进一步发展,一些研究(《Prefix-tuning: Optimizing continuous prompts for generation》《Learning how to ask: Querying lms with mixtures of soft prompts》《The power of scale for parameter-efficient prompt tuning》)提出仅调优 soft prompts 并固定整个 PLM 参数。当模型足够大时,这种方法可以与full-model tuning 相媲美。

    • Few-shot Learning with PLM:由于长尾分布在实际应用中很常见,few-shot learning 对于稳定有效地使用 PLM 非常有意义,因此近年来受到了广泛关注。除了 GPT-3PET 展示了 PLMfew-shot 场景中的优势外,一些后续的工作 《True few-shot learning with language models》《FLEX: Unifying evaluation for few-shot nlp》 也讨论了通过限制验证集的大小、以及提出统一框架来评估 few-shot 性能的合理的 few-shot settings 。也有一些工作 《Cutting down on prompts and parameters: Simple few-shot learning with language models》 指出 PTfew-shot learning 中的表现较差,但他们主要关注的是参数少于 400MPLM 。本文研究了大型 11B PLMfew-shot learning

32.1 初步实验

  1. 本节中,我们展示了few-shot learningPT 的初步实验。我们分析了三种策略,包括 hybrid prompt tuningverbalizer selection 、以及 real word initialization 。我们遵循 《The power of scale for parameter-efficient prompt tuning》 的方法,使用 T5-XXL11B 参数)进行 PT ,并使用了 100 个可调优的 soft prompt tokens

    我们按照 PET-2的方法,从原始训练数据中随机选择 32 个样本来构建训练集 Dtrain 。为了调优超参数,我们从原始训练数据中构建验证集 Ddev ,并确保 |Dtrain|=|Ddev| ,从而模拟 few-shot learning setting《True few-shot learning with language models》)。我们按照 《Revisiting few-sample bert fine-tuning》《Making pre-trained language models better few-shot learners》 的方法,使用原始验证集作为测试集 Dtest ,即 Dtest|Dtrain|=|Ddev|

    • Hybrid Prompt Tuning:在 hybrid prompt tuning 中,同时使用 soft promptshard prompts《GPT understands, too》《PTR: prompt tuning with rules for text classification》)。然而,之前的工作是联合训练 soft prompts 和整个模型的。在只有 prompt tokens 可调优的 PT 中,hybrid prompts 的有效性尚未得到充分探索。在 Table 1 中,我们展示了在情感分类任务上结合 soft prompts P 、三个手动设计的 hard prompts 、以及两个自动生成的 hard prompts《Making pre-trained language models better few-shot learners》)的结果。我们可以看到:

      • hard prompts改善了PT ,但仍然表现不如 FT

      • 此外,不同的 hard prompts对性能影响显著,因此需要进行大量的人力来进行 prompt designprompt selection

    • Verbalizer Selectionverbalizer 是将 task-specific labels 映射到具体的 tokens 。例如,在 Figure 1(c) and (d) 中,verbalizer 将标签 "Positive" 映射到 "great" 。从 Table 1 中可以看出,verbalizer 的选择对性能有显著影响。通常情况下,解释相应标签含义的 common words 效果较好。这也指导了我们对 PPTverbalizer selection

    • Real Word Initialization :在 real word initialization 中,我们使用 concrete wordsembedding 来初始化 soft prompt ,并测试了四种初始化策略。先前的工作(《The power of scale for parameter-efficient prompt tuning》)已经验证了这种方法在小型 PLM (少于 3B 参数)上的有效性。然而,从在 SST-2BoolQ 上的实验结果(Table 2 )中,我们发现对于 11B 模型,在 few-shot 场景下,real word initialization 对性能几乎没有影响,甚至可能产生负面影响。这表明对小模型的观察不能直接应用于大模型,并且对 soft prompts 的良好初始化仍有待探索。

      注意:这里不仅是模型大小的差异,还有 full-data trainingfew-data training 的差异。

    总之,尽管上述enhancement 策略不能使 PTfew-shot settings 下达到与 FT 相媲美的结果,但它们仍然是影响 PT 性能的关键因素。在接下来的章节中,我们将描述我们的 PPT 框架,并通过实验证明 PPT 不仅提供了良好的 prompt initialization,而且充分利用了良好的 verbalizer ,并且与 hybrid prompts 互补。

33.2 Pre-trained Prompt Tuning (PPT)

  1. 在这一节中,我们将描述 PPT 的整个框架,包括如何预训练 prompts 、以及如何将这些 pre-trained prompts 用于特定任务。

33.2.1 Overview

  1. 遵从 T5《The power of scale for parameter-efficient prompt tuning》 的方法,我们以 text-to-text 的格式解决所有下游任务。如 Figure 1(c) 所示,为了减少预训练和下游任务之间的 objective gapprompt-oriented fine-tuning 将下游任务转换为完形填空风格的 objective 。以分类任务为例,给定一个输入句子 xV 和它的 label yY ,一个 pattern mappingn f:VV 首先被应用从而将 x 转换到一个新的序列 f(x) ,其中 VPLM 的词表,V 表示序列空间。f(x) 不仅添加了一些 prompt tokens 作为提示,而且还保留了 mask token X,以便让 PLM 预测在 masked positionstokens 。然后,一个 verbalizer v:YV 被用来将 y 映射到某些 label tokens v(y) 。有了 f()v(),一个分类任务就可以用 pattern-verbalizer pair (f,v) 来表示:

    (13)argmaxθxlogp(yx;θ)=argmaxθxlogp(X=v(y)f(x);θ)

    其中:θ 表示所有的 tunable parameters,尤其是 PLM 的参数。

    为方便起见,我们用 "PVP" 来表示这种 pattern-verbalizer pair《Exploiting cloze questions for few-shot text classification and natural language inference》)。

  2. PT《The power of scale for parameter-efficient prompt tuning》)中,一组 soft prompts P 被拼接到序列的开头,模型输入成为 [P;f(x)],其中 [;] 是拼接操作。通过调优 P ,上式被替换为:

    (14)argmaxPxlogp(X=v(y)[P;f(x)];P)

    由于大型 PLM 的力量,上式被验证为在 full-data settings 下与这些 FT 方法相媲美。然而,我们发现很难学习到有效的 soft prompts ,这可能会导致在各种 few-shot 场景下的低性能。parameter initialization 通常对模型训练和优化的难度有很大影响,我们的初步实验表明,现有的初始化策略对大型 PLMPT 性能影响不大,甚至有负面影响。初步实验的更多细节在实验章节详述。

  3. 最近,预训练已经被证明是一种有效的方法来寻找一个好的模型初始化。受此启发,我们建议对 soft prompts 进行预训练。我们注意到,下游任务的一些 groups 与某些自我监督任务(这些自监督任务建立在 unlabeled 预训练语料上)有关。例如,一些 sentence-pair classification 形式的任务,如自然语言推理(natural language inference )、句子相似性,与预训练阶段使用的 next sentence prediction: NSP 任务相似。如 Figure 3 所示,这些任务都以两个句子为输入,并比较其语义。因此,由NSP 所预训练的 soft prompts 可以成为这些 sentence-pair 任务的良好初始化。

    形式上,假设我们可以将下游任务分为 m{T1,T2,,Tm},其中 Ti 是包含 ni 个下游任务的集合:{PVPi1,PVPi2,,PVPini},其中 PVPik=(fik,vik)。对于每一分组,我们设计一个相应的预训练任务 PVPipre=(fipre,vipre)。在所有模型参数固定的情况下对这些任务进行预训练 soft prompts 之后,我们得到 mpre-trained prompts {P1,P2,,Pm}。然后,对于 Ti 中的每个任务 PVPik,我们通过使用 Pi 作为 soft prompts initialization 来优化公式 argmaxPxlogp(X=v(y)[P;f(x)];P)

    这里对每一类任务(而不是每一个任务)来预训练一个 soft prompt

    这里结合了 soft prompt (即,P )和 hard prompt(即,f(),v())。

33.2.2 Designing Pattern-Verbalizer Pairs for Pre-training

  1. 在本节中,我们以三个典型的分类任务为例,描述了用于 prompt pre-trainingpattern-verbalizer pair PVPpre 的设计。

  2. Sentence-Pair Classificationsentence-pair classification 任务(如自然语言推理、句子相似性)以两个句子 x=(s1,s2) 作为输入。为了设计这些任务的 PVP ,我们将 BERTnext sentence prediction 扩展为 3-class 分类作为预训练任务,label 空间为 Y={0,1,2}Y 中的这些标签可以分别表示两个句子之间的语义关系是一致的( label = 2 )、相似的(label = 1)和不相关的(label = 0 )。为了从 unlabeled 文档中构建信号,我们将彼此相邻的两个句子设为 label = 2 、将来自同一文档但非真正相邻的两个句子设为 label = 1、将来自不同文档的两个句子设为 label = 0 。我们考虑标签集合 |Y|3,因为这涵盖了大多数 sentence pair 任务。则 PVPipre=(fipre,vipre) 为:

    (15)fipre(x)=s1X.s2,vipre(Y)=[no, maybe, yes].

    根据 PVPipre 设计 PVPik=(fik,vik) 很简单。

    • s1s2可以用 input sentence pair 代替。

    • 如果一个任务是二分类的,那么我们取 vik(Y)=[no, yes];如果一个任务是三分类的,我们设定 vik=vipre

    • 如果一个任务需要衡量两个句子之间的相似性,那么 no, yes 上的概率可以用于该任务。

  3. Multiple-Choice Classification:许多任务可以被表述为 multiple-choice classification ,它需要一个 query 和几个候选答案作为输入。我们设计了一个 next sentence selection 任务来预训练 prompt 。给定一个句子作为 query sq,模型被训练为从六个候选句子(记做 s1s6)中选择相邻的句子,因此标签集合为 Y={1,2,3,4,5,6}。这些候选句子包括正确答案、来自同一文档但与 query 不相邻的句子、以及来自其他文档的四个句子。对于 x=(sq,s1,s2,,s6)PVPipre=(fipre,vipre) 为:

    (16)fipre(x)=sq?A.s1.F.s6.Answer is X.vipre(Y)=[A,B,C,D,E,F].

    大多数 multiple-choice tasks 可以直接使用 {fipre,vipre} 作为其 PVP 。对于像阅读理解这样的任务,输入可能包含一个段落和一个问题。我们将它们拼接起来形成 query

  4. Single-Sentence Classification:对于 single-sentence classification ,我们为 prompt pre-training 创建伪标签。以情感分类为例,我们使用另一个小模型为预训练语料库中的句子标注情感标签,并过滤掉那些分类概率低的句子。在实践中,我们使用 RoBERTa_BASE 模型,并且该模型在我们评估的 few-shot datasets 之外的 5-class 情感分类数据集上被微调过。然后给定语料库中的一个句子 s ,我们有输入 x=(s) 和标签集合 Y={1,2,3,4,5}PVPipre=(fipre,vipre) 为:

    (17)fipre(x)=s.X.vipre(Y)=[terrible, bad, maybe, good, great].

    对于有 5-class 的情感分类任务,我们可以使用 PVPik=PVPipre 。对于那些少于 5-class 的任务,我们从 vipre(Y) 中选择一个子集作为标签。

    尽管上述方法提高了模型的性能,但我们不得不指出,它在推广到不同领域和不同 label 集合大小的其他 single-sentence classification 任务上仍然是有限的。因此,我们提出了下一节所述的方法来解决这个问题。

32.2.3 Unifying Task Formats

  1. 上述用于预训练的 PVP 可以统一为一种格式:multiple-choice classification 。具体而言:

    • 对于 sentence-pair classificationquery 是两个句子的拼接,有三个选项:{no, maybe, yes}

    • 对于 single-sentence classificationquery 是输入句子,选项是具体的标签。请注意,通过这种方式,pre-trained PVP 可以用于任意领域的 single text classification 任务。

    根据论文 《Finetuned Language Models Are Zero-Shot Learners》 ,在分类任务的 prompts 中添加 options (即,task label space)是有益的。

  2. 构建一个统一的 PVP 类似于MultiQAUnifiedQA 的思想。最近,《Adapting language models for zero-shot learning by meta-tuning on dataset and prompt collections》 使用一些 hard prompts 将几个任务统一为一个 meta question answering 任务。他们在一组 QA 数据集上用这个 meta task 来调优整个模型,然后迁移到 low-resource settings 下的其他分类任务。然而,我们的 PPT 侧重于在 PLM 主体被固定的情况下调优 soft prompts ,我们的预训练是在完全无监督的数据上进行的(而不是监督数据)。

  3. 由于不同的任务可能有不同的候选数量和长度,我们构建的预训练样本的选项数量从 216不等,选项长度从 5020 。我们使用 PVP 进行预训练,然后应用 pre-trained soft prompts 来解决上述的三个分类任务。

32.3 实验

  1. 配置:

    • 同时考虑中文任务和英文任务(数据集如 Table 3 所示)。对于少于 5-class 的任务,我们用原始训练数据中的 32 个样本构建 DtrainDdev ,并确保标签数量的平衡。对于像 TNewsYahooAnswer 这样超过 5-class 的任务,很难用 label-balanced 的样本组成一个数据集。因此,我们为每种标签随机选择 8 个样本。

    • 对于英语数据集,我们基于 11B 参数的 T5-XXL 进行 PT ,因为之前的工作(《The power of scale for parameter-efficient prompt tuning》《CPM-2: Large-scale cost-effective pretrained language models》)表明,T5-XXLfull-data setting 下与 FT 相当。我们还在不同规模的 T5 上评估了 FT ,以验证更大的模型表现更好,因此基于 T5-XXL 来改进 PT 是有意义的。

      对于中文的数据集,我们基于 11B 模型 CPM-2 进行 PT 。 由于 CPM-2 没有提供其他尺寸的模型,我们将其与不同尺寸的 mT5 进行比较。

    • 一致的是,我们对 PT 使用 100soft tokens 。因此,tunable parameters 只有 100×4096=4.1×105=410K。与FT11B1.1×1010)个参数相比,PT 只需要为每个任务存储小 3000 倍的参数。

    • 对于 prompt pre-training ,我们从OpenWebText 数据集中为英语任务采样 10GB 数据, 从 WuDaoCorpora 数据集中为中文任务采样 10GB 数据。我们使用 Yelp-5 数据集来训练前文中提到的 RoBERTa_BASE 模型(生成情感分类伪标签从而用于 Single-Sentence Classification )。

    更多关于训练超参数的细节可以在附录 C 中找到。

  2. 英文和中文数据集的主要结果显示在 Table 中。在 FT block 中,我们展示了 T5 模型在 small 尺寸到 XXL 尺寸的 FT 结果。在PT block 中,我们展示了 PPT 和其他基线的结果:

    • 第一个基线是Vanilla PT ,其中 soft prompts 是从正态分布中随机初始化的。

    • 第二个基线是 Hybrid Prompt Tuning

    • 我们还考虑了 《The power of scale for parameter-efficient prompt tuning》 使用的 LM Adaption ,其中 T5 模型用语言建模目标进一步预训练了 10K 步,以减少预训练和 PT 之间的差距。

    • 我们测试了 PPT 的两个变体:

      • Hybrid PPT :精心设计的 hard promptspre-trained soft prompt 相结合。

      • Unified PPT :所有任务都统一为 multiple-choice classification 格式。

    Table 4 中我们可以看到四个观察结果:

    • 首先,较大的模型取得了较好的整体性能,这意味着增加模型的大小在 few-shot setting 下仍然有帮助。因此,我们在大规模pre-trained 的模型上研究 PT 。请注意,在中文的实验中,CPM-2mT5-XXL 共享相同的参数规模。由于 CPM-2 在所有的任务中都优于 mT5-XXL ,我们使用 CPM-2 作为 base 模型。

    • 其次,PPT 在大多数数据集上明显优于 Vanilla PTLM Adaption 。虽然 PPTBoolQ 上比 Hybrid PT 差,但结合 PPThard promptsHybrid PPT )的表现优于所有基线。这意味着 pre-training soft promptsusing hybrid prompts 是互补的。在其他数据集如 RACE-mLCQMCC3 上也观察到类似的现象,在 PPT 中加入 hard prompts 会继续改善结果。

    • 第三,PPT 在所有中文数据集和大多数英文数据集上的表现都优于 FT 。这表明,在 masked language modeling 和下游任务之间仍然存在差距。prompt pre-training 在一定程度上弥补了这个差距。基于这一观察,我们方法的一个直观扩展是用 PVPipre 进一步预训练整个模型,并根据相应的下游任务微调模型。然而,由于我们在本文中专注于 PT ,我们将此作为未来工作。

      PPT 没有根据下游任务来微调模型,而只有预训练任务 PVPipre

    • 第四,PPT 在大多数数据集上的方差较低。few-shot learning 因其不稳定性而臭名昭著,这在 Vanilla PT 中变得非常明显。对于一些数据集,如 SST-2 ,方差达到 15.5 ,这意味着在一些随机种子下,模型的表现并不比随机猜测更好。结合 hard prompt 或进一步的语言建模预训练可以在一定程度上缓解这个问题。但是在一些数据集上,如 CCPMHybrid PT 增加了方差,LM Adaption 不能保证平均性能。在预训练的帮助下,所有数据集的方差都保持在一个较低的水平。

  3. Unified PPT:将所有格式统一为 multiple-choice classification 格式是 PPT 的另一个变体。在 Table 4 中,我们可以看到,Unified PPT 达到了与 PPTHybrid PPT 相当的性能,仍然优于其他 PT 基线。然而,到目前为止,我们所考虑的数据集的标签规模不超过 5 个。对于有更大标签规模的任务,Unified PPT 是一个不错的选择。在 Table 5 中,我们在超过 5-class 的数据集上测试Unified PPT 。对于 PTFT ,我们使用 verbalizer 将标签映射到直观选择的单词上。PT (MC) 意味着我们以 multiple-choice classification 的形式解决任务,而不需要 prompt pre-traini 。我们不使用 PPT 进行 single-sentence classification,因为很难找到其他合适的数据集来训练 pseudo label annotator 。然而,我们可以看到,Unified PPT 仍然取得了最好的性能,甚至以很大的幅度超过了 FT

  4. Sample Efficiency:我们讨论当训练样本数量增加时,FT, PT, PPT 的性能如何变化。在 Figure 4 中,我们显示了这些方法在RACE-mCB 数据集上的趋势:

    • 对于 32128 个样本,PPT 一直优于 PT

    • 当样本数量增长到 256 时,三种方法的性能逐渐收敛。

    我们还比较了给定完整训练数据的不同的 tuning 方法。从 Table 6 中,我们可以看到:PPTUnified PPT 在大多数数据集上的表现仍然优于 Vanilla PT

    此外,我们观察到,尽管 PT 在单个 optimization step 中比 FT 快,但它的收敛速度要慢得多,这导致了更长的训练时间。我们认为,PPT 可以成为解决这一问题的有效方案。如 Figure 5 所示,有了 pre-trained initializationPPTRACE-mCB 数据集上都加快了 Vanilla PT 的收敛速度。

    虽然 PPT 可以加速 Vanilla PT,但是预训练阶段很耗时间和资源。

    我们在附录 E 中对训练消耗做了更详细的分析。由于 PPT 的收敛速度仍然比 FT 慢一些,如何进一步加快 PT 的收敛速度是值得在未来的工作中研究的。

三十三、SPOT[2021]

论文:《SPoT: Better Frozen Model Adaptation through Soft Prompt Transfer》

  1. 过去几年,pre-trained 语言模型的规模不断扩大,多项研究表明增加模型规模是实现最佳性能的关键因素(BERTT5GPT-3 )。尽管这一趋势不断推动自然语言处理各项 benchmarks 的发展,但模型规模的巨大也对其实际应用提出了挑战。对于超过 100B 参数的模型来说,为每个下游任务进行微调和部署单独的模型实例的成本将是难以承受的。为了克服微调的不可行性, GPT-3 提出了 Prompt Design ,将每个下游任务都视为一项语言建模任务,并且在推理时通过提供 manual text prompts 并以 manual text prompts 为条件来指导 frozen pre-trained 模型执行不同的任务。他们展示了使用单个 frozen GPT-3 模型的出色的 few-shot 性能,然而其性能高度依赖于 prompt 的选择(《Calibrate before use: Improving few-shot performance of language models》),且仍然远落后于 SOTA 的微调结果。

    较新的研究探索了学习 soft prompts 的方法,这可以看作是注入到语言模型中的额外的可学习参数。《The power of scale for parameter-efficient prompt tuning》 提出了 Prompt Tuning ,这是一种简单的方法,通过在 adaptation 过程中为每个下游任务学习一个小的 task-specific prompttunable tokens 的一个序列,被添加到每个样本之前),以调节 frozen 的语言模型以执行该任务。引人注目的是,随着模型容量的增加, Prompt Tuning 在性能上逐渐与 Model Tuninng 相媲美,而后者在每个下游任务上对整个模型进行微调。然而,在较小的模型规模(小于 11B 参数)下, Prompt TuningModel Tuninng 之间仍存在较大差距。

    在本文中,我们提出了SPOT: Soft Prompt Transfer ,这是一种新颖的迁移学习方法,适用于 Prompt TuningSPOT 首先在一个或多个源任务上训练一个 prompt ,然后使用得到的 prompt 来初始化目标(下游)任务的 prompt 。我们的实验证明,SPOT 在各种任务和模型规模上都显著改进了 Prompt Tuning 。例如,在 SUPERGLUE 基准测试中,使用 T5 BASE220M 参数)和 T5 XXL11B 参数)模型,我们分别获得了 +10.1+2.4 的平均准确率的提升。更重要的是,SPOT 在所有模型规模上与 Model Tuninng 相媲美甚至表现更好(见 Figure 1 )。

    在这些结果的推动下,我们通过 soft task prompts 的视角探究了任务之间的可迁移性。我们的目标是回答两个问题:

    • (a) :对于给定的目标任务,什么时候从源任务初始化prompt 能够提升目标任务的性能?

    • (b):我们能否利用 task prompts 高效地预测哪些源任务能够在新的目标任务上有效迁移?

    为了回答问题 (a) ,我们对 T5 模型进行了系统性的研究,使用了 26 个自然语言处理任务,共计 160 种源任务和目标任务的组合。我们的结果表明,许多任务可以通过 prompt transfer 相互受益。为了回答问题 (b) ,我们将 learned task prompts 解释为 task embeddings ,构建了一个针对任务的语义空间,并形式化了任务之间的相似性。我们设计了一种高效的检索算法来衡量 task embedding 的相似性,使从业者能够识别可能有 positive transfer 效果的源任务。

    基于预训练好的 soft prompt 来进行初始化,这个思想已经在《PPT: Pre-trained Prompt Tuning for Few-shot Learning》 中被采纳。区别在于:PPT 是在大量的未标记语料库上针对 soft prompt 进行自监督的预训练,而 SPOT 是在大量的监督任务上进行多任务学习。

    总之,我们的主要贡献有:

    • 我们提出了 SPOT ,一种新颖的 prompt-based 的迁移学习方法,并展示了在不同规模下 Prompt TuningModel Tuninng 性能匹配的能力;在 SUPERGLUE 上,SPOT 在所有模型规模上与 Model Tuninng 相媲美甚至更好。

    • 我们对任务的可迁移性进行了大规模的、系统的研究,展示了任务通过 prompt transfer 相互受益的条件。

    • 我们提出了一种高效的检索方法,将 task prompts 解释为 task embeddings ,构建了一个关于任务的语义空间,并通过测量task embedding 的相似性来识别哪些任务可以相互受益。

    • 为了促进 prompt-based learning 的未来研究,我们将发布我们的 task prompts 库和 pretrained 模型,并为 NLP 从业者提供实际的适用建议,网址为 https://github.com/google-research/prompt-tuning/tree/main/prompt_tuning/spot

  2. 相关工作:

    • parameter-efficient 的迁移学习:大型 pre-trained 语言模型已经在许多自然语言处理任务中展现出卓越的性能。为了提高这些模型的实用性,早期的工作使用压缩技术获得轻量级模型。其他工作涉及仅更新模型的一小部分(《Bitfit: Simple parameter-efficient fine-tuning for transformer-based masked language models》)或 task-specific 模块,如适配器或低秩结构,同时保持模型的其余部分固定。

      最近,GPT-3 通过 Prompt Design 展示了令人印象深刻的 few-shot 性能,他们的模型在推断时通过 manual text prompt 来执行不同的任务。此后,一些工作专注于开发 prompt-based learning 方法,其中包括精心设计的 promptPET-2)、prompt mining and paraphrasingLPAQA)、gradient-based search 用于改善 promptsAutoPrompt)和自动的 prompt generationLM-BFF)。然而,使用 hard prompts 被发现不够最优,并且对 prompt 的选择敏感(《Calibrate before use: Improving few-shot performance of language models》《Gpt understands, too》)。因此,最近的研究开始转向学习 soft prompts ,它们可以看作是注入到模型中的可学习参数。对于 prompt-based learning 研究的最新综述,我们建议读者参考 《Pretrain, prompt, and predict: A systematic survey of prompting methods in natural language processing》 的论文。

      在与之并行的工作中,《PPT: Pre-trained prompt tuning for few-shot learning》 也探索了 prompt transfer 的有效性。他们的方法使用手动设计的预训练任务,该预训练任务针对特定类型的下游任务进行了裁剪,因此在适用于新的下游任务方面可能扩展性较差。相比之下,我们使用现有的任务作为源任务,并展示了即使在源任务与目标任务之间存在不匹配(例如任务类型或输入/输出格式)时,prompt transfer 仍然可以带来好处。

    • 任务的可迁移性:我们还建立在现有的任务可迁移性研究基础上。之前的工作表明,从数据丰富的源任务(《Sentence encoders on stilts: Supplementary training on intermediate labeled-data tasks》)、需要复杂推理和推断的任务(《Intermediate-task transfer learning with pretrained language models: When and why does it work?》)、或与目标任务相似的任务(《Exploring and predicting transferability across NLP tasks》) 可以有效地进行迁移。也有工作在预测任务的可迁移性。 《Exploring and predicting transferability across NLP tasks》使用从输入文本、或模型的 diagonal Fisher information matrix 导出的 task embeddings ,而 《What to pre-train on? Efficient intermediate task selection》 则探索了 adapter-based 的替代方法。

      在这里,我们使用相同的模型(没有 task-specific 组件)和统一的 text-to-text 格式,可以更好地对任务空间进行建模。此外,相比较而言,prompt-based task embeddings 的获取成本更低。

33.1 用 SPOT 改善 Prompt Tuning

  1. 为了改善 Prompt Tuning 在目标任务上的性能,SPOT 引入了 source prompt tuning ,这是在语言模型预训练和 target prompt tuning 之间的中间训练阶段(Figure 2 (left) ),用于在一个或多个源任务上学习一个 prompt (同时保持 base 模型冻结),然后将其用于初始化 target taskprompt

    我们的方法保留了 Prompt Tuning 的所有计算优势:对于每个目标任务,它只需要存储一个小的 task-specific prompt ,从而使得单个 frozen pretrained model 可以在所有任务之间重复使用。在本节中,我们提供了一个通用的 SPOT 方法,其中单个可迁移的 prompt 被用于所有目标任务。在后面的正文中,我们探索了一种 targeted 方法,为不同的目标任务检索不同的 source prompts

    右图中,Source Task EmbeddingsSource Prompts 有啥区别?二者不是一个概念吗?论文没有说明。

33.1.1 实验配置

  1. 我们的 frozen 模型是建立在所有规模的pretrained T5 checkpoints 上的:SMALL、BASE、LARGE、XL、XXL ,分别具有 60M、220M、770M、3B、11B 参数。在我们使用 SPOT 进行实验时,我们利用了 T5LM adapted 版本,《The power of scale for parameter-efficient prompt tuning》 发现该版本对于 Prompt Tuning 来说更容易优化。

  2. Baselines

    • Prompt Tuning《The power of scale for parameter-efficient prompt tuning》 的原始 prompt tuning 方法,直接在每个目标任务上独立训练一个 prompt

    • Model TuningMulti-Task Model Tuning :我们将 prompt tuning 方法与 Model Tuning 进行比较, Model Tuning 是标准的微调方法(BERTT5 ),其中所有模型参数在每个目标任务上单独进行微调。

      为了进行公平比较,我们还包括 Multi-Task Model Tuning 作为一个更有竞争力的基线模型,它在对 SPOT 所使用的相同源任务的 mixture 上进行微调后,再对各个目标任务进行微调。

  3. 评估数据集:GLUESUPERGLUE 。我们进行固定步数的训练,并在与每个数据集相关联的验证集上报告结果。

  4. 用于 source prompt tuning 的数据:与语言模型预训练一样,训练数据的选择对于成功的 prompt transfer 至关重要。为了研究源训练数据对下游性能的影响,我们比较了多种不同的源任务。

    • 单个无监督学习任务:我们首先考虑使用Colossal Clean Crawled Corpus: C4 数据集的一部分来训练 prompt ,使用 T5 中讨论的 prefix LM objective 。尽管这个任务已经被用于预训练我们的 frozen T5 模型,但它仍然对学习通用的 prompt 有帮助。

    • 单个有监督学习任务:另一种选择是使用有监督任务来训练 prompt 。我们使用 MNLISQUAD 作为单个源任务。MNLI 在许多sentence-level 分类任务中显示出帮助作用(《Sentence encoders on stilts: Supplementary training on intermediate labeled-data tasks》),而 SQUAD 被发现对于问答任务具有良好的泛化能力(《MultiQA: An empirical investigation of generalization and transfer in reading comprehension》)。

    • 多任务混合:到目前为止,我们一直使用单个源任务。另一种方法是多任务训练。在 T5 的统一的 text-to-text 框架中,这简单地对应于将不同的数据集混合在一起。我们探索了来自不同 NLP benchmarks 或任务族的数据集混合,包括 GLUESUPERGLUE 、自然语言推理(NLI )、paraphrasing/semantic similarity 、情感分析、MRQA 上的问答、RAINBOW 上的常识推理、机器翻译、摘要生成、以及GEM 上的自然语言生成。我们从上述每个 NLP benchmarks 或任务族中创建源任务的mixture ,以及一个包含所有数据集(C4 + 55 个标记数据集)的 mixture ,使用 T5 中的 examples-proportional 混合策略,人工设定一个 dataset size 限制为 K=219个样本。

      读者猜测:这里不同的任务采用相同的 soft prompt ,对应于 Figure 2(Left)

  5. 训练细节:我们严格按照 《The power of scale for parameter-efficient prompt tuning》的训练过程进行操作。具体来说,在 source prompt tuningtarget prompt tuning 期间引入的唯一新参数是一个 shared prompt ρRL×e,它被添加到每个(embedded 的)输入序列的开头,其中 Lprompt 长度,eembedding size 。在所有情况下,我们设置 L=100 tokens ,并以固定的 steps 数量 S 来调优 prompt 。虽然 《The power of scale for parameter-efficient prompt tuning》 中将 S 设置为 30K ,但我们发现在大型数据集上进行额外的调优是有帮助的。因此,遵从 T5 ,我们将 S 设置为 218=262144,除了 Table 1 中的消融实验( "--longer tuning" 的行)使用 S=30000

    source prompt tuning 期间,prompt token embeddingssampled vocabulary 中进行初始化(即 5000 most common tokens)。在 target prompt tuning 期间,我们每 500 步保存一次 checkpoint ,并在具有最高 validation 性能的 checkpoint 上报告结果。附录 C 包含了 Prompt Tuningmodel tuning 方法的训练细节。

33.1.2 SPOT 的效果

  1. SPOT 的效果:我们在 Table 1Figure 1 中对比了 SPOT 和其他方法的结果。以下,我们详细总结和分析了我们的每一个发现。

  2. SPOT显著提高了 Prompt Tuning 的性能和稳定性:我们在 T5 BASE 上对 GLUESUPERGLUEbenchmarks 的结果(Table 1 )表明,prompt transferPrompt Tuning 提供了一种有效的改进性能的手段。例如,最佳的 SPOT 变体在 GLUESUPERGLUE上 的表现明显优于平凡的 Prompt Tuning 方法,分别获得 +4.4+10.1 点的平均准确率提升。

    我们的消融研究表明,longer tuning 也是实现最佳性能的重要因素,并且与 prompt transfer 相辅相成。此外,当省略 longer tuning 时,我们观察到 SPOT 可以提高 runs 的稳定性。

    SPOT 中,我们可以比较不同 source mixtures 的有效性(参见 Table 1 )。

    • GLUE 上进行的 source prompt tuningGLUESUPERGLUE 上表现最好,分别获得 82.873.2 的平均分。

    • 有趣的是,对 C4 进行的无监督的 source prompt tuning (与我们的 frozen 模型的预训练使用的相同任务)仍然能够取得显著的改进,甚至在 SUPERGLUE 任务上超过使用 SUPERGLUE 数据集进行 source prompt tuning 的效果。

    • 使用 MNLISQUAD 作为 single source dataset 在各个目标任务上也特别有帮助。

    • 其他 source mixtures 可以带来显著的收益,其中一些任务类别(例如 NLIparaphrasing/semantic similarity )比其他任务类别获益更多。

    • 将所有数据集混合在一起并不能获得最佳结果,可能是由于任务干扰/负迁移问题,即在一个或多个 source tasks 上取得良好的性能可能会对目标任务的性能产生负面影响。

  3. SPOT 有助于在所有模型规模上缩小与Model Tuning 之间的差距:Figure 1 显示了我们在不同模型规模下在 SUPERGLUE 上的结果(完整结果见附录 A )。正如 《The power of scale for parameter-efficient prompt tuning》 所示,Prompt Tuning 随着模型规模越大越有竞争力,并且在 XXL 规模上,它几乎与 Model Tuning 的性能相媲美。然而,在较小的模型规模下,两种方法之间仍然存在较大差距。我们展示了 SPOT 如何缩小这些差距,并在多个模型规模上大幅超过 Model Tuning 的性能,同时保留了 Prompt Tuning 所带来的所有计算优势。最后,在 XXL 规模上,SPOT 取得了最好的平均分数 91.2 ,比强大的 Multi-Task Prompt Tuning baseline1.1 个点,尽管SPOTmulti-task source tuningtarget tuning 中使用的 task-specific parameters 要少 27000 倍。

    作为对 SPOT 有效性的最终测试,我们将 XXL 模型的预测结果提交到 SUPERGLUE 排行榜,获得了 89.2 的分数。这远远超过了所有先前的使用 parameter-efficient adaptation (例如 GPT-371.8 )的提交,并且几乎与 fully fine-tuned T5 XXL89.3 )相匹配,尽管SPOT 参数要少 27000 倍。据我们所知,SPOT 是第一个在与调优十亿级参数的方法相媲美的 parameter-efficient adaptation 方法。详细信息请参见附录 D

33.2 预测 task transferability

  1. 到目前为止,我们已经看到 soft prompt transfer 可以显著提升 prompt tuning 的性能,但选择正确的源任务进行迁移至关重要。例如,通过广泛的搜索,我们发现 GLUEMNLI 提供了出色的源任务从而用于迁移至个别的 GLUESUPERGLUE 任务。但在资源受限的情况下,用户无法详尽搜索一组源任务时该怎么办?我们能否预测哪些任务最适合迁移到新的目标任务,而无需逐个测试这些源任务?

    为了调查这个问题,我们进行了一项大规模的实证研究,涉及 26NLP 任务。我们首先衡量所有任务组合之间的可迁移性。接下来,我们展示了通过将 task prompts 解释为 task embeddings ,我们可以构建一个关于任务的语义空间,其中相似的任务聚类在一起。基于这个观察,我们提出了一种检索算法,对于给定的新的目标任务,利用 task embeddings 的相似性来选择源任务(Figure 2(right) )。我们提出的方法可以消除 69% 的源任务搜索空间,同时保持 90%best-case quality gain

33.2.1 衡量可迁移性

  1. 我们研究了一组多样化的 16 个源数据集和 10 个目标数据集(见 Table 2 )。我们考虑了所有 160 个可能的 source-target pairs ,并从每个源任务迁移到每个目标任务。所有源任务都是数据丰富的,或者已经在之前的研究中显示出正面的迁移效果。为了模拟真实情境,我们将低资源任务(训练样本少于 10K )作为目标任务。

    为了限制计算成本,在我们的任务可迁移性实验中,我们使用了 T5 BASE 模型。我们对每个源任务进行了 262,144prompt tuning steps 。选择具有最高 source task validation 性能的 prompt checkpoint 来初始化 different target tasksprompts 。由于目标数据集较小,我们只对每个目标任务进行了 100,000prompt tuning steps 。我们使用不同的随机数种子重复每个实验三次。其他训练细节与 “实验配置 -- 训练细节” 相匹配。

  2. 通过 prompt transfer ,任务之间可以互相受益:Figure 3 显示了我们的结果的热力图(完整结果见附录 E )。

    • 在许多情况下, prompt transfer 对目标任务产生了显著的增益:MNLI --> CB 的迁移导致 relative error reduction 最大,为 58.9% ,从平均分数 92.7 提高到 97.0 ;其次是 MNLI --> COPA29.1% )和 RECORD --> WSC20.0% )。

      注意:它衡量的是错误率的下降,而不是正确率的上升。

    • 对于每个目标任务使用最佳 source prompt (从 48 个中挑选)显著提高了 10 个目标任务的平均得分,从 74.7 提高到80.7 。总体而言,

    • 从涉及句子之间语义关系的高级推理的大型源任务(例如 MNLI )进行有效迁移,或者当源任务和目标任务相似时(例如 CXC --> STS-B ),可以实现正面的迁移效果。有趣的是,相对不相似的任务之间也可以发生正面的迁移(例如 RECORD --> WSC, SQUAD --> MRPC, CXC --> WIC )。

33.2.2 通过 prompts 定义 task similarity

  1. 由于在特定任务的 prompt tuning 过程中仅更新 prompt 参数,所以 learned prompts 很可能包含了 task-specific 的知识。这表明它们可以用来推理任务的性质和任务之间的关系。为了验证这个想法,我们将 task prompts 解释为 task embeddigns ,并构建任务的语义空间。更具体地说,我们将 task embeddigns 定义为在该任务上训练了 10,000 steps 之后的 prompt checkpoint 。请注意,使用 early checkpoints 可以快速计算新目标任务的 task embeddings

    我们使用以下度量方法,通过测量两个任务 t1t2 对应的 task embeddings e1e2 之间的相似度,来估计这两个任务之间的相似度,:

    • average tokens 的余弦相似度:我们计算 prompt tokensaverage pooled representations 之间的余弦相似度:

      (18)sim(t1,t2)=cos(1Liei1,1Ljej2)

      其中 ei1ej2 分别表示 e1 的第 itokene2 的第 jprompt tokencos(,) 表示余弦相似度。

    • per-token 的平均余弦相似度:我们计算每个 prompt token pair (ei1,ej2) 之间的平均余弦相似度:

      (19)sim(t1,t2)=1L2ijcos(ei1,ej2)

      注意,根据前文描述,所有的 prompt 的长度都是 L

  2. task embeddings 捕捉到任务之间的关系:Figure 4 显示了使用average tokens 的余弦相似度来计算的 task embeddings 之间的 hierarchically-clustered 热力图。我们观察到我们学到的task embeddings 捕捉到了许多直观的任务关系。

    • 具体而言:相似的任务聚集在一起形成簇,包括问答任务(簇 SQUAD, RECORD,DROP ,簇 MULTIRC, BOOLQ )、情感分析( YELP-2, SST-2, CR )、自然语言推理(簇MNLI, CB ,簇 DOCNLI, RTE )、语义相似性( STS-B, CXC )、paraphrasingMRPC, QQP )和常识推理(WINOGRANDE, HELLASWAG, COSMOSQA )。

    • 值得注意的是,由 SQUAD 数据集构建的 NLI 任务 QNLISQUAD 不是密切相关的,这表明我们的 task embeddings 对于 task type 的敏感性高于 domain similarity

    • 有趣的是,它们还捕捉到了非直观的案例: RECORDWSC 的可迁移性较高。

    • 此外,来自同一任务的 different promptstask embeddings 之间具有较高的相似性分数(请参见附录 F )。

33.2.3 通过 similarity 来预测 transferability

  1. 我们利用 task embeddings 来预测和利用任务的可迁移性。具体而言,我们探索了预测对于给定的目标任务最有利的源任务的方法,并利用它们的 prompts 来提高目标任务的性能。为了扩大我们的 source prompts 集合,我们使用每个源任务上三次不同的 prompt tuning 运行的 prompts, ,共得到 48source prompts 。给定目标任务 t 及其 task embedding et ,我们按照相似度sim(es,et) 的降序对所有相关的 source prompts ρs 进行排序,其中 ρs 关联 embeddings es 。我们将排序后的 source prompts 列表记为 ρsr,其中 r 表示排名(r=1,2,,48)。我们尝试了三种方法来利用 ranked source prompts

    这需要首先对每个任务(包括目标任务)进行预训练,然后才能得到 es,et 。然后再重新初始化 target prompt,并重新训练目标任务。因此,目标任务需要被训练两次。

    • Best of Top-k :我们选择 top-k source prompts ,并将每个 source prompt 单独用于初始化 target prompt 。这个过程需要在目标任务 t 上进行 kprompt tuning 。我们使用这 kprompt tuning 中最好的结果来评估该方法的有效性。

    • Top-k 加权平均:我们用 top-k source prompts 的加权平均值 r=1kαrρsr 来初始化 target prompts ,以便我们只需在目标任务 t 上进行一次 prompt tuning。权重 αr 计算如下:

      (20)αr=sim(esr,et)l=1ksim(esl,et)

      其中 esr 表示 ρsr 的相应 task embedding

    • Top-k 多任务混合:我们首先确定 top-k prompts 所对应的源任务,并将这些源任务的数据集和目标任务的数据集混合在一起,使用 T5examples-proportional 混合策略。然后,我们在这个多任务 mixture 上进行 prompt tuning ,并使用 final prompt checkpoint 来初始化 prompt 从而用于 target prompt tuning

    我们报告每种方法在所有目标任务上实现的平均分数。为了比较,我们测量相对于 baseline (在每个目标任务上从头开始进行 prompt tuning ,即没有任何 prompt transfer )的绝对改进和相对改进。此外,我们还包括了 ORACLE 结果,即通过暴力搜索确定每个目标任务的 48 source prompts 中最佳 prompts 所实现的结果。

  2. 任务相似性与任务可迁移性之间的相关性:Figure 5 显示了在目标任务上 relative error reduction 随着 source and target task embeddings之间的相似性变化的情况。

    • 总体而言,我们观察到在四个目标任务(一共 10 个目标任务)上 task embedding 相似性和任务可迁移性之间存在显著的正相关性,其中包括: STS-B (p < 0.001), CB (p < 0.001), WSC (p < 0.01), RTE (p < 0.05) ;而在其他任务上相关性较弱。

    • 在某些情况下(例如在 BOOLQ 上),尽管余弦相似度较低(0.4 ),我们观察到较大的 relative error reduction19.0%,通过 MNLI 的一个 source prompt 来实现的)。这表明除了任务相似性之外(数据大小、任务难度、领域相似性等),还可能有其他因素影响可迁移性的确定。

  3. 通过 task embeddings 来检索 targeted source tasks 是有帮助的:Table 3 比较了不同方法用于确定哪些 source prompts 对于给定的目标任务可能是有益的。

    • 总体而言,我们的结果显示Best of Top-k 的有效性:

      • 仅仅选择与目标任务具有最高 task embedding 相似性的 source prompt ,使用每个 per-token 的余弦相似性,可以显著改善 baseline 结果(从 74.7 的平均分数提高到 76.7 ,平均 relative error reduction12.1% )。

      • 对于每个目标任务,尝试所有的 top-3 source prompts (一共 48 个)会得到 77.5 的平均分数。

      通过增加 k 的值,我们可以保留 oracle selection 的大部分好处( k=9 时保留 80% 增益,k=15 时保留 90% 增益),同时消除了超过 23 的候选 source prompts

    • Top-k 加权平均与 Best of Top-kk=1 )具有类似的平均性能,但具有较低的方差。因此,在禁止在目标任务上尝试多次 prompt tuning 的情况下,这可能是 Best of Top-k 的一个有吸引力的替代方案。

    • 最后,Top-k 多任务混合也提供了一种方式,获得了平均分为 77.8 的较好的性能,甚至超过了 Best of Top-kk3 )的表现。

33.3 讨论

  1. 由于其他 parameter-efficient adaptation 方法在特定情况下可能优于 Prompt Tuning ,测试类似于 SPOT 的方法是否可以成功地扩展到这些方法将是非常有趣的。与此同时,我们相信 Prompt Tuning 有其自身的优点。随着 pre-trained 语言模型变得越来越大, Prompt Tuning 相对于其他方法的一些优势在于:

    • 在当前的可学习参数的方法中, Prompt Tuning 是参数效率最高的,在大多数模型规模下,只需要低于 0.01%task-specific parameters

    • Prompt Tuning 比其他方法更简单,因为它不修改内部模型结构(参见 Prefix Tuning 方法,该方法在 Transformerencoderdecoder 的每一层都添加了 prefix );因此, Prompt Tuning 允许 mixed-task inference ,并促进任务间的迁移学习。

    • 随着模型容量的增加, Prompt TuningModel Tuning 相媲美。据我们所知,其他方法尚未显示出这一点。

    • Soft prompts 可能被解释为自然语言指令。

    此外,由于我们 prompt-based task embedding 方法并没有捕捉到影响任务可迁移性的所有因素,因此我们将对其他 task embedding 方法的进一步探索留待未来工作中进行。

三十四、OptiPrompt[2021]

论文:《Factual Probing Is [MASK]: Learning vs. Learning to Recall》

  1. pretrained 语言模型(如 BERT )被优化用于预测 internet 语料库中的单词分布。自然而然地,这个分布编码了关于世界事实的信息。最近,研究人员对于衡量语言模型从预训练中获取多少事实信息产生了兴趣。《Language models as knowledge bases?》LAMA 基准测试中正式定义了这个 project ,该 benchmark(subject, relation, object) 三元组以及人工编写的表达每种关系的模板组成。他们展示了 BERT 能够根据完形填空风格的 prompt (例如,Dante was born in [MASK] )预测 objects ,并将结果作为 BERT 所编码的事实信息量的下界。随后的工作尝试通过找到更好的 prompts 来缩紧这个下界。

    • LPAQA使用文本挖掘和 paraphrasing 来找到一组候选 prompts ,并选择在训练集上准确率最高的 prompts

    • AutoPrompt 训练一个模型来自动生成 prompts ,通过搜索使得 gold object label 的期望似然最大化的 tokens 序列。

    这两种方法都从 Wikidata 中收集了额外的三元组来用于调优 prompts

    在本文中,我们在寻找更好的 promots 方面迈出了下一步:不再限制搜索空间为离散的 input tokens ,而是直接在 input embedding space 中进行优化,找到最能引导事实的 real-valued input vectors 。我们还发现,使用manual prompts 进行初始化可以为搜索过程提供更好的起点。我们的方法 OptiPrompt 简单而计算高效,在 LAMA 基准测试上将准确率从 42.2% 提高到48.6% ,相比于以前的 discrete 方法有显著提升。在更困难的 LAMA-UHN 分组中,OptiPrompt 将准确率从 31.3% 提高到38.4%

    同时,我们观察到在训练数据上优化的 prompts 可能会利用 facts 的底层分布中的一些规律。我们如何确保我们的 prompts 仅仅从语言模型中恢复信息?类似的问题最近在语言探究中得到了探索,其目标是探索在 contextualized word representations 中编码的语言属性。例如,通过观察从语言模型返回的 representation ,看看分类器是否可以预测 "chef""made"nominal subjectFigure 1 )。最近的工作尝试将 representation 中所编码的信息与 probe 所学到的信息进行解耦。然而,这个问题在 factual probing 中尚未被探索,部分原因是因为假设仅仅通过观察其他实体的一组不重叠的事实,无法预测一个 knowledge fact 。例如,了解到但丁出生在佛罗伦萨,对于 John Donne 的出生地没有任何意义。

    我们分析了我们的训练数据,并发现这个假设是不合理的。尽管训练数据是独立于 LAMA 基准测试收集的,但在 Wikidata 关系的底层分布中存在足够的规律性,以至于一个简单的在训练数据上拟合的分类器,可以达到令人惊讶的良好性能。此外,我们的实验揭示了所有基于数据驱动的 prompt-search 方法(包括先前的方法和我们提出的 OptiPrompt ),都能够利用这些信息来提高预测准确性。在给定一些训练数据的情况下,一个良好的搜索算法可以利用简单的 class 统计和更高阶的词汇规律从而找到这样的 propmts:该 prompts 从神经网络中恢复出一定数量的 "facts"

    这一发现使得解释知识探测任务上的相对准确率分数变得具有挑战性。我们展示了我们的对照实验如何让我们更详细地了解不同 probes 的行为。例如,通过将测试集分成 "easy""hard" 两个子集,其中 easy 样本可以被 random controls 来预测,而 hard 样本则不行,我们可以得出一些关于哪些 facts 不太可能从训练数据中学到的结论。 OptiPrompt 在这两个子集中均优于先前的方法,表明它在从训练数据中学习、以及从语言模型中引导事实方面都更加优秀。我们最后提出了一些关于未来工作的建议,这些工作可能对训练数据的混淆效应(confounding effect )更不敏感。

    这就是 P-Tuning 的核心思想。

    整篇论文讲的是:判断 pretrained LMfactual probing 是来自于语言模型编码好的知识、还是来自于模型的学习能力?作者进行了一些实验,也没有得出什么有价值的结论。整体而言,没有多少实际价值,可以忽略不看。

  2. 相关工作:

    • 我们的工作延续了 《Language models as knowledge bases?》 所开展的 factual probing 实验系列,他们引入了 LAMA 基准用于完形填空式 factual probing。随后的 LAMA 相关工作介绍了用于优化 prompts 的数据驱动方法(LPAQAAutoPrompt)。《BERT is not a knowledge base (yet): Factual knowledge vs. name-based reasoning in unsupervised qa》 指出LAMA 中的许多事实可以通过词汇线索进行预测,并引入了一个新的 benchmarkLAMA-UHN ),该 benchmark 对这些启发式方法不太敏感。我们的工作继承了这些项目,并引入了更有效的优化 prompts 技术:更有效的方法来优化 prompts 、更全面的方法来解释 train/test overlap 的作用。

      与我们同时进行的工作中,其他作者探索了 continuous prompt optimization

      • 《BERTese: Learning to speak to BERT》 使用编码器将手动编写的prompt 映射为 continuous vectors 序列,然后用 embedding 空间中附近的离散 tokens 替换它们。

      • 《Prefix-tuning: Optimizing continuous prompts for generation》 提出了 Prefix-Tuning ,用于对自回归语言模型中最左侧的 hidden representations 进行微调。

      • 《GPT understands, too》 使用 LSTM 生成 prompt vectors 序列。

      prompting 也被广泛应用于通过语言模型实现"few-shot learning"

    • linguistic probing 是一个广泛研究的领域,我们在此不尝试总结全部内容(有关概述,请参阅《A primer in bertology: What we know about how bert works》)。我们的工作与最近有关如何衡量 probe 是从 representation 中提取信息、还是学习从 probe training datapredict annotation 的方法相关。这些方法包括 random baselines《Designing and interpreting probes with control tasks》)和信息论度量(《Information theoretic probing with minimum description length》)。我们采用了 《Information-theoretic probing for linguistic structure》control functions 的概念。

      我们的研究还与诊断 neural NLP models 中的 "shortcut learning"《Shortcut learning in deep neural networks》)的更大范畴的工作相关。《Right for the wrong reasons: Diagnosing syntactic heuristics in natural language inference》 发现 BERT 等模型往往是 "right for the wrong reason",利用浅层启发式方法而非潜在的语言结构,类似的效果在许多其他任务中也被发现(《What makes reading comprehension questions easier?》《Universal adversarial triggers for attacking and analyzing NLP》)。

34.1 方法

34.1.1 背景

  1. LLAMAfactual probing setting 是由 LAMA benchmark 引入的,旨在衡量 pretrained 语言模型中编码的事实信息量。在LAMA 中,事实被定义为三元组 <s,r,o>,其中 ssubject (例如Dante )、r 是来自固定的关系集合 R 中的关系(例如 place of birth )、oobject (例如 Florence )。LAMA 的事实来源于多个 sources ,包括 Wikidata、ConceptNet、SQuAD 。我们遵从最近的 factual probing 工作,这些工作专注于 T-REx split ,其中包含了 41Wikidata 关系类型,每种类型最多 1000<s,r,o> 三元组。关系类型分为三类:像 capital of 这样的 1-1 关系、像place of birth 这样的 N-1关系、像 shares border with 这样的 N-M 关系。

    LAMA 评估中,每种关系与一个人工编写的 prompt 相关联,该 prompt 包含一个 [MASK] token ,例如 "[X] was born in [MASK]."。为了适应 BERT 等掩码语言模型( masked language models: MLM ),LAMA 仅限于 object label 是预定义的词表 V 中的单个 token 。给定 subject srelation prompt tr 、以及掩码语言模型,我们可以确定语言模型分配概率 P([MASK]=o^tr(s)) 最高的单词 o^V 为模型预测,其中 tr(s) 表示将 subject 占位符 [X] 替换为 sprompt template 。如果 o^gold object o 相同,我们可以得出结论语言模型编码了该事实的信息。

    LAMA 是一个评估基准,因此没有训练数据。它的构建使得 pretraiend 语言模型可以在 “开箱即用” 的情况下进行评估,无需额外的微调。《Language models as knowledge bases?》 指出,他们的基准只提供了 pretrained 语言模型中存储的事实信息量的一个下界估计,因为他们手动编写的 prompts 可能不是引发事实的最佳选择。因此,随后的工作重点是通过使用额外的训练数据找到更优的 prompts 来收紧这个下界。

  2. LPAQA《How can we know what language models know?》 使用一系列 text-miningparaphrasing 技术为每个 relation 生成候选 prompts 集合。他们从 Wikidata 收集了一个训练数据集,确保与 LAMA 基准中的 subject-object pairs 没有重叠,并通过在该训练数据上测量准确率来选择 prompts 。他们考虑了一些 selecting prompts 的规则,包括基于top-K 的基线方法、 "optimized ensemble" 方法(在训练数据上调优了每种关系的多个 prompts 的权重)。他们的 prompt dataset (即,LPAQA )可以在线上获得。

  3. AutoPrompt《AutoPrompt: Automatic prompt construction for masked language models》 进一步推进了 prompt optimization 的发展,通过训练一个统计模型 AutoPrompt 从而在 input tokens 空间中搜索能够引发正确预测的 prompts 。他们为每种关系类型收集了 1000<s,r,o> 三元组,这些三元组要么来自原始的 T-REx 数据集、要么来自 Wikidata ,但不包含出现在 LAMA 基准中的三元组。他们为给定关系 r 定义了一个 prompt ,即 subject 后跟一定数量的 "trigger" tokens

    (21)tr=[X][T]1[T]2[T]m[MASK]

    其中:

    • [X]subject 所替代。

    • [T]i 代表一个 trigger token ,该 token 可以是词表中的任何 token

    • m 为超参数,表示 trigger tokens 的数量。

    这些 trigger tokens 被初始化为 [MASK] token ,然后通过迭代式地更新,在每一步使用 gradient-based 搜索算法从而将其中一个 trigger token 替换为最大化在训练集上 gold label 概率的 token

34.1.2 OptiPrompt

  1. 我们的方法受到一种观点的启发,即将搜索限制在 vocabulary tokens 空间内是一种次优且人为的约束。在 AutoPrompt 的情况下,在离散的子空间上优化也是低效的:在每一步中,我们必须枚举一组候选 tokens ,替换 selected trigger token ,并重新运行模型。Table 1 中的示例也说明,即使由英语词表中的 tokens 组成,optimized textual prompts 可能是难以理解的。这削弱了支持自然语言 prompts 的一个论点,即它们易于阅读,因此可能更容易解释。

    在这种观点下,我们提出了 OptiPrompt ,一种用于 continuous prompt optimization 的方法。OptiPrompt 不局限于离散 tokens 的空间,而是直接搜索 optimal prompts ,使用 embeddign 空间中的任何向量来构成 prompts 。我们首先遵从 AutoPrompt 的方法,以如下形式来定义一个 prompt

    (22)tr=[X][V]1[V]2[V]m[MASK]

    其中:[V]iRd 为一个稠密向量,d 为语言模型的 innput embeddingn 维度(对于 BERT-based=768 )。

    OptiPrompt 更类似于 P-Tuning :它们都是仅在输入上插入 continous prompt ;支持在输入的头部、中间、以及尾部插入 continuous prompt

    promtps 视为稠密向量可以更高效地搜索 optimal prompts 。给定一些 [V]i 的初始值,我们保持所有其他模型参数固定,并使用梯度下降来最小化训练集的负对数似然:

    (23)Lr=1|Dr|(s,o)Drlogp([MASK]=otr(s))

    其中:

    • Dr 为关系 r 上的 (subject, object ) pairs 所构成的训练集。

    • tr 代表关系 r 对应的 prompt template,其中占位符 [X]subject tokens s 所替代。

    根据公式,该方法是监督学习,并且采用 zero-shot 的模板形式(而不是 few-shot)。

    在这种基本形式中,我们选择一个固定的 m 值(作为超参数处理),并随机初始化所有的 [V]i tokens 。我们还考虑了一种更复杂的形式,使用 manual prompts (我们使用LAMA 基准测试中提供的 prompts )来决定每种关系的 [V]i tokens 的数量 m 和位置,并针对 manual prompts 中的相应 tokens 使用 pre-trained input embedding 来初始化每个 [V]i 。如 Table 1 所示,我们可以将 manual prompts "[X] is [MASK] citizen" 转换为:

    (24)tr=[X][V]1[MASK][V]2

    并分别使用 iscitizenembedding 来初始化 [V]1[V]2 。我们的动机是在这个具有挑战性的非凸优化问题中,良好的初始化可能非常重要。

    OptiPrompt 支持个性化的 prompt length,这在 Prefix-TuningP-TuningPrompt-Tuning 中都未试验过。

  2. 设置:我们使用 AutoPrompt 原始论文所收集的数据来训练 OptiPrompt ,该数据包含 800 个训练样本,其中有 200 个用于验证集。在我们的主要实验中,我们对 BERT-base-cased 模型进行 probe ,并在附录 C 中比较其他预训练语言模型。我们报告了 top-1 micro-averaged accuracy

    (25)1|R|rR1|Dr|(s,o)Dr1[o^=o]

    其中:R 为所有关系的集合;Dr 为关系 r 包含的 (subject, object) 集合;o^o^=argmaxoP([MASK]=otr(s))

    更多实现细节参考附录的 B.1

  3. LAMA 结果:我们的结果在 Table 2 中呈现。总体而言,OptiPromptLAMA benchmark 的准确率方面优于先前报告的结果

    • AutoPrompt 相比,我们的模型在 LAMA 上的表现提高了 5.4%–6.4% ,在更困难的 LAMA-UHN benchmark 上提高了 6.2%–7.1%

    • 这种改进在所有类别中都是一致的,除了 "1-1" 类别,该类别包含两个关系,即 capitalcapital of (后者是前者的逆关系)。有趣的是,在这个类别中,产生最好结果的 promptsmanual prompt ,而 LPAQA promptsAutoPrompt prompts 的表现逐渐变差。我们推测,很少有 prompts 能以高准确率引导这种关系;而且,即使有这种 prompts,也难以通过随机的、非凸的 optimization 来找到。

    • 我们还发现,使用手动编写的 prompts 来初始化 prompt vectors 可以持续改善性能。这验证了我们的直觉,即 manual initialization 为在非凸优化问题中找到一个好的解提供了很好的先验信息。结果按 relation 分类在附录的 Table 8 中进行了详细说明。

34.2 我们能否相信 Optimized Prompts

  1. 我们的实证探测结果证实了 OptiPrompt 是一种有效的方法,在 LAMA benchmark 上的表现超过了先前最好的方法 6.4% 。然而,我们能否得出结论:BERT 编码了比先前所知的更多的事实?我们的,就像 LPAQAAUTOPROMPT ,是在 in-distribution Wikidata relations 上进行优化的,这可能意味着它们利用了底层 fact distribution 中的某些规律性。在本节中,我们旨在回答两个问题。

    • 首先,Wikidata fact distribution 中是否存在模式,其中统计模型理论上可以利用该模型来预测 unseen facts

    • 其次,optimized prompts 能否在实践中利用这些模式?

  2. 可以从训练数据中预测事实:我们首先研究是否可能仅通过查看训练数据来预测任何 facts 。最简单的模式是 class prior P(or):如果一个或两个 object labels 在关系 r 中占主导地位,那么无论 subject 实体如何,猜测它们都更容易。一种更复杂的模式是找到 subject tokensobject labels 之间的相关性,即估计 P(or,w1,,w|s|),其中 w1,,w|s|Vsubject 名称的 tokens

    为了确定是否存在这样的模式,我们对 AutoPrompt 原始论文收集的 Wikidata 训练集拟合了两个简单的概率模型:

    • 第一个模型总是预测 majority class ,其中 majority class 的先验概率是从训练数据中学习的。

    • 第二个模型是一个朴素贝叶斯分类器(bag-of-words ),采用 sdd-one smoothing (详见附录 B.2 中的详细信息)。

    Table 3 显示了这些模型在 LAMA benchmark 上的准确率,对 relation 进行了平均。

    • majority class 模型表现良好,因为在某些关系中,超过一半的样本属于多数类。

    • 朴素贝叶斯 baselien 模型在所有类别中表现更好。

    这个分析补充了 《BERT is not a knowledge base (yet): Factual knowledge vs. name-based reasoning in unsupervised qa》 的观察,他们指出 BERT 可以利用 cloze prompt 中的表面信息 “猜测” 正确答案,例如预测具有典型意大利人名字的人可能出生在罗马。我们的结果表明,即使没有关于实体名称的先验信息,也有可能学习这些相关性,并且在 Wikidata 分布中可能存在其他更微妙的模式。

  3. prompts 可以利用训练数据:我们已经表明训练数据明显编码了某些规律性,简单的统计模型可以学习拟合训练数据。接下来,我们研究一个由 pretrained 语言模型构建的 prompt optimization 方法是否在实践中具有足够的表达能力来利用这些规律性。我们通过两个随机对照实验来试图回答这个问题,这些对照实验受到 linguistic probing 中类似提议的启发。

    • 在我们的随机模型(Random Model: RM )基线中,我们优化 prompts 来引导具有与 pretrained 语言模型相同架构但参数随机初始化的神经网络中的 facts 。这类似于 《Information-theoretic probing for linguistic structure》control function ,该函数从 linguistic representation 中删除信息。在这种 setting 下,任何成功的预测都必须是在训练数据上进行优化的结果。

    • 我们还考虑了随机嵌入(Random Embedding: RE )基线,在这个基线中,我们仅重新初始化 input embeddings 。这类似于一个 control task《Designing and interpreting probes with control tasks》),是 probing task 的一种变体,其中单词类型与随机 labels 相关联。我们的动机是,Model setting 更难优化,因此可能低估了 prompt model 从训练数据中利用信息的方式。

    最后,我们直接在重新初始化的 BERT 模型上进行微调,目标是更好地估计可以从训练数据中预测到的 LAMA 事实的数量。

    结果如 Figure 2 所示(有关实现细节和更多结果,请参见附录 B.1Table 8 )。

    • RE setting 下,AutoPromptOptiPropmt 都能够找到引出一些正确预测的 prompts

    • RM setting 下,AutoPrompt 的预测准确率为 0% ,可能是因为它更难优化;但是 OptiPrompt 仍然能够找到成功的 prompts 。大多数成功的预测是通过找到引出 majority class labelsprompts 来实现的,然而 OptiPrompt 也做出了一些正确的、不属于 majority class labels 的预测。我们的定性分析表明,这些 prompts 利用了类别统计信息、objects and subject tokens 之间的相关性(附录 A.2 )。

    • 微调 BERT 模型导致更高的准确率,表明存在一些 prompts 未能利用的模式。随机对照实验对于 prompt optimization 来说是一种具有挑战性的设置,可能在 full pretrainedBERT 模型下, prompts 更好地利用了训练数据。我们通过计算每个 promptLAMA 数据集上引出 training class majority label 的频率来证明这一点,并将结果绘制在 Figure 3 中。AutoPromptOptiPrompt 都容易过度预测 majority class label 。例如,尽管在 RM settingAutoPrompt 的准确率为 0% ,但它在 pretrained BERT 模型上进行优化时,对于六个关系,它找到的 prompt 引出 majority label 的频率超过 95%

    • LPAQAprompts 较少地预测 majority class ,可能是因为它们在拟合训练分布方面的效果较差。然而,显然 LPAQAprompts 也编码了训练数据的分布。例如,LPAQA 发现的最高排名的 occupation prompts 包括 "[MASK] and actors [X]"[MASK] and player [X]"prompts ,其中 occupation prompts 反映了 Wikidata 中最常见的几个职业。在附录 A.2 中,我们还讨论了一些例子,其中 LPAQA 发现:对 prompt template 进行细微修改会导致模型更频繁地预测 majority label ,相对于manual prompttrue test distribution 。所有上述证据表明,optimized prompts 在某种程度上可以学习到新的事实。

34.3 如何解释 Probing 结果

  1. 我们在前面的分析显示,optimized prompts 可以从训练数据中预测新的 facts 。在这个背景下,我们如何解释我们的 factual probing 结果呢?为了从另一个角度评估相对改进的情况,我们将 LAMA 数据集划分为 easy 子集和 hard 子集(每个子集的例子可以在 Table 5 中找到)。

    • easy 子集由这类 facts 组成:这些 facts 可以由三种模型之一来正确地预测,包括朴素贝叶斯模型、token embeddings 重新初始化的 fine-tuned BERT 模型、所有参数重新初始化的 fine-tuned BERT 模型。 easy 子集可作为可以从训练数据中预测的 facts 的估计。

    • hard 子集包含剩余的事实。

    Table 4 显示了每个 promptsLAMA 的这两个子集上的结果(每个 relation 的结果见 Table 9 )。

    • 首先,我们观察到所有的 probing 方法在 easy 子集上的准确率都要高得多。使用更复杂的 prompt optimization 技术往往会在 LAMAeasy 子集上取得较大的改进,而在 hard 子集上的改进较小。

    • OptiPrompteasy 子集上的改进比AutoPrompt 高出 7.4% ;而在 hard 子集上,OptiPrompt 也取得了较大的改进(+6.3% )。这表明 OptiPrompt 在从训练数据中学习和引导语言模型产生事实方面都表现更好。

  2. 为了进行更详细的定性分析,我们从每个子集中随机抽取了十个事实,仅保留那些至少有一个模型预测正确且不具有 majority class label 的事实示例。这些示例在 Table 5 中展示,更好地展示了不同 prompts 引发的预测类型。

    • 例如,AutoPromptOptiPrompt 在某些情况下似乎在利用训练数据。

      • easy 子集中,它们在答案是 subject name 中的一个 token 时引发了更准确的预测。

      • hard 子集中,它们显示出对训练分布的过拟合迹象,错误地预测了最常见的 object labels :如,洲(南极洲)、制造商(IBM )。

    • OptiPrompt 在两个类别的某些事实中表现优于其他 prompts

      • 在一个容易的职业示例中, AutoPrompt 错误地预测了majority label (政治家),OptiPrompt (以及我们的朴素贝叶斯模型)明显编码了 subject 的某些方面与正确标签(演员)之间的词汇相关性。

      • 另一方面,在两个更困难的示例中,OptiPrompt 表现优于其他prompts"Francis Hagerup used to work in Oslo.""William Lyon Mackenzie King used to work in Ottawa." 。在这两种情况下,LPAQA 预测训练中的majority label (伦敦),AutoPrompt 更接近地预测了地理位置(哥本哈根和蒙特利尔),而 OptiPrompt 预测了正确的城市。

  3. 我们注意到,我们不能得出结论说:没有办法从训练数据中预测这些 "had" 的事实。这种分析的一个更普遍的限制是我们无法确定模型使用哪种策略来进行特定的预测。许多事实既可以通过学习 class prior 、学习 subject tokensobject 之间的词汇相关性、利用语言模型中的词汇信息来预测,也可能是因为语言模型真正编码了关于特定实体的信息。尽管如此,定性示例展示了 prompt model 行为中的有趣模式,这些模式无法从 LAMA benchmarksummary accuracy 结果中观察到,而通过查看一系列 prompts 的具体预测,我们可以更多地得到关于语言模型对特定事实编码的信息。

34.3 讨论

  1. continuous vs. discrete prompts:我们发现 continuous promptsdiscrete prompts 都能够找到利用训练数据的 prompts

    • 即使 prompts 是离散的,也很少清楚为什么某个 prompts 会引发特定的预测。因此,我们认为 continuous promtps 更可取,因为它更容易、更高效地进行优化,并且能够做出更好的预测(无论是在 easy 子集还是 hard 子集上)。

    • 另一方面,OptiPrompt (与 AutoPrompt 共享)的一个缺点是我们需要对语言模型进行白盒访问以计算梯度。在模型参数不可用的情况下,仍然需要 discrete prompts ,例如在通过 API 提供的大型语言模型的情况下。

  2. learning vs. learning to recall:无论我们选择如何优化 prompts ,要解释模型为什么做出特定预测仍然很困难,无论这些预测是从训练数据中学到的还是在语言模型中编码的。未来的研究方向之一可能是考虑将预测归因于特定的训练样本的技术,目标是在预训练或 prompt optimization 过程中开发对 facts 获取方式的因果理解。更一般地说,我们的真正目标是理解预训练语言模型是如何学习和表示信息的。prompt-based probing 可能会为这个问题提供一些见解,但我们希望未来的研究最终能够对神经网络行为提供更多机制性解释。例如,了解神经网络参数中的实体信息是如何组织的,并在input prompt 的响应中被检索出来,将是一个有趣的研究方向。