Tongjilibo / bert4torch

An elegent pytorch implement of transformers
https://bert4torch.readthedocs.io/
MIT License
1.24k stars 155 forks source link

BERT-MRC跑的P,R,F1一直为0 #2

Closed zhangyujie209 closed 2 years ago

zhangyujie209 commented 2 years ago

Epoch 1/50 2000/2000 [==============================] - 534s 267ms/step - loss: 0.0394 Evaluation: 100%|██████████| 1159/1159 [01:34<00:00, 12.25it/s] [val] f1: 0.00000, p: 0.00000 r: 0.00000

Tongjilibo commented 2 years ago

Epoch 1/50 2000/2000 [==============================] - 193s 97ms/step - loss: 0.0078 Evaluation: 100%|█████████████████████████████████████████| 1159/1159 [00:32<00:00, 35.58it/s] [val] f1: 0.90232, p: 0.92398 r: 0.88164

这是我本地跑的,你是用同样的数据集吗?也没有改动代码?

Tongjilibo commented 2 years ago

如果是使用你自己的数据集,不传入steps_per_epoch或者设置为None,表示跑一个完整的epoch,然后检查下数据处理部分代码,看看结果咋样?

zhangyujie209 commented 2 years ago

我用的人民日报数据集,也没动过代码,在colab上跑的

Tongjilibo commented 2 years ago

我在colab上是可以跑起来的,如下截图,请检查你是否成功加载了预训练模型,或者先在本机调试下看看 微信截图_20220427191110

zhangyujie209 commented 2 years ago

我感觉是BERT版本原因,作者大大使用的是哪个版本的BERT,我换了huggingface里的bert-base-chinese版本第一轮的还是0,第二轮以后开始慢慢提升,但是收敛速度很慢,到17轮F1到了93多

Tongjilibo commented 2 years ago

我感觉是BERT版本原因,作者大大使用的是哪个版本的BERT,我换了huggingface里的bert-base-chinese版本第一轮的还是0,第二轮以后开始慢慢提升,但是收敛速度很慢,到17轮F1到了93多

您好,是的,因为你用的bert-base-chinese的权重的key和本框架没有完全对齐,导致Laynorm层的权重和偏置未成功加载,可以使用转化脚本修改一下,本项目使用到的部分数据集下载链接直接加载的checkpoint清单

zhangyujie209 commented 2 years ago

解决了 感谢感谢

@.***

@.*** |

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2022年04月28日 23:28 | | 收件人 | @.> | | 抄送至 | @.**@.> | | 主题 | Re: [Tongjilibo/bert4torch] BERT-MRC跑的P,R,F1一直为0 (Issue #2) |

我感觉是BERT版本原因,作者大大使用的是哪个版本的BERT,我换了huggingface里的bert-base-chinese版本第一轮的还是0,第二轮以后开始慢慢提升,但是收敛速度很慢,到17轮F1到了93多

您好,是的,因为你用的bert-base-chinese的权重的key和本框架没有完全对齐,导致Laynorm层的权重和偏置未成功加载,可以使用转化脚本修改一下,我测试后修改后第一个epoch f1可以达到80几,或者换成目前我开发使用的模型bert是google原版权重chinese_L-12_H-768_A-12的pytorch版本,一个是哈工大的chinese-roberta-wwm-ext-base, robert是哈工大的chinese-roberta-wwm-ext

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>