632. Eedi - Mining Misconceptions in Mathematics | eedi-mining-misconceptions-in-mathematics
首先,感谢 Kaggle 组织者和我的队友。
我将简要分享我们的解决方案。
我们的流程主要遵循 flagembedding https://github.com/FlagOpen/FlagEmbedding。它可分为 2 个阶段:检索和重排序。
@sayoulala : https://www.kaggle.com/competitions/eedi-mining-misconceptions-in-mathematics/discussion/543519 感谢分享,我们的流程设计很大程度上来源于此。
除了训练数据,我们还使用了来自讨论区的外部数据 https://www.kaggle.com/competitions/eedi-mining-misconceptions-in-mathematics/discussion/533764 和 https://www.kaggle.com/competitions/eedi-mining-misconceptions-in-mathematics/discussion/541222,感谢分享。为方便起见,我们将它们称为 ext1 和 ext2。
我们将训练过程分为 3 个阶段。首先,我们使用 ext1 训练模型,然后使用 ext2 训练模型,最后使用训练数据进行训练。
我们观察到,可能 ext1 含有噪声,因此当我们使用 ext1+ 训练数据训练模型时,性能不如 2 阶段训练。对于 ext2,由于缺乏构造名称和主题名称,我们继续使用多阶段训练策略。
我们从上述三个阶段分别获得了三个训练好的检索模型。然后,我们使用这三个模型分别为 ext1、ext2 和训练数据创建硬负样本数据。接着,我们也将重排序的训练过程分为 3 个阶段,在每个阶段我们使用对应的硬负样本数据进行训练。
当我们训练检索的第 3 阶段时,我们使用跨设备负样本(negative cross device)来增加每个正样本的负样本数量。使用该方法后,公开榜分数从 0.567 提升到 0.574。
我们使用 Qwen2.5-32B 进行检索和重排序。由于限制,我们在推理时只重排序前 18 个结果。
| 模型 | 公开榜分数 |
|---|---|
| 检索 | 0.582 |
| 检索 + 重排序 | 0.623 |
主要训练代码提供在 https://github.com/MilchstraB/Eedi