674. Jigsaw - Agile Community Rules Classification | jigsaw-agile-community-rules
利用未标记数据改进 Deberta
未标记数据已被用于将分数提高至少 0.012。在早期的一次探查中,我发现只有不到 0.5% 的测试正文值不属于 这个数据集。随后,通过从最好的公开可用 LLM 集成 获取预测值来利用这一点。然后使用该数据集通过软标签预训练 deberta-base 模型。这使得分数从 0.912 提高到了大约 0.924,使用 2 个随机种子仅需约 1 小时即可提交。
该分数是使用 Deberta large 而不是 base 进行相同操作得到的,并与 带有 8 倍增强的 triplet 模型(公开分数 0.907)和 使用 fp16 的 llama 3b 模型(公开分数 0.920)进行集成,这些公开 Notebook 略有改进。
预训练数据的采样是通过交互式 Claude 代码完成的,只是从 subreddit 中选取 100 行,看看是否违反了规则,由 Claude 自行判断,并对所有 6 条规则执行此操作。如果违规率低于 1%,则省略这些 subreddits,否则保留,这样我们从所有可能的规则 - 正文组合的 1200 万行数据中获得了 80 万个点。
我尝试通过数据变体来提高分数,但没有成功,选取(<1% subreddits)数据似乎损害了模型的性能,所以被排除了。仅选取长度 >50 字符的正文似乎损害了排行榜 (LB) 分数,因此被忽略。
当前分数是在不到 6 小时内获得的。所以肯定有进一步改进的空间。尝试利用手头的额外 6 小时让另一个 LLM 进行测试时训练 (Test Time Training),但找不到时间获得好的超参数或进行更多实验,我真的相信这可以做得很好,因为带有测试时的 LLM 显示出非常好的进展,正如 llama 3b 公开 Notebook 中所见。
参考了 这篇指南。
两个阶段都有类似的学习率调度器。第一阶段使用带有 pos_weight 的 BCE 损失,训练了 1 个 epoch。
是在 T4 GPU 上使用 bf16,这使得运行速度慢了 6 倍。
我感谢 Kaggle 的组织者和社区做出的精彩贡献。
稍后会将代码添加到这里,谢谢。