644. WSDM Cup - Multilingual Chatbot Arena | wsdm-cup-multilingual-chatbot-arena
首先,感谢组织团队、我的队友 Michael 以及其他参赛者让这次挑战充满乐趣,下次见 ˙ᵕ˙
我们的解决方案融合了 @sayoulala 的蒸馏方法和 @tascj0 的推理方法(参考上次竞赛的 第一名 和 第二名 解决方案),并使用 Qwen2.5-14B-Instruct 作为基座模型。
我们使用默认的 ForSequenceClassification 模型,包含两个输出类用于二分类。对于输入,我们将提示词(prompt)和两个回复拼接在一起,如果格式化后的样本超过最大长度,则按比例从中间截断。对于训练,我们在单个梯度步中包含两种回复顺序。
我们在以下数据集上预训练 Qwen2.5-14B-Instruct(学生模型)和 Qwen2.5-72B-Instruct(教师模型):
对于两个模型,我们都使用 DeepSpeed ZeRO3 进行全参数微调。所有实验的学习率调度都有 50 个预热步,随后线性衰减到峰值学习率 (4e-6) 的 10%。我们将两者的梯度裁剪阈值增加到 64.0(正如上次竞赛的 第二名 和 第三名 解决方案中所 noted 的那样)。
我们从预训练的 Qwen2.5-72b-Instruct 开始,在以下数据集的 5 个折(folds)上进一步训练 5 个教师模型:
在过滤掉平局、多轮回复并去重提示词和回复后,组合数据集共有 80k 个样本。此外,对于教师模型的训练,我们通过在每个回复前添加模型名称来更改输入格式。
使用五个教师模型,我们对上述数据集进行折外软标签(soft label),并人工审查与人类标注分歧最大的样本,以纠正错误标注的配对。此外,我们对以下数据进行了软标签:
最后一个数据集是通过标记复杂度分数(如 Arena-hard 中所做的那样)过滤简单提示词,并选取复杂度分数 ≥ 3 的提示词,同时保持语言分布(50% 非英语)以及提示词领域分布(使用 MT-Bench 的 8 个类别)以镜像竞赛数据集。对于回复,我们使用 vLLM 从以下模型中均匀采样完成内容:
蒸馏使用三个加权损失完成(如果存在原始标签则针对原始标签的 CE,否则为硬标签,以及针对软标签的 KL 和余弦损失)。最终模型是两个模型的线性合并:一个在完整数据上训练,另一个排除最后两个数据集。
对于推理,我们通过适配 previous 第二名 解决方案中针对 Qwen2.5 的代码,使用序列拼接(去填充)。我们进行两次推理 passes:首先使用合并模型在所有样本上推理,然后第二次使用原始模型(在完整数据上训练)仅在 33% 预测最不确定的样本上交换回复顺序进行推理。