Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问为什么roberta_large比roberta_middle在CMRC2018上低很多? #16

Closed
ewrfcas opened this issue Sep 9, 2019 · 19 comments
Closed

Comments

@ewrfcas
Copy link

ewrfcas commented Sep 9, 2019

https://hfl-rc.github.io/cmrc2018/task/#section-1
想测一下roberta在阅读理解上的性能如何。尝试将middle和large转成pytorch在cmrc2018上跑了一下,middle的F1能到86,但是large的F1只能到77,非常奇怪。
直接使用提供的pytorch版本的large权重效果也是一样。

@YingZiqiang
Copy link

@ewrfcas 请问roberta-middle在哪里,我为什么没有在界面上看见.

@ewrfcas
Copy link
Author

ewrfcas commented Sep 9, 2019

@YingZiqiang 是Roberta_l24_zh_base,24层,12head,768hidden的。

@brightmart
Copy link
Owner

在我们的测试里large效果比middle要好。你训练的超参数怎么样的,能否贴出来,batch size多少。

@ewrfcas
Copy link
Author

ewrfcas commented Sep 9, 2019

@brightmart 感谢回复,我large我是用5卡batchsize30训练的,middle是32,一共3个epoch,lr=3e-5/2e-5,warmup=0.1。除了batchsize基本和middle没区别。

@ewrfcas
Copy link
Author

ewrfcas commented Sep 9, 2019

image
另外,large和middle的词表应该是相同的吧?那预处理应该不会有问题才对。。

@brightmart
Copy link
Owner

brightmart commented Sep 9, 2019

词汇表是一模一样的哦。你看看这两个large和middel的文件夹下的名称。是不是large的checkpoint没有加载成功呢。再跑一次,看看checkpoint加载成功了没,batch size用相同的32。

@ymcui
Copy link

ymcui commented Sep 10, 2019

Same question here.
尝试了三个阅读理解数据集:CMRC 2018, DRCD, CJRC在large上的效果都比较差(不是init_ckpt没加载的问题)。但XNLI可以得到比 @brightmart 报告的更好的结果。或许large不是max_seq_len=512训出来的?

@ewrfcas
Copy link
Author

ewrfcas commented Sep 10, 2019

加载应该是成功的,我对比过参数,没有加载的只有cls的pooler相关的权重

@brightmart
Copy link
Owner

brightmart commented Sep 10, 2019

@ymcui 是的,现有的roberta是在max_seq_len为256上训练的,可以适合处理这范围内的;那么对于长文本,如超过256,可以效果不好。

阅读理解的效果测试结果是怎么样?

@ewrfcas

@ymcui
Copy link

ymcui commented Sep 10, 2019

@brightmart
OK, got it. Thanks.

@ewrfcas
Copy link
Author

ewrfcas commented Sep 10, 2019

我在CMRC2018上测试结果都是基于512长度的,middle的F1在5次里是86~87,large的F1大概要低10个点,在75~77左右,256长度的large结果正在测试中
@brightmart 希望能够调整下large模型config文件的max_position_embeddings

@ewrfcas
Copy link
Author

ewrfcas commented Sep 10, 2019

目前测roberta-large长度256在CMRC2018的dev结果为
F1:88.365, EM:69.991
lr=2e-5 epoch1最佳

@brightmart
Copy link
Owner

所有,初步的看,在这个阅读理解任务上,和其他模型比,怎么样呢?为什么阅读理解还能将长度设为这么小。

@ewrfcas
Copy link
Author

ewrfcas commented Sep 11, 2019

这个结果目前看来在ERNIE2.0 base到ERNIE2.0 large之间,在预训练模型里效果算比较好的了。
长度设为256依靠划窗可以跑,但是效果会有一点下降

@brightmart
Copy link
Owner

brightmart commented Sep 15, 2019

好的。 @ewrfcas 是否可以测试对比一下XLNet_zh_Large在CMRC2018数据集上的效果?

(目前的XLNet_zh_Large是尝鲜版,如有问题会协助解决)

@ewrfcas
Copy link
Author

ewrfcas commented Sep 16, 2019

@brightmart xlnet如果是用sentencepiece的话做阅读理解效果不好,具体可见ymcui/Chinese-XLNet#11

@oyjxer
Copy link

oyjxer commented Oct 21, 2019

这个结果目前看来在ERNIE2.0 base到ERNIE2.0 large之间,在预训练模型里效果算比较好的了。
长度设为256依靠划窗可以跑,但是效果会有一点下降

划窗具体怎么操作?@ewrfcas

@ahzz1207
Copy link

这个结果目前看来在ERNIE2.0 base到ERNIE2.0 large之间,在预训练模型里效果算比较好的了。
长度设为256依靠划窗可以跑,但是效果会有一点下降

划窗具体怎么操作?@ewrfcas

插个眼..同好奇

@ewrfcas
Copy link
Author

ewrfcas commented Oct 30, 2019

划窗可以参考google官方squad代码,或者https://github.com/ewrfcas/bert_cn_finetune/blob/master/preprocess/cmrc2018_preprocess.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants