P-Tuning,提升预训练语言模型的自然语言理解能力

人工智能咨询培训老师叶梓 转载标明出处

预训练语言模型在具体任务上的表现往往依赖于精心设计的离散提示(prompts),但这些提示有着不稳定性,微小的变化可能导致性能的大幅下降。清华大学和麻省理工学院的研究团队提出了一种名为P-Tuning的新方法,通过引入可训练的连续提示嵌入(continuous prompt embeddings),与离散提示相结合,旨在提高模型的稳定性和性能。图1为使用P-Tuning方法在SuperGLUE的7个开发数据集上的平均得分。显示P-Tuning方法相对于原始提示(没有使用P-Tuning)在性能上的提升。

论文链接:https://arxiv.org/pdf/2103.10385

P-Tuning方法

Prompting 是一种技术,它通过将自然语言模式作为额外的输入添加到预训练语言模型中,以适应下游任务。尽管这种技术在多个自然语言处理任务上取得了显著的性能提升,但如何编写高性能的离散提示仍然是一个挑战。研究者通过在LAMA知识探测任务上的初步实验发现,离散提示的性能非常不稳定。例如,在表1中,仅仅在提示中改变一个词,就可能导致性能下降20个百分点。

为了解决这个问题,又提出了自动化搜索离散提示的方法,包括通过挖掘训练语料库、基于梯度的搜索和使用预训练的生成模型。然而,这些方法虽然旨在寻找性能更好的提示,但并没有改变离散提示本质上的不稳定性。而且离散空间中的搜索可能无法充分利用反向传播的梯度,可能导致次优解。

本文提出的新方法P-Tuning使用连续的提示嵌入与离散提示相结合。具体而言对于一个预训练语言模型M,其隐藏层的大小为ℎ,词汇表大小为∣V∣。给定一个NLU任务的标记数据集,其中是一系列离散标记的输入序列,y∈Y是标签。P-Tuning的目标是估计分类条件概率=,其中M的参数可以是微调的或冻结的。

在图2中,展示了"英国首都是什么?"这一提示搜索的例子。在(a)中,离散提示搜索只接收离散的奖励;而在(b)中,连续提示嵌入和提示编码器可以在可微分的方式下进行优化。

P-Tuning使用额外的嵌入函数将模板映射到模型输入。即连续提示嵌入[P_i​]被定义为提示模板的一部分,如下所示:

通过优化任务损失函数来更新嵌入​。注意:实验中发现将离散提示与连续提示结合使用效果更好,这也是研究者们在所有实验中采用的方法。P-Tuning适用于冻结和微调的语言模型。

在P-Tuning框架中,研究者们使用了一个映射函数f来将可训练的嵌入{P_i​}映射到模型输入{h_i​}。使用映射函数的直觉是,与使用独立的可学习嵌入相比,它更方便地对不同提示嵌入之间的依赖性进行建模。在实现中,研究者们使用了一个轻量级的神经网络来构建函数f。具体为实验中使用了长短期记忆(LSTM)网络、多层感知器(MLP)和恒等映射函数。

通过这些方法,P-Tuning不仅提高了预训练语言模型在自然语言理解任务上的性能,还显著提高了模型的稳定性。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory ------ 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

实验涵盖了两个主要的自然语言理解(NLU)基准测试:LAMA和SuperGLUE,并在完全监督学习和少量样本学习(few-shot learning)的设置下进行了评估。表2总结了实验中的任务设置和结果摘要。它展示了P-Tuning在不同任务设置(LAMA、全监督SuperGLUE、少样本SuperGLUE)中的表现,以及它如何改善性能和稳定性。

研究者们首先使用LAMA数据集来评估语言模型从预训练中获得的真实世界知识量。LAMA通过从知识库中选择的三元组创建的完形填空测试来评估这一点。研究者们采用了原始的LAMA-TREx数据集,并根据BERT和GPT的词汇表交集创建了LAMA-29k数据集,以便进行直接比较。

