返回列表

9th Place Solution: Bringing It All Together

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

开始: 2025-07-23 结束: 2025-10-23 内容安全 数据算法赛
第 9 名解决方案:汇聚众长

第 9 名解决方案:汇聚众长

仅限测试时训练

作者: lllleeeo, mango
发布日期: 2025-10-24
竞赛排名: 第 9 名

首先,我们要感谢组织者举办了如此精彩的 LLM 竞赛。其次,本解决方案主要建立在五个优秀的公开 Notebook 之上。非常感谢作者们分享这些想法。链接见底部。

概述

解决方案包含三个主要部分:生成模型、分类模型和基于 Faiss 的检索。


第一部分:生成模型

这部分基于 @wasupandceacar 分享的生成式测试时训练方法。我们对该公开 Notebook 做了以下改进:

  • 将 Llama 3.2 3B 替换为 Qwen3-4B-Instruct-2507,仅使用 5% 的测试数据,公共榜 (LB) 分数从 0.916 提升至 0.919
  • 使用 Unsloth 优化测试时训练,将提交时间从 7.5 小时(双 GPU)减少到 2.5 小时(单 GPU),公共榜 (LB) 分数从 0.919 提升至 0.920
  • 移除了 subreddit 信息,因为在测试集示例训练时它引入了纯噪声,将提交时间从 2.5 小时减少到 2.1 小时,公共榜 (LB) 分数从 0.920 提升至 0.922

替代训练数据的探索:

当我们尝试调整使用的测试数据时,发现生成模型对数据量极其敏感,这可能是由于重复示例和噪声数据造成的。为了避免对公共榜过拟合,我们探索了更稳定的方法(事实证明在私有榜公布后这些方法次优)。

由于原始训练数据构建无法确保所有示例都作为正文训练,我们使用了所有去重后的示例,并为每个示例随机匹配正/负样本以增加多样性。

将这些新训练的模型与原始模型集成后结果如下:

模型 运行时间 (小时) 公共榜 (LB) 私有榜 (PB)
Qwen3-4B-Instruct-2507 3.0 0.924 0.918
Llama 3.2 3B 2.5 0.923 0.916
Phi-3.5-Mini-Instruct 3.5 0.918 0.913

*集成这三个模型后,公共榜 (LB) 得分为 0.930(私有榜 PB 0.924),运行时间为 9 小时。


第二部分:基于 DeBERTa 的分类模型

这部分建立在 Team U DONNO WHO 和 DLH 分享的 DeBERTa 分类方法之上。我们实施了几项优化:

模型架构与训练:

  • 对分类头应用 2 倍学习率以加快收敛
  • 实施 mean pooling 代替 CLS token pooling 以获得更好的表示
  • 在不同层之间使用判别式学习率 (LLDR)

模型性能:

模型 运行时间 (小时) 公共榜 (LB) 私有榜 (PB)
DeBERTa-v3-base 0.5 0.909 0.902
E5-base 0.5 0.910 0.904
MPNet-base 0.5 0.906 0.900

*这三个模型的最终集成公共榜 (LB) 得分为 0.921(私有榜 PB 0.913),运行时间为 1.5 小时。


第三部分:带有 Triplet Loss 和检索的 BGE 模型

这部分基于 Aurora Rabbit 和 Ertuğrul Demir 分享的用于训练 BGE 模型的 triplet loss 方法。
我们的改进:

在推理阶段集成了单质心 (single centroid) 和 UMAP 聚类方法

*最终模型公共榜 (LB) 得分为 0.909(私有榜 PB 0.904),运行时间为 1.5 小时。


最终提交

我们提交了两种不同的集成策略进行最终评估。

对于每个部分,模型首先在内部集成,然后在每个部分内进行排名归一化,最后使用加权平均组合。

基于公共榜 (LB) 性能,最终集成权重设置为 0.7 × 第一部分 + 0.25 × 第二部分 + 0.05 × 第三部分

提交 1:

  • 使用双 GPU (T4 x 2) 并行训练四个生成模型:Qwen3-4B-Instruct-2507, Llama 3.2 3B, Phi-3.5-Mini-Instruct 和 Qwen2.5-7B-Instruct
  • 每个模型使用不同的随机种子
  • 将这些生成模型与第二部分和第三部分的模型集成
  • 运行时间:9 小时
  • 公共榜 (LB): 0.933 | 私有榜 (PB): 0.927

提交 2:

  • 使用三个生成模型:Qwen3-4B-Instruct-2507, Llama 3.2 3B 和 Phi-3.5-Mini-Instruct
  • 每个模型在两种不同的训练数据配置上训练并进行自集成(共六个模型)
  • 将这些生成模型与第二部分和第三部分的模型集成
  • 每个模型使用不同的随机种子
  • 运行时间:11 小时
  • 公共榜 (LB): 0.933 | 私有榜 (PB): 0.926

无效尝试

  • 两阶段训练
  • 正/负示例的语义匹配
  • 特定规则提示 (Rule-specific prompt)
  • 标签平滑 (Label smoothing)
  • 基于 Logit 的集成
  • 层冻结 (Layer freezing)
  • CLS、mean pooling 和 max pooling 的 SENet 融合
  • 基于规则的集成权重
同比赛其他方案