返回列表

28th Place Solution

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

开始: 2022-02-01 结束: 2022-05-03 临床决策支持 数据算法赛
第28名解决方案
作者:Trushant Kalyanpur | 比赛排名:第28名 | 发布时间:2022-05-04

第28名解决方案

感谢 Kaggle 和比赛主办方设计了这么棒的 NLP 比赛。这篇文章总结了 Y3S 队的努力,与我的队友 @sgalib@syhens@smnomaan 一起合作是一次很棒的经历!这是我们团队共同努力的总结。

尽管我们受到了榜单震动的影响,从第11名的金牌位置跌落,但这仍是一次很好的学习经历。

数据

我们意识到伪标签在本次比赛中将是一个重要的部分,因此我们花费了大量时间,采用两阶段方法来获取高质量的伪标签。第一组伪标签基于我们最好的 deberta-v3-large 模型。我们使用这些伪标签在 5 个折上训练了许多模型,然后使用模型集成来进一步改进伪标签。我们只使用每个折的模型来生成伪标签,以避免泄露。这种方法显著提高了 CV 和 LB 分数(+0.002)。例如,roberta-large 通过这种两阶段方法和 20% 的采样伪标签,LB 分数达到了 0.890。

模型

我们的团队致力于训练不同的架构和不同的训练流程,包括:

  • 对抗训练 (AWP)
  • 针对特定模型的 LSTM 头

大多数模型的 5 折平均 CV 分数为 0.891x,因此我将列出 LB 分数:

模型 Public LB Private LB
Derberta-v3-large 0.891 0.892
Derberta-v2-xlarge 0.891 0.890
Derberta-v3-base 0.890 0.890
roberta-large 0.890 0.889
longformer-large 0.890 0.889
electra-large 0.890 0.890

令人惊讶的是,我们甚至可以使用简单的 deberta-v3-base 模型在 LB 上获得 0.890 的分数!

后处理

我们基于 OOF 预测的误差分析添加了一些自定义后处理:

  • 如果跨度长度小于基于训练数据的该特征数的最小长度,则删除该跨度。
  • 根据预测文本是否有效(非空格等)修改起始位置。

后处理使我们的 CV 和 LB 提升了 +0.001

模型集成

我们使用了类似于公开方法的字符级平均。我们开发了一种更快的集成版本,允许我们集成 5-6 个 5 折(共 25-30 个)base/large/xlarge 模型。权重基于 OOF CV 通过 Optuna 进行优化。

最终选择

我们的最终选择是多样化模型的集成:

debv2-xl + debv3-large (awp) + debv3-large (no awp) + longformer-large (lstm head) + roberta-large + debv3-base 平均 CV 0.8947

对我们无效的方法

  • 不同的集成技术,如投票法。
  • 后处理技术,例如如果跨度与所有训练数据(包括伪标签数据)的文本相似度低于 X% 阈值则删除该跨度——虽然这在 CV 上显示出良好的改进,但在 LB 上无效。

期待下一个挑战!

同比赛其他方案