表3是在LAMA-34k和LAMA-29k上的知识探测精确度@1(Precision@1)结果。P-Tuning在所有情况下都优于离散提示搜索基线,包括AutoPrompt和LPAQA。例如,在LAMA-34k上,BERT-base模型使用P-Tuning后,性能从31.1%提高到52.3%,增加了20.6个百分点。

研究者接着评估了P-Tuning在SuperGLUE基准测试上的表现,该基准测试包含8个具有挑战性的NLU任务。由于ReCoRD任务不使用离散提示,因此P-Tuning不直接适用,研究者们专注于其余7个任务。

表4展示了在SuperGLUE开发集上的完全监督性能。P-Tuning在BERT和GPT模型上都能提高性能。例如,在BERT-Base模型上,P-Tuning在5/7的任务上取得了最佳性能,而在BERT-Large模型上,在4/7的任务上超过了其他方法。对于资源较少的任务,P-Tuning的好处更加明显。

研究者还探讨了P-Tuning是否能够提高预训练模型在具有挑战性任务上的少量样本学习能力。他们使用了FewGLUE基准测试,并遵循了FewNLU的评估程序。

表5展示了基于ALBERT的少量样本学习性能。P-Tuning在平均性能上一致性地比PET方法高出1个百分点以上,比Prompt Tuning高出13个百分点以上,证明了通过自动学习连续提示符号,预训练模型能够在NLU任务上实现更好的少量样本性能。

研究者进行了消融研究,探讨了提示编码器的类型、提示符号的位置和数量对性能的影响。他们发现,LSTM和MLP通常在这些任务上表现良好,而直接优化词嵌入(EMB)则不太稳定。另外连续提示符号的数量对少量样本性能有很大的影响,但并不是说提示符号的数量越多越好。

表6为在SuperGLUE上使用ALBERT模型进行少样本学习时,PET和P-Tuning每种模式的性能,以及在LAMA-P17上使用BERT-base-cased模型的手动提示和P-Tuning的性能。它显示了P-Tuning如何提高稳定性。与手动提示相比,P-Tuning能够减少不同提示之间的性能差异,从而提高稳定性。例如,在LAMA任务上,P-Tuning将标准差从10.1降低到了0.46。

通过这些详细的实验设置和结果,研究者证明了P-Tuning是一种有效且稳定的方法,可以显著提高预训练语言模型在NLU任务上的性能。

相关推荐
封步宇AIGC9 分钟前
量化交易系统开发-实时行情自动化交易-4.2.3.指数移动平均线实现
人工智能·python·机器学习·数据挖掘
Mr.谢尔比24 分钟前
李宏毅机器学习课程知识点摘要(1-5集)
人工智能·pytorch·深度学习·神经网络·算法·机器学习·计算机视觉
我是博博啦25 分钟前
matlab例题
人工智能·算法·matlab
DieYoung_Alive31 分钟前
一篇文章了解机器学习
人工智能·机器学习
2023数学建模国赛比赛资料分享32 分钟前
2024亚太杯国际赛C题宠物预测1234问完整解题思路代码+成品参考文章
人工智能·数学建模·宠物·2024亚太杯国际赛数学建模·2024亚太杯国际赛a题·2024亚太杯国际赛数模abc·2024亚太杯数学建模
思通数科AI全行业智能NLP系统41 分钟前
六大核心应用场景,解锁AI检测系统的智能安全之道
图像处理·人工智能·深度学习·安全·目标检测·计算机视觉·知识图谱
做程序员的第一天1 小时前
在PyTorch中,钩子(hook)是什么?在神经网络中扮演什么角色?
pytorch·python·深度学习
程序员小范2 小时前
孙玲:从流水线工人到谷歌程序员
人工智能·程序员·谷歌·远程工作
醉酒柴柴2 小时前
【代码pycharm】动手学深度学习v2-07 自动求导
ide·深度学习·pycharm
风走茶未凉2 小时前
转置卷积与全卷积网络FCN在语义分割中的应用
网络·深度学习·cnn