Xinwei Long
Xinwei Long
Thank you for your reply!
您好,仅从日志中的报错我也不能确定是什么原因,我猜测是您没有对词表进行修改。 因为我把“speaker1”.. 作为special token,所以需要把词表中的[used1]..[used8]替换为speaker1...speaker8. 您也可以把‘./data/vocab.txt’ 替换bert原始的vocab.txt
修改后,请记得先删除data目录下之前生成的“*.p”文件,再重新运行。
啊这不是吧,当我把词表换成bert原始的时,也出现了一样的错误。 麻烦您确认一下,在替换词表后,把之前生成的train.p, dev.p, test.p都删掉再重新运行。 我建了一个pytorch-1.7.1的虚拟环境,代码是可以运行的,但可能随机数生成的机制有差异,结果与之前的略有不同。
或者您用单机跑,debug模式,看下tokenizer输出的“speaker1”对应的index是否是1,如果不是,就说明是词表的问题
paper中report的是在验证集上最优的模型 在验证集和测试集上的结果。 1、去掉R3(直接令sigma=0)没有问题。 2、实验过程中指标震荡的原因有两个:(1)dialogRE数据集太小了,类别的数量也极度不均衡。(2)学习率的变化采用了CosineAnnealingLR(学习率呈周期变化),从而导致了实验过程中的指标震荡。(另,baseline中的GAIN也采用了这种变化方式。 这个数据集本身太小了,确实最后的结果会有差异。在torch-1.7.1的环境下我的结果是 eval F1=71.04,test F1=72.03 在torch-1.2下我的结果是 eval F1=71.63,test F1=72.19
我印象中上传的这个模型文件要略微优于论文报告的结果,您可以检查下代码或自己重新训练一下模型;我已从之前的团队毕业,近期可能没有时间再重跑一遍