论文笔记:GPT Understands, Too

论文笔记:GPT Understands, Too_第1张图片

 1. 介绍

        手工制定一个表现好的提示如同大海捞针,手工提示的性能也十分不稳定,很可能创建出导致性能大幅下降的对抗性提示。鉴于这些问题,最近的工作重点是自动搜索离散提示,也取得了一定的效果。然而,由于神经网络本质上是连续的,离散的提示可能是次优的。在这项工作中,作者提出了一种新方法——P-tuning,在连续空间中自动搜索提示。P-tuning 利用很少的连续自由参数来作为预训练语言模型输入的提示,并使用梯度下降作为离散提示搜索的替代方法来优化连续提示。

2. P-tuning结构

        令V表示预训练模型M的词表,[P_{i}]表示模板T中的第i^{th}个提示token。简单起见,现在给定一个模板T

        传统的离散提示需要满足 [P_{i}]\in V,将模板T映射为词向量:

        P-tuning将[P_{i}]视为伪tokens并将模板T映射为:

        其中,h_{i}(0\leq i< m)是可学习的embedding向量。这使我们能够找到超出原始词汇表V所能表达的更好的连续提示。最后,借助下游损失函数L,我们可以对连续提示进行差分优化:

        离散提示和P-tuning的主要区别如下图所示:

论文笔记:GPT Understands, Too_第2张图片

3. P-tuning优化

虽然训练连续提示的想法很简单,但在实践中,它面临两个优化挑战:

1)离散性:在经过预训练后,模型M的词向量已经变得高度离散,如果用随机分布初始化h,容易陷入局部最优;

2)相关性:各个prompt embedding之间的联系应该更加紧密,需要某种机制来将prompt embedding相互关联。

鉴于以上挑战,P-tuning并不是随机初始化几个新token然后直接训练的,而是通过一个小型的LSTM模型把这几个Embedding算出来,并且将这个LSTM模型设为可学习的。因此,真正输入到语言模型M的embedding  h_{i}^{'} 是这样获得的:

 其中,MLP是使用ReLU为激活函数的,拥有两层隐层的全连接层。根据GitHub上作者的回复(参考这里),通过LSTM多绕一步的方法可以使得模型收敛更快、效果更优。

4. 实验结果

(1)Knowledge Probing(知识探索)

        知识探索,或称为事实检索,可以用来评估语言模型从预训练中获得了多少现实世界的知识。数据集LAMA使用从知识库中选择的三元组创建的完形填空测试对其进行评估。比如,将三元组(Dante, born-in, Florence)用手工提示转变为完形填空:“Dante was born in[MASK].”,然后要求模型推理出目标值。因为我们想要评估从预训练中获得的知识,所以预训练语言模型的参数是固定的(即没有经过微调)。

论文笔记:GPT Understands, Too_第3张图片

P-tuning优于LAMA原先的手工提示,以及离散提示搜索方法LPAQA和AutoPrompt。

论文笔记:GPT Understands, Too_第4张图片

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个样本。

完全监督训练:

论文笔记:GPT Understands, Too_第5张图片

        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,但却是次优的和劳动密集的。首先,结果表明,小样本性能与提示的语义、格式、语法没有明显的相关性。人类认为合理的提示不一定对语言模型有效(论文中未给出具体例子与实验数据)。其次,手动提示的微小变化会导致显着的性能差异。预训练语言模型对提示的选择非常敏感。

论文笔记:GPT Understands, Too_第6张图片

 实验结果表明:

(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:这篇论文没有看到关于标签词映射的探索。

你可能感兴趣的:(Prompt,自然语言处理,深度学习,机器学习,自然语言处理)