返回列表

Private 7th (Public 10th) Place Solution

673. MAP - Charting Student Math Misunderstandings | map-charting-student-math-misunderstandings

开始: 2025-07-10 结束: 2025-10-15 个性化学习 数据算法赛
私有榜第 7 名(公开榜第 10 名)解决方案

私有榜第 7 名(公开榜第 10 名)解决方案

作者: yukichi0403 (代表团队)

发布日期: 2025-10-17

团队成员: @yukitake93, @isakatsuyoshi, @takai380, @sinchir0, @takaito

首先,我们要向组织者和 Kaggle 表示最深深的感谢。这次比赛对我们团队来说是一次不可思议的学习经历。

概述

  • 直接 Logit 训练: 将 token 分配给误解标签,并使用 CrossEntropy 损失直接在提取的 logits 上进行训练
  • vLLM 集成: 虽然测试了具有相似分数的分类头,但我们选择了基于 logit 的方法以获得最佳的 vLLM 推理性能
  • 集成策略: 结合了具有不同模型和提示策略的多个管道

加速技巧

1. 合成数据生成 (主要由 ISAKA 完成)

为了提高模型准确性,我们使用 GPT-4.1 和 GPT-5-mini 生成了合成数据。

合成数据生成方法:

  • 从原始训练数据集中提取满足特定条件的数据:具有相同“正确标签 (True/False)"、“问题 ID"和“误解”的 5 个以上数据点组
  • 从每组中随机采样 3 个条目作为参考,以生成新的“学生解释”
  • 使用 3 个不同的条目创建了更多样化且更高质量的合成数据(避免过拟合单个示例)

生成版本:

  • ver2-46: 由 GPT-4.1 生成
  • ver47-56: 由 GPT-5-mini 生成
  • 数据集 available 在此处

评估结果:
使用 Chris Deotte 的 notebook "Gemma2-9B-it - CV 0.945" 作为基准。
合成数据集结果

使用合成数据的改进:

  • CV 分数: +0.003 到 +0.004
  • LB 分数: +0.002 到 +0.005

重要说明:
这些改进 specifically 是在 Gemma2-9B-it + OOF 预测中观察到的。其他模型显示出混合结果,表明模型特定的适应对于有效利用合成数据至关重要。

2. 误解候选过滤

  • 利用每个问题预定的 incorrect answer 候选项
  • 仅将相关的误解候选项添加到提示中 → 显著减少了提示长度

3. 噪声缓解和标签质量增强

  • 标签平滑: 为 select 模型的损失函数添加 α=0.1 以处理噪声标签
  • 知识蒸馏: 在竞争数据上训练 Qwen2.5-32B 并使用输出作为软标签(而不是直接使用合成数据的生成标签)

4. 预识别正确答案

  • 正如 此讨论 中所分享的,训练和测试数据共享相同的 15 个问题
  • 仅专注于预测误解,在后处理中添加 True/False 标签

5. 提示中的替代答案选项

  • 添加同一问题中的其他 MC 答案选项(排除学生选择的答案)以提供额外上下文

未生效的方法

动态集成权重调整 (主要由 takaito 完成)

  • 尝试动态调整每个问题的集成模型权重
  • 由于计算限制,仅限于 fold0 CV
  • 数据不足可能导致性能不佳
  • 多折 CV 可能会改善结果

小模型添加 (主要由 takaito 完成)

  • 准备了轻量级模型(预测仅需几分钟)
  • 添加到集成时没有改进

管道细节

管道 1 (yukichi)

数据策略:

  • 竞争数据 + ISAKA 的合成数据 (使用 v2-13)
  • 两种提示类型:
    • 类型 1: 相关误解候选项 + 使用 Claude Sonnet 逆向工程的解释(基于实际学生响应模式为每个误解生成详细解释)
    • 类型 2: 完整误解目录

模型架构:

模型 提示 公开榜最佳 私有榜
Gemma-2-9B-IT 2 0.950 0.946
Qwen2.5-32B (AWQ) 2 0.950 0.947

集成结果: 公开榜 LB 0.952, 私有榜 0.948🎯

蒸馏策略:

数据类型 策略
竞争 原始标签 (50%) + Qwen2.5-32B OOF (50%)
外部 仅 Qwen2.5-32B logits

正则化:

  • Gemma2-9B: 标签平滑 (α=0.1) + Temperature 1.5
  • Qwen-32B: 无平滑 + Temperature 1.0

管道 2 (takai)

数据策略:

  • 竞争数据 + ISAKA-san 的合成数据
  • 通过 Claude Sonnet 预生成的误解候选项

模型:

  • deepseek-ai/DeepSeek-R1-Distill-Qwen-32B (公开榜最佳 :0.950, 私有榜:0.945)
  • 通常在数据集上运行按折训练的模型推理,并使用输出作为软标签。
  • 在外部数据(仅使用 OOF top-1 预测与标签匹配的项目)加上竞争数据上使用 CE_loss + KL_div_loss 训练 (公开榜:0.95, 私有榜:0.945)。
  • 在竞争数据上使用 CE_loss + KL_div_loss 训练 (公开榜最佳:0.948, 私有榜:0.943)。

管道 3 (sinchir0)

基本上,我使用 我的公开 notebook 中的代码进行训练。

导致改进的关键因素

  • 不使用添加的特殊 token,而是使用现有 token 作为正确答案。(CV+0.005, LB+0.005)
  • 不使用 eval_loss 最低的 checkpoint,而是使用稍后的 checkpoint。(CV+0.008, LB+0.007)

数据策略:

  • 仅竞争数据
  • 仅潜在误解选项
  • GPT-5 生成的候选误解解释

模型:

  • Qwen/Qwen3-8B (公开榜最佳:0.948, 私有榜:0.945)
  • 全量训练 + 全量微调
  • lr: 2e-5 (1e-4 导致收敛问题)
  • 3 epoch

关键收获

  • 合成数据的有效性高度依赖于模型
  • 提示工程和候选过滤对效率至关重要
  • 结合蒸馏与标签平滑可有效处理噪声数据
  • 预识别正确答案消除了一种错误来源

感谢阅读我们的解决方案!

同比赛其他方案