一、序列标注任务预测输出全为0的情况:
1.1、模型搭建出现问题,检查模型是否正确
1.2、学习率太小导致未收敛出现全0的情况,其中如果含BERT的模型可以尝试对不同参数设置不同学习率。
1.3、batch_size过大导致全0的情况,需要调小batch
二、关于含Bert模型的参数设置问题
学习率建议设置为:1e-5 / 2e-5 / 5e-5
Batch_Size建议设置:8 / 16 / 32
三、含Bert + CRF的基本模型中,调大CRF的学习率效果可能会有明显的提升
Bert模型一般10^-5级别的学习率微调就够了,但是对于CRF来说这么小的学习率很难让CRF的转移矩阵很好的学习所有的信息。适当调大CRF的学习率会让CRF模型中的转移矩阵学习到更多的信息。一般设置成10^-2级别就可以了。
四、RuntimeError: CUDA error: device-side assert triggered
检查送入模型的label部分,很有可能是因为类别设置错误,或者是类别映射错误。
五、测试集效果过好
检查送入的特征是否有标签泄露的情况,抽取很难出现效果很好的情况,注意检查输入。
6. torch.load 出现的模型参数不一致问题
model.load_state_dict({k.replace('module.',''):v for k,v in torch.load('myfile.pth').items()})