返回列表

12th place solution

674. Jigsaw - Agile Community Rules Classification | jigsaw-agile-community-rules

开始: 2025-07-23 结束: 2025-10-23 内容安全 数据算法赛
第 12 名解决方案 - 利用未标记数据改进 Deberta

第 12 名解决方案

利用未标记数据改进 Deberta

作者: losingself (level14taken)
发布时间: 2025-10-24
竞赛排名: 第 12 名

未标记数据已被用于将分数提高至少 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 中所见。

Deberta 训练详情

参考了 这篇指南
两个阶段都有类似的学习率调度器。第一阶段使用带有 pos_weight 的 BCE 损失,训练了 1 个 epoch。

公开 Notebook 中发现的常见错误

是在 T4 GPU 上使用 bf16,这使得运行速度慢了 6 倍。

我感谢 Kaggle 的组织者和社区做出的精彩贡献。

稍后会将代码添加到这里,谢谢。

同比赛其他方案