手工制定一个表现好的提示如同大海捞针,手工提示的性能也十分不稳定,很可能创建出导致性能大幅下降的对抗性提示。鉴于这些问题,最近的工作重点是自动搜索离散提示,也取得了一定的效果。然而,由于神经网络本质上是连续的,离散的提示可能是次优的。在这项工作中,作者提出了一种新方法——P-tuning,在连续空间中自动搜索提示。P-tuning 利用很少的连续自由参数来作为预训练语言模型输入的提示,并使用梯度下降作为离散提示搜索的替代方法来优化连续提示。
令表示预训练模型的词表,表示模板中的第个提示token。简单起见,现在给定一个模板:
传统的离散提示需要满足 ,将模板映射为词向量:
P-tuning将视为伪tokens并将模板映射为:
其中,是可学习的embedding向量。这使我们能够找到超出原始词汇表所能表达的更好的连续提示。最后,借助下游损失函数,我们可以对连续提示进行差分优化:
离散提示和P-tuning的主要区别如下图所示:
虽然训练连续提示的想法很简单,但在实践中,它面临两个优化挑战:
1)离散性:在经过预训练后,模型的词向量已经变得高度离散,如果用随机分布初始化,容易陷入局部最优;
2)相关性:各个prompt embedding之间的联系应该更加紧密,需要某种机制来将prompt embedding相互关联。
鉴于以上挑战,P-tuning并不是随机初始化几个新token然后直接训练的,而是通过一个小型的LSTM模型把这几个Embedding算出来,并且将这个LSTM模型设为可学习的。因此,真正输入到语言模型的embedding 是这样获得的:
其中,MLP是使用ReLU为激活函数的,拥有两层隐层的全连接层。根据GitHub上作者的回复(参考这里),通过LSTM多绕一步的方法可以使得模型收敛更快、效果更优。
(1)Knowledge Probing(知识探索)
知识探索,或称为事实检索,可以用来评估语言模型从预训练中获得了多少现实世界的知识。数据集LAMA使用从知识库中选择的三元组创建的完形填空测试对其进行评估。比如,将三元组(Dante, born-in, Florence)用手工提示转变为完形填空:“Dante was born in[MASK].”,然后要求模型推理出目标值。因为我们想要评估从预训练中获得的知识,所以预训练语言模型的参数是固定的(即没有经过微调)。
P-tuning优于LAMA原先的手工提示,以及离散提示搜索方法LPAQA和AutoPrompt。
1)Manual Prompt (MP):使用LAMA原先的手工提示,不对模型进行微调;
2)Fine-tuning (FT):仅提供subject,并对模型微调,以预测object;
3)Manual Prompt with Fine-tuning (MP+FT):使用手工提示微调模型;
4)P-tuning:使用连续提示,固定预训练模型参数。
实验发现,P-tuning可以和Fine-tuning性能相当或更好,作者给出的解释是,参数的微调可能会导致灾难性的遗忘。相反,P-tuning 不会改变预训练模型的参数,而是通过寻找更好的连续提示来唤起存储的知识。
(2)SuperGLUE
论文中分别进行了完全监督训练和小样本实验,完全监督训练使用数据集中训练集的所有样本,并使用开发集进行模型选择和超参调整,小样本的数据集采用了SuperGLUE的小样本版本——FewGLUE,每个任务只包含32个训练样本,和400到20000不等的未标注数据,开发集同样只包含32个样本。
完全监督训练:
P-tuning 在 7 个任务中的 5 个任务上优于所有其他基于 bert 的模型。除了WiC 和 MultiRC。由于 WiC 和 MultiRC 都具有相对较大的训练集,作者推测这可以是因为标准微调可以从更大的数据集中获得比 P-tuning 更多的优势,而 P-tuning 在资源匮乏的环境中似乎更有利。 对于GPT-2模型来说,P-tuning都取得了最优的结果,括号里表示相对于bert的性能提升或降低,通过 P-tuning,GPT2 实现了与 BERT 相当甚至更好的性能。这一发现颠覆了我们普遍的观点,即双向模型(如 BERT)在 NLU 任务上总是比单向模型(如 GPT2)更好。(点题了)
小样本学习:
论文指出,虽然PET/iPET使用手工prompt达到了FewGLUE的SOTA,但却是次优的和劳动密集的。首先,结果表明,小样本性能与提示的语义、格式、语法没有明显的相关性。人类认为合理的提示不一定对语言模型有效(论文中未给出具体例子与实验数据)。其次,手动提示的微小变化会导致显着的性能差异。预训练语言模型对提示的选择非常敏感。
实验结果表明:
(1)P-tuning在7个任务中全部优于移除所有辅助手段(增强、集成、蒸馏和自我训练)的PET,证明 P-tuning 可以提供比手动搜索更好的提示,并且显着提高了few-shot任务的性能;
(2)在 CB、WiC、RTE 和 WSC 等任务上,P-tuning 甚至优于采用辅助技术的 PET/iPET(开发集使用全量);
(3)GPT-3 的规模比 P-tuning (albert-xxlarge-v2) 大得多,但是P-tuning 在 7 个任务中的 6 个中表现优于GPT-3,进一步证明了 P-tuning 在少样本 NLU 任务中的优势。
PS:这篇论文没有看到关于标签词映射的探索。