当前位置:   article > 正文

P-tuning_p-tuning v2

p-tuning v2

p-tuning-v2的主要贡献是在原本的输入前添加自定义长度的layer prompts,在后续针对下游任务的训练中冻结BERT模型的所有参数而只训练这些prompt给模型带来影响的参数。

这些参数在源码中具体为:prompt对应的embedding层,两个线性层(对应key和value),一个全连接层。

  1. class PrefixEncoder(torch.nn.Module):
  2. def __init__(self):
  3. super().__init__()
  4. self.embedding = torch.nn.Embedding(seq_len, dim_ebd)
  5. self.trans = torch.nn.Sequential(
  6. torch.nn.Linear(dim_ebd, dim_ebd),
  7. torch.nn.Tanh(),
  8. torch.nn.Linear(dim_ebd, num_layer * 2 * dim_ebd)
  9. ).to(device)
  10. def forward(self, prefix):
  11. prefix_tokens = self.embedding(prefix)
  12. past_key_values = self.trans(prefix_tokens)
  13. return past_key_values

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/277485
推荐阅读
相关标签
  

闽ICP备14008679号