返回列表

14th place submission

463. chaii - Hindi and Tamil Question Answering | chaii-hindi-and-tamil-question-answering

开始: 2021-08-11 结束: 2021-11-15 自然语言处理 数据算法赛
第14名方案分享

第14名方案分享

作者:Adam Montgomerie (Master)
比赛排名:第14名

我有点沮丧,因为我有一个0.768的解决方案没有提交,这正好是金牌和银牌的差距。不过我还是很高兴能获得我的第二枚比赛奖牌!

在SQuAD上进行微调

我想其他一些解决方案已经提到了这一点,但MuRIL和RemBERT都在SQuAD上进行微调后,再在比赛数据上微调,效果都有显著提升。这似乎是一个相当明显的尝试,因为大家作为基线的XLMR检查点也曾在相同数据上进行了微调。我对所有的MuRIL和RemBERT模型都使用了这种方法。

Torchscript

我将所有模型导出为torchscript,这稍微加快了我的推理速度。我能够集成20个折,但还不足以在时间限制内塞进25个折。我也尝试过导出到ONNX,但这完全没有给我带来任何加速。这是我第一次使用torchscript或ONNX,所以我确信还有很多额外的优化可以做。

那个未提交的0.768方案

那个我没提交的方案是10折MuRIL-large-cased和10折RemBERT。这些模型实际上也是我交叉验证(CV)分数最好的,但公共排行榜分数很平庸,所以我愚蠢地忽略了它们。当我计算它们的袋外(OOF)分数时,我注意到虽然它们的CV分数非常相似(MuRIL为0.722,RemBERT为0.719),但在每种语言上的表现却截然不同:

MuRIL RemBERT
OOF 总分 0.722 0.719
OOF 印地语 0.782 0.753
OOF 泰米尔语 0.601 0.652

MuRIL更擅长回答印地语问题,而RemBERT在泰米尔语方面要好得多,所以在推理时,我只是按语言划分预测,将印地语问题交给MuRIL,将泰米尔语问题交给RemBERT。最终预测是每个模型10折的平均值。

我还有另一个包含这两个模型的提交方案,我分别生成每个折的预测,然后让折对答案的起始和结束位置进行投票。那个也没有提交,但分数会是0.765。

实际提交的第14名方案

在这次比赛中,我在5折和10折策略之间切换了几次。我最终使用了5折,因为我担心使用10折模型无法为我的集成提供足够的多样性。10折也确实减慢了完成一次训练运行所需的时间。

我最终0.758的解决方案是3组5折MuRIL和1组5折XLMR。不同的MuRIL检查点都在略有不同的数据上进行了训练:

  • MuRIL 1:在SQuAD上微调 -> 在比赛数据 + MLQA印地语 + XQUAD印地语上微调
  • MuRIL 2:在SQuAD上微调 -> 在比赛数据 + MLQA(印地语和英语) + XQUAD印地语上微调
  • MuRIL 3:在SQuAD上微调 -> 在比赛数据 + Google翻译的泰米尔语SQuAD样本 + MLQA印地语 + XQUAD印地语上微调

最终的集成包含这些模型,它们的折以几种不同的方式进行了平均。平均后的预测然后通过对起始和结束位置进行投票来合并。

感谢这次愉快的比赛!

同比赛其他方案