返回列表

14th Place Solution : pretrained with pseudo labels

485. NBME - Score Clinical Patient Notes | nbme-score-clinical-patient-notes

开始: 2022-02-01 结束: 2022-05-03 临床决策支持 数据算法赛
第14名方案:使用伪标签进行预训练

第14名方案:使用伪标签进行预训练

作者: chumajin (Grandmaster) 及队友 @harshit92, @laplaceplanet, @xbustc
比赛: NBME - Score Clinical Patient Notes
成绩: Private Rank 14th

首先,我要感谢 Kaggle 和竞赛主办方举办了如此有趣的比赛。
其次,我要感谢我的队友 @harshit92@laplaceplanet@xbustc。能和你们在一个团队真是太棒了。

1. 总结

1.1 我们解决方案的主要部分是使用伪标签进行预训练。

1.2 伪标签不仅用于 1.1,还用于增加训练数据。

1.3 提交策略:

  • 我们选择了 LB 最高的第一次提交。
    (公开分 0.893:公开排名第 10,但私有分 0.892)
    这个公开排名更好,但以下第二次提交的私有排名更好:

  • 我们选择了 CV 最高的第二次提交。
    (公开分 0.893:私有分 0.892 (私有排名第 14)。
    相信 CV 非常重要。

该策略参考了 @cdeottePetFinder 方案

最终提交模型(第二个):集成权重均为 0.25。
- deberta v3 large (使用伪标签预训练) lb 0.889
- electra (使用伪标签预训练) lb 0.886
- deberta v3 large (使用伪标签增加训练数据) lb 0.888
- deberta v1 xlarge (使用伪标签预训练 & 使用伪标签增加训练数据) lb 0.889

------------------详情如下-------------

2. 模型构建

我的模型主要通过合并 @abhishek 在 Feedback 比赛中制作的 代码@yasufuminakama代码 来创建。
主要技巧如下:

  • mixup @shujun717 代码
  • 随机掩码
  • 多样本 Dropout (multi sample drop out)
  • 一个 epoch 内进行 5 次验证
  • 8bit adam @nbroad 代码
  • 梯度检查点
  • 在主干网络 和头部 之间改变学习率
  • 不使用分词器函数的 maxlen。(只需在每个 batch 中对齐大小)
  • 按句子长度对验证数据进行排序

我们不使用伪标签的最佳模型是 deberta v1 xlarge 公开 lb 0.887,deberta v2 xlarge 0.887。

3. 伪标签

同比赛其他方案