463. chaii - Hindi and Tamil Question Answering | chaii-hindi-and-tamil-question-answering
感谢 Kaggle 官方举办了这场精彩的比赛。感谢社区提供了如此多精彩的 Notebook 和讨论。最后感谢我的队友 @guohey 和 @thousandtie 陪伴我度过了这难忘的10天印度之旅。
我们的方案主要围绕这个主题:信任交叉验证(CV),并尽可能融合差异大的模型。
我们找不到融合 Rembert 和 XLMR 的方法,因此决定在最终提交的两个方案中,一个仅使用 Rembert,另一个仅使用 XLMR。
因为我们发现,无论是在 CV 还是 LB(排行榜)上,增加数据都无法提升单模型的性能。
实际上,这有点像一场赌博。在最后两天之前,我们的 LB 分数一直无法超过 0.792 的提交结果。此外,无论我如何将自己的模型与 0.792 的模型进行融合,哪怕只给我的模型很小的权重,结果都比 0.792 差。我计算了 0.792 提交中每个模型的 CV 和 LB 分数,发现 Fold 0 和 Fold 1 的 LB 和 CV 都很差,而后 3 个 Fold 的 CV 和 LB 都很好。然而,如果不使用表现差的前两个 Fold,LB 分数会大幅下降。查看了前两个 Fold 的训练 Notebook 后,我并未发现什么特别之处。
综合考虑上述实验结果和分析,我宁愿相信 0.792 的提交结果过拟合了 LB。因此,与其试图在 LB 上击败公开的 0.792,我选择使用 CV 表现更好的模型进行集成,并祈祷 Private LB(PLB)能出现shake up(排名变动)。
幸运的是,这场赌博赢了。
我们采用了不同的随机种子和不同的数据。
例如,12 折的 Rembert 提交结果由以下模型组成:
我们尝试了其他组合,采样更多外部数据并替换种子 1111 部分的某些折。但这个方案在 LB 上表现最好,所以我们用它作为 Rembert 的最终提交。
我们在 XLMR 中采取了相同的原则,但可能使用了公开 0.792 模型的部分或全部折在我们的 XLMR 集成中,这个策略在 XLMR 上没有奏效。(无论我如何与 0.792 融合,LB 分数都更差。)
我们每次训练不同数据和种子的 5 折模型。获得权重后,我们计算它们的 CV。我们只使用 CV 高于 0.68 的模型进行集成。
我们找不到评估集成提交结果 CV 的方法,因为种子不同,且每个种子只使用了 20%-80% 的模型。
事实上,我们最好的提交 PLB 为 0.760,非常接近金牌区。但它的 LB 分数比我们要好的 0.795 Rembert 提交低,所以我们没有选择它。也许有更好的 CV 策略,我们就有机会获得金牌。
如果你有计算集成输出 CV 的想法,请与我讨论!
感谢阅读,欢迎评论和点赞!