返回列表

[8th] Qwen3-14B*3 + Llama2-13B*1 + bge-base-en-v1.5

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

开始: 2025-07-23 结束: 2025-10-23 内容安全 数据算法赛
[第 8 名] Qwen3-14B*3 + Llama2-13B*1 + bge-base-en-v1.5

[第 8 名] Qwen3-14B*3 + Llama2-13B*1 + bge-base-en-v1.5

副标题:在 Kaggle 环境中使用 Unsloth 进行 LLM 文本序列分类的高效训练和推理

作者: muyouqian4 (EXPERT)

队友: williamwu88, justforfun44

竞赛排名: 第 8 名

发布时间: 2025-10-24

哇!非常感谢主办方 Competition Host Jigsaw/Conversation AI 和主持人举办的竞赛,在参加前,我对 NLP 几乎一无所知,我从中学习到了很多宝贵的经验。

非常感谢 Kaggle 的良好的讨论社区氛围和无私开源的 Kaggler。

非常感谢我的队友 @williamwu88, @justforfun44 的 valuable suggestion and for sharing experience and effort! 期待下次的愉快合作!

以下所有内容都是在测试时进行的训练和推理。

在无法获得全部 Rule 和数据的情况下,在线学习成为了 Jigsaw 社区的共识。因此,我们认为关键在于,如何在规定的时间限制和显存限制下集成规模更大和数量更多的 LLM 模型。

在 Kaggle 的“严苛”环境下,我们实现了 12 小时内的在 T4*2 上基于 unsloth 的 3 个 Qwen3-14B, 1 个 Llama2-13B 和 2 个 Llama3.1-8B 的高效训练和推理 (QLora)。没有 CV,代码只根据 LB 调整,每次提交 4 个不同种子的相同模型和参数的集成,确保稳定提升而非噪声。LB 是随机划分,55k 的 29% 数据量不算小,mAUC 的评估指标比较稳定,所以我们认为是可以相信 LB 的。

这是最终提交的两个代码的模型组成:

LB=0.933, PB=0.927

种子 (Seed) 模型 (Model)
42qwen3-14b
43qwen3-14b
44qwen3-14b
45llama2-13b
46bge-base-en-v1.5

LB=0.932, PB=0.926

种子 (Seed) 模型 (Model)
42qwen3-14b
43qwen3-14b
44qwen3-14b
45llama2-13b
46llama3.1-8b
47llama3.1-8b

1. 增加分类头:

1. Unsloth 的官方的文本分类的实现是通过 SFT,我们修改成了标准的 AutoModelForSequenceClassification 的分类头,只是更符合习惯,不确定哪个更好。

2. 并行训练,充分利用 T4*2:

我们没有找到 unsloth 官方的并行训练的相关代码,所以是基于常规的并行训练代码进行的修改和适配,有一些坑🕳,如果想修改至其他任务,请注意:

1. QWEN3-14B 模型只能并行训练两个模型而无法使用 8B 模型的 batch*2 的训练,但 8B 模型没有限制,猜测是模型必须同时先加载到 GPU:0 上,如果没有 OOM,然后才分配到两个 GPU 上。我们无法解决该问题。llama2-13B 和其他更小的模型可以并行训练。

2. Unsloth 的初始化必须在训练前。

3. 训练参数优化:

主要是 group_by_length=True,加速了 2 倍

4. 数据集

1. 找出每个 (body, rule) 组合中,出现次数最多的那个标签,去重样本

2. 找到官方的未标注的数据集,我们无法知道 Rule 的正样本标准,但是能找出绝对的负样本,加入训练集

3. 找到官方的未标注的数据集,尝试根据 Rule 加入猜测的正样本,加入训练集,如果 LB 下降则回退

5. 推理

1. 均匀分配数据给两个 GPU,从短至长排序数据,并行推理,加速了 4 倍

2. 注意 GPU:1 必须等待几秒避免冲突

3. 将数据拆分为 3 个桶并分别指定 batch_size 推理,减少推理时间,让我们能再加入一个 8B 模型

6. 集成

1. 全局排名的集成优于规则内排名的集成

7. 什么对我们不起作用

1. 伪标签

2. 训练时模拟 CV

8. 期待其他 kaggler 的无私分享!

同比赛其他方案