zjunlp / KnowPrompt

[WWW 2022] KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction
MIT License
194 stars 34 forks source link

关于two-stage中的第一个阶段,论文中的描述是否和代码不一致 #19

Closed zfbz closed 1 year ago

zfbz commented 1 year ago

大佬好!我有以下疑问: 论文 4.3 节说第一阶段训练是优化那几个虚拟类型词和答案词的 embedding,但是我看到代码(如下)transformer.py 里,else 里是用整个 embedding 来当做优化的参数,请问这是怎么回事呢?

 def configure_optimizers(self):
        no_decay_param = ["bias", "LayerNorm.weight"]

        if not self.args.two_steps: 
            parameters = self.model.named_parameters()
        else:
            # model.bert.embeddings.weight
            parameters = [next(self.model.named_parameters())]
njcx-ai commented 1 year ago

您好,之前由于实际项目需要,代码已经优化过直接就剩一个阶段了,测试过效果和两阶段差不太多但训练速度会快很多。