P-tuning
P-tuning copied to clipboard
P-tuuning的一些问题
1.你好,我想问一下,在P-tunning中,[Mask]在一众[unused]中得位置是怎么确定的?是人工选择的吗?如果不是的话,是根据什么方式确定的? 2.原论文中写的当数据量比较少的时候用的anchor-word,比如预测“英国首都”,在几个[unused]中加一个[capital]效果会比较好,这个[capital]应该加在哪个位置是如何确定的呢?
1.你好,我想问一下,在P-tunning中,[Mask]在一众[unused]中得位置是怎么确定的?是人工选择的吗?如果不是的话,是根据什么方式确定的? 2.原论文中写的当数据量比较少的时候用的anchor-word,比如预测“英国首都”,在几个[unused]中加一个[capital]效果会比较好,这个[capital]应该加在哪个位置是如何确定的呢?
不是作者哈,试着说一下自己的理解:
- 这个项目中的prmopt没有使用[unused] token,这里的[Mask]就和manual prmopt的mask位置一致。你看到的可能是苏剑林大佬文章中用了unused token的setting,他的代码在这里:https://github.com/bojone/P-tuning
- 这个项目中其实prompt中大部分的token都是anchor-word,具体到
PT_Fewshot/data_utils/task_pvp.py
中你可以看各个task的prompt。比如说Rte任务的prompt格式如下: https://github.com/THUDM/P-tuning/blob/368ab8561bab04b44010744a365124efaed6bf16/PT-Fewshot/data_utils/task_pvps.py#L288 它对应的block_flag_a
是: https://github.com/THUDM/P-tuning/blob/368ab8561bab04b44010744a365124efaed6bf16/PT-Fewshot/data_utils/task_pvps.py#L290 其中第5个值为1,表示这个词是可以替换成LSTM embedding的,在这个prompt中对应the
这个token。 其他的PVP同理,总之它目前的实现中基本除了少部分block_flag==1
位置的token以外都是anchor token。 至于为什么这么选择,大概是因为这些token包含的语义信息比较少,替换掉也没事,效果稍微调一下也能上去……
1.你好,我想问一下,在P-tunning中,[Mask]在一众[unused]中得位置是怎么确定的?是人工选择的吗?如果不是的话,是根据什么方式确定的? 2.原论文中写的当数据量比较少的时候用的anchor-word,比如预测“英国首都”,在几个[unused]中加一个[capital]效果会比较好,这个[capital]应该加在哪个位置是如何确定的呢?
不是作者哈,试着说一下自己的理解:
这个项目中的prmopt没有使用[unused] token,这里的[Mask]就和manual prmopt的mask位置一致。你看到的可能是苏剑林大佬文章中用了unused token的setting,他的代码在这里:https://github.com/bojone/P-tuning
这个项目中其实prompt中大部分的token都是anchor-word,具体到
PT_Fewshot/data_utils/task_pvp.py
中你可以看各个task的prompt。比如说Rte任务的prompt格式如下: https://github.com/THUDM/P-tuning/blob/368ab8561bab04b44010744a365124efaed6bf16/PT-Fewshot/data_utils/task_pvps.py#L288它对应的
block_flag_a
是: https://github.com/THUDM/P-tuning/blob/368ab8561bab04b44010744a365124efaed6bf16/PT-Fewshot/data_utils/task_pvps.py#L290其中第5个值为1,表示这个词是可以替换成LSTM embedding的,在这个prompt中对应
the
这个token。 其他的PVP同理,总之它目前的实现中基本除了少部分block_flag==1
位置的token以外都是anchor token。 至于为什么这么选择,大概是因为这些token包含的语义信息比较少,替换掉也没事,效果稍微调一下也能上去……
看了半天没明天,原来是这个意思,谢谢
@Riroaki 我也看了代码,好像是这个意思,但是他这个block 和论文上说的有出入:
For instance,for RTE task, the token “?” within prompt template “[PRE][prompt tokens][HYP]?[prompt tokens][MASK]” is specially added as an anchor token and affects the performance a lot.
这代码写的,跟论文上的,不一样。。。。不仅prompt 不一样, anchor word 也不一样。。。。难受
PVP 是啥意思啊