Prompt Tuning 相比于 Fine Tuning 在哪些场景下表现更好?

链接:https://www.zhihu.com/question/504324484

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

作者:毛航宇

https://www.zhihu.com/question/504324484/answer/2918333402

代季峰老师 @Jifeng Dai 和王晓刚老师组用几十个字回答了这个问题

outside_default.png

参考文献:Uni-Perceiver: Pre-training Unified Architecture for Generic Perception for Zero-shot and Few-shot Tasks

作者:核弹头
https://www.zhihu.com/question/504324484/answer/2920343684

今晚隔壁组的妹妹问了我一个类似的问题,我回她了一句“因为prompt tuing的时候PLM的参数都被frozen了,所以和fine tuning比参数量小。”

但是我突然迷茫了,因为在我之前看的很多论文里,还有自己的工作里用到prompt的其实都对LM进行重新训练了。

所以有些道理是死的,具体的还得看真实做法。“prompt tuning比fine tuning需要训练参数小”这种说法存在于frozen的情况,这时候只需要训词表或者是prefix,但是大部分情况是不frozen的。

但是现在再讨论这些问题已经没有太大意义了,不过这个基础问题值得记一下。

作者:不要辣椒不要酱

https://www.zhihu.com/question/504324484/answer/2675088794

目前在文本分类任务来说是小样本,样本多了还是微调的方式好。PaddleNLP已经开源了prompt tuning多场景文本分类应用可以跑一下比较效果:https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/text_classification/multi_class/few-shotPaddleNLP提供的基于提示学习的文本分类是基于P-tuning template(也不完全是)+ WARP的Verbalizer 实现的

outside_default.png

虽然是多分类的图,但思路是类似的先说template的部分,假如句子为“电影真好看。”,在句子后人工插入一个prompt,输入的句子变为"电影真好看。我[MASK]喜欢”。"负向"或"正向"的情感二分类任务转化为掩码[MASK]"不"或"很"的二分类任务,构造提示[MASK]分类器预测分类与原始标签的对应关系为"不"->"负向" 、"很"->"正向" 。这里和P-tuning的template略有不同,P-tuning的prompt的embedding是类似随机初始化,而这里用prompt里的字的embedding进行初始化。群里问为什么不按照p tuning随机初始化的方法,得到的回答是用人工模板template初始化的效果会好一点。另外,大多数情况在encoder加LSTM效果略有提高。然后是verbalizer的部分,就是做映射。因为只有一个[MASK],所以线性分类器分类器初始化就是映射标签里所有字的embedding的均值。在这种情况下,用"不"和"很"的预训练向量初始化线性分类器 :不很ω0=(e("不"),e("很"))\omega_{0}=(e("不"),e("很"))\omega_{0}=(e("不"),e("很")) 训练的话,除了embedding也要训练外,和微调十分类似。

作者:小薯条学技术

https://www.zhihu.com/question/504324484/answer/2920873187

Prompt Tuning(即模板微调)和 Fine Tuning(即微调)是自然语言处理(NLP)中两种常用的模型调整技术。它们都可以用于调整预训练的语言模型来适应特定的任务。

但是,Prompt Tuning 和 Fine Tuning 的实现方式和应用场景不同,下面详细介绍:Prompt TuningPrompt Tuning 是一种通过在输入和输出之间插入特定的提示或模板来微调预训练的语言模型的方法。具体来说,Prompt Tuning 将一个预定义的模板或提示文本作为输入的一部分,这个提示文本指导模型生成特定的输出。

例如,对于情感分类任务,可以将输入中的关键字“我觉得”作为提示文本,以指导模型生成正确的情感类别。相比于 Fine Tuning,Prompt Tuning 在以下情景下表现更好:小数据集:在面对小规模数据集时,Fine Tuning 很容易发生过拟合,导致性能下降。而 Prompt Tuning 可以通过使用模板或提示文本的方式来提供更多的上下文信息,从而减少过拟合。零样本学习:Prompt Tuning 可以通过使用先前训练过的模板来进行零样本学习,而 Fine Tuning 需要重新训练整个模型。因此,在没有训练数据的情况下,Prompt Tuning 的性能会更好。特定任务:Prompt Tuning 可以使用任务特定的提示或模板来指导模型生成特定的输出,因此在特定任务上表现更好。

outside_default.png

Fine Tuning

Fine Tuning 是一种通过在特定任务上微调预训练的语言模型来提高性能的方法。Fine Tuning 通过在预训练模型的顶部添加一个分类器层,然后将模型在特定任务的训练集上进行微调。

相比于 Prompt Tuning,Fine Tuning 在以下情景下表现更好:大数据集:当面对大规模数据集时,Fine Tuning 可以利用更多的数据来调整模型,从而提高性能。多任务学习:Fine Tuning 可以同时在多个任务上进行微调,以提高模型的通用性。而 Prompt Tuning 只能针对单个任务进行微调。领域适应性:当模型需要适应新的领域时,Fine Tuning 可以利用领域特定的数据来微调模型,从而提高性能。而 Prompt Tuning 的提示或模板通常是固定的,难以适应不同的领域。

总之,Prompt Tuning 和 Fine Tuning 都有各自的优点和适用场景。在具体的应用场景中,需要根据具体的任务和数据集来选择合适的调整方法。如果面对小规模数据集、零样本学习或特定任务,可以考虑使用 Prompt Tuning。而如果面对大规模数据集、多任务学习或需要领域适应性的情况,可以考虑使用 Fine Tuning。此外,还有一些情况可以将 Prompt Tuning 和 Fine Tuning 结合起来使用。例如,在 Fine Tuning 的过程中,可以使用 Prompt Tuning 来提供更多的上下文信息,从而减少过拟合。或者在 Prompt Tuning 的过程中,可以使用 Fine Tuning 来微调预训练模型的顶部分类器,以进一步提高性能。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

outside_default.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值