返回列表

14th Place Solution (7th in Public): All We Need is Frequent Checkpointing

616. NeurIPS 2024 - Predict New Medicines with BELKA | leash-BELKA

开始: 2024-04-04 结束: 2024-07-08 药物研发 数据算法赛
第 14 名解决方案(公开榜第 7 名):我们只需要频繁保存检查点
作者: monnu (团队成员:yu4u, monnu)
发布时间: 2024-07-09
竞赛排名: 第 14 名 (公开榜第 7 名)

第 14 名解决方案(公开榜第 7 名):我们只需要频繁保存检查点

祝贺所有获奖者,并感谢组织者举办这场有趣的比赛。
众所周知,共享目标和非共享目标具有完全不同的倾向,因此我们构建了不同的流程。

非共享目标部分 (yu4u)

在非共享目标部分,最重要的观察结果是,非共享目标的验证分数过拟合非常快,甚至在训练的一个 epoch 内就会发生。
因此,我们将验证间隔改为 0.01 个 epoch,结果成功获得了一个不过拟合的检查点。

交叉验证策略 (CV Strategy)

模拟非共享目标的 CV 策略也很重要。
我们使用了 5 折交叉验证策略,其中 BB1、BB2 和 BB3(移除了 BB2 构建块)构建块被分为 5 折。然后我们移除了其他数据,以便训练数据仅包含训练构建块,验证数据仅包含验证构建块。
我们在此处发布了生成 CV 折的 notebook:这里

模型

ChemBERTa-77M-MTR

训练

  • 5 折交叉验证。
  • AdamW 优化器,LR=1e-3 (固定), weight_decay=1e-5, batch_size=512。
  • 训练一个 epoch,每 0.01 个 epoch 间隔验证一次。

选择最佳检查点

  • 我们发现某些折的 TP 分布与整个训练数据不同,因此我们只使用了与整个训练数据具有相似 TP 分布的 fold0 和 fold2。
  • 在我们的训练中,我们甚至没有完成一个 epoch 的学习,因此单次训练运行中有些数据未被使用。通过使用多个种子(每折 11 个种子)进行训练,我们利用了所有数据。
  • 最后,我们排除了 CV 分数极低的种子,并使用 19 个模型的集成作为最终结果。
  • 在选择最佳检查点时,我们使用了两种策略:(1) 基于三个目标的平均分数选择单个检查点,(2) 基于每个目标的分数选择三个检查点。在私有榜分数中,前一种策略更好。

共享目标部分 (monnu)

主要策略是通过连接 ECFP 的特征来改进公开 1DCNN 模型
作为一个选项,我们还训练了带有 ChemBERTa 额外特征的模型。

交叉验证策略

  • 我们使用了 5 折分层 K 折 (Stratified Kfold) 分割。
  • 我们在此处发布了生成共享目标 CV 折的 notebook:这里

预处理

  • ECFP:使用 rdkit。r = 4, bit = 2048 或 3072
  • 1DCNN:将 SMILES 字符串编码为数值并转换为固定长度的向量
  • chemberta_feature (可选):使用 ChemBERTa 模型推断 SMILES 字符串,并使用 384 维输出作为特征。

模型

  • SMILES 通过嵌入层, followed by 4 层一维卷积 (1D convolution)
  • ECFP 通过全连接层 (FC layer) 到 128 维
  • 上述输出被连接并通过全连接层输出 3 个目标的二分类分数
  • 可选地,ChemBERTa 的 384 维输出可以通过全连接层然后连接

训练

  • 5 折交叉验证。
  • AdamW 优化器,LR=1e-3, weight_decay=0.05, batch_size=4096。
  • num_epochs=25

分数

训练模型的分数如下:

模型名称 ECFP ChemBERTa 特征 CV 公开榜 (mask noshare)
exp031 r=4, bit=2048 0.6589 0.352
exp032 r=4, bit=2048 0.65934 0.351
exp039 r=4, bit=3072 0.66001 0.350
平均集成 - - - 0.352

最后,我们提交了平均集成模型。

同比赛其他方案