Prefix Tuning、P-Tuning V1/V2基本原理总结

Prefix Tuning

Prefix Tuning是斯坦福在2021年提出的一种微调方法,主要的创新点在于对之前传统的人工构造prompt模板方式进行了改进。因为之前的人工构建的template是离散的,且针对不同的下游任务,需要构建不同的模版。而没有通用的标准去评价模板效果的优劣。所以Prefix Tuning旨在创建一种连续的可学习的模板,将prompt转换为virtual tokens embedding,并将其添加至输入中,作为输入的前缀。

对于transformer的每一层 (不只是输入层,且每一层transformer的输入不是从上一层输出,而是随机初始化的embedding作为输入),都在真实的句子表征前面插入若干个连续的可训练的"virtual token" embedding,这些伪token不必是词表中真实的词,而只是若干个可调的自由参数。

同时,为了防止直接更新Prefix的参数导致训练不稳定的情况,特在Prefix层前面加了MLP结构(相当于将Prefix分解为更小维度的Input与MLP的组合后输出的结果),训练完成后,只保留Prefix的参数。

P-Tuning V1

P-Tuning(GPT Understands, Too),该方法将离散的Prompt转换为可以学习的Embedding层,并用MLP+LSTM的方式来对Prompt Embedding进行一层处理,成功地实现了模版的自动构建。

相比Prefix Tuning,P-Tuning加入的可微的virtual token仅限于输入层,没有在每一层都加;另外,virtual token的位置也不一定是前缀,插入的位置是可选的。

优化virtual token:经过预训练的LM的词嵌入已经变得高度离散,如果随机初始化virtual token,容易优化到局部最优值;这些virtual token理论是应该有相关关联的,要对这种关联进行建模。作者发现的是用一个prompt encoder来编码收敛更快,效果更好。也就是说,用一个LSTM+MLP去编码这些virtual token以后,再输入到模型。换言之,P-tuning并不是随机初始化几个新token然后直接训练的,而是通过一个小型的LSTM模型把这几个Embedding算出来,并且将这个LSTM模型设为可学习的。

P-Tuning V2

P-Tuning存在一些局限性。1)使用于10B以上参数量的预训练模型,在较小规模模型(100M~1B)上的效果与全量微调有很大差距。2)在序列标注任务上的效果尚待检验。

基于此,P-Tuning V2进行了下述改进:
1.在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层,这与Prefix Tuning的做法相同。这样得到了更多可学习的参数,且更深层结构中的Prompt能给模型预测带来更直接的影响。

2.去掉了重参数化的编码器。以前的方法利用重参数化功能来提高训练速度和鲁棒性(例如,用于prefix-tunning的 MLP 和用于 P-tuning的 LSTM)。在 P-tuning v2 中,作者发现重参数化的改进很小,尤其是对于较小的模型,同时还会影响模型的表现。

3.针对不同任务采用不同的提示长度。提示长度在提示优化方法的超参数搜索中起着核心作用。在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。

4.可选的多任务学习。先在多任务的Prompt上进行预训练,然后再适配下游任务。一方面,连续提示的随机惯性给优化带来了困难,这可以通过更多的训练数据或与任务相关的无监督预训练来缓解;另一方面,连续提示是跨任务和数据集的特定任务知识的完美载体。比如说,在NER中,可以同时训练多个数据集,不同数据集使用不同的顶层classifer,但是prefix continuous prompt是共享的。

参考:
1.https://zhuanlan.zhihu.com/p/635848732
2.https://zhuanlan.zhihu.com/p/660721012#%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86%20P-Tuning%20V1/V2

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值