674. Jigsaw - Agile Community Rules Classification | jigsaw-agile-community-rules
首先,我要感谢组织者举办了如此精彩的 LLM 竞赛。还要特别感谢我的老师 @justmarkham - 您的在线数据科学教育 invaluable,没有您我不可能做到这一点。
对于这次比赛,我微调了 Qwen3 家族的 3 个 LLM 用于文本分类,使用深度相互学习 (Deep Mutual Learning, DML),并应用加权集成来提高鲁棒性和稳定性。
测试正负样本及其规则用于训练,并格式化为以下提示模板:
prompt = f"""<|im_start|>user
You are given a Reddit comment and a specific subreddit rule. Your task is to decide if the comment violates the rule. Respond only with "Yes" or "No".
Rule: {RULE_HERE}
Now, here is the comment to classify:
"{COMMENT_HERE}"
Answer "Yes" if it violates the rule, otherwise "No".<|im_end|>
<|im_start|>assistant
<think>
</think>
Answer:"""
Qwen3-14B 和 Qwen2.5-14B-InstructQwen3-14B, Qwen3-8B, 和 Qwen3Guard-Gen-4B在测试样本上训练单个 Qwen3-14B,快速得到:
| 模型 | 公开分数 (Public Score) | 私有分数 (Private Score) |
|---|---|---|
| Qwen3-14B | 0.925 | 0.921 |
论文:Deep Mutual Learning (arXiv:1706.00384)
由于只有 2 块 T4 GPU,使用更大的教师模型来提升 14B 模型的性能是不可行的。离线蒸馏可以尝试,但它只覆盖了训练集中 6 个已知规则中的 2 个。为了获得最佳整体分数,知识蒸馏需要包含所有规则。
基于 logits 的经典知识蒸馏在这次比赛中提出了挑战,因为教师的 softmax 输出极其尖锐,几乎与 one-hot 标签相同。应用温度缩放来软化它们效果不佳。
在这些约束下,更实用的方法是深度相互学习 (DML),这是一种在线蒸馏方法,其中多个相似或更小规模的 peer 学生模型同时相互学习。这使得无需更大的教师模型即可实现有效的知识转移,只需在标准分类交叉熵中添加 Kullback-Leibler (KL) 散度损失。
DML 的优势在于它消除了对更大更强教师模型的需求,允许模型相互学习对方的软预测而不是硬标签。这个过程丰富了监督信号,增加了隐式正则化,并鼓励更平滑的决策边界。每个 peer 模型有效地从其他模型共享的知识中获得额外容量,从而导致更稳定的优化和更好的泛化能力。这使得 DML 在 LLM 竞赛或现代工业环境中特别有价值,在这些环境中,硬件限制通常阻止训练或部署大型教师模型,然而有效的知识转移和鲁棒性能仍然至关重要。
Peer 学生:Qwen3-14B, Qwen2.5-14B-Instruct
| 训练类型 | 模型 | 公开分数 | 私有分数 |
|---|---|---|---|
| 独立训练 | Qwen3-14B | 0.925 | 0.921 |
| 独立训练 | Qwen2.5-14B-Instruct | 0.923 | 0.919 |
| DML | Qwen3-14B | 0.929 | 0.925 |
| DML | Qwen2.5-14B-Instruct | 0.929 | 0.924 |
| 集成类型 | 公开分数 | 私有分数 |
|---|---|---|
| DML 模型 | 0.932 | 0.9271 |
| 独立训练模型 | 0.929 | 0.925 |
DML 一致地提高了 Qwen3-14B 和 Qwen2.5-14B 的性能,在私有分数和集成结果上有显著增益,证明了其在提升模型泛化能力方面的有效性。
虽然 DML 为每个模型增加了额外容量,但其协同训练过程可能会引入模型错误的相关性。由于多样性对于强大的集成至关重要,在截止日期前 2 天,我决定为 DML 创建一个 3 模型 cohort。这种方法增强了集成多样性,并进一步帮助减轻每个"peer"模型的一次性错误。
3-peer 集成的性能
Peer 学生:Qwen3-14B, Qwen3-8B, Qwen3Guard-Gen-4B
| 公开分数 | 私有分数 |
|---|---|
| 0.93237 | 0.92781 |