caishiqing / joint-mrc

机器检索阅读联合学习,莱斯杯:全国第二届“军事智能机器阅读”挑战赛 rank6 方案
126 stars 25 forks source link

数字类answer效果不好 #6

Closed FankLi closed 4 years ago

FankLi commented 4 years ago

你好,麻烦请教一下,用了你的架构在自己数据集上进行了训练,但是数据类的answer效果很不好,acc不到50%,请问会是什么原因造成的呢?

例子: context:'2020.10.18的贷款利率是5.88%,这是最新的利率...',question:'贷款利率是多少?',answer:'5.88%'

模型预测的答案虽然是数字,但不是5.88%,结果可能是2020,可能是18,等等

是因为tokenizer.tokenize把5.88%分开了吗?但是answer_start是在5上,answer_end是在%上

caishiqing commented 4 years ago

你好,麻烦请教一下,用了你的架构在自己数据集上进行了训练,但是数据类的answer效果很不好,acc不到50%,请问会是什么原因造成的呢?

例子: context:'2020.10.18的贷款利率是5.88%,这是最新的利率...',question:'贷款利率是多少?',answer:'5.88%'

模型预测的答案虽然是数字,但不是5.88%,结果可能是2020,可能是18,等等

是因为tokenizer.tokenize把5.88%分开了吗?但是answer_start是在5上,answer_end是在%上

你好,感谢关注。 你的例子中说answer_start是在5上,answer_end是在%上,是观察过输出结果的指针位置吗?

FankLi commented 4 years ago

是标柱的位置

FankLi commented 4 years ago

是标柱的位置

caishiqing commented 4 years ago

那就是预测结果不准,可能原因是你的个人数据集太小,泛化能力不足,如果是在如 WebQA 或 CMRC 数据集上训练的模型应该足以应对你这个实例。 近期项目会迁移到 tf2 上,会有所优化。

FankLi commented 4 years ago

我的模型训练数据包括了WebQA,CMRC,Les-simple和个人数据集,但个人数据集contence非常长,平均4w+字数,负样本远多于正样本,应该是需要采用你提出的多阶段检索,这一步在代码层面具体怎么操作呢?是我自身还没有太看明白,可以和这个问题一起回答一下吗,非常感谢 https://github.com/caishiqing/joint-mrc/issues/4#issue-723905299

caishiqing commented 4 years ago

多阶段的话需要将项目跑两次,并且将第一次的模型放到config.retrieve_dir目录下,第二次预处理时会生成第一阶段模型过滤后的样本。 近期项目会更新并迁移到 tf2 上,并整合单阶段与多阶段流程。

FankLi commented 4 years ago

好的,非常期待,感谢回复

FankLi commented 4 years ago

好的,非常期待,感谢回复

FankLi commented 4 years ago

----第二次预处理时会生成第一阶段模型过滤后的样本

两次生成的样本文件大小一样,是正常吗?

caishiqing commented 4 years ago

不正常。确保把第一阶段的模型放到 config.retrieve_dir 目录下