返回列表

10th solution private 0.61 : TNT/VIT/CAIT ensemble + tricks

442. Bristol-Myers Squibb – Molecular Translation | bms-molecular-translation

开始: 2021-03-02 结束: 2021-06-03 药物研发 数据算法赛
第10名方案 私有榜 0.61 : TNT/VIT/CAIT 集成 + 技巧

第10名方案 私有榜 0.61 : TNT/VIT/CAIT 集成 + 技巧

作者: hengck23 (Grandmaster) | 比赛排名: 第10名 | 发布日期: 2021-06-04

待更新....

方案主要分为两部分:

  • 第一部分: TNT/VIT/CAIT 集成模型 (公开/私有 LB 0.71/0.71)
  • 第二部分: OCR + MolBuilder + 目标检测 CNN (公开/私有 LB 0.62/0.61)

TNT/VIT/CAIT 集成模型 (公开/私有 LB 0.71/0.71)

  • 我们训练了 5 个模型:3 个基于 Patch 的 VIT(Patch 大小为 16,图像缩放比例 = 0.8, 0.9, 0.1),1 个图像大小为 384 的 TNT,以及 1 个图像大小为 240 的 CAIT。详情请参考相关讨论链接。
    (本地 CV 0.78)
  • 我们进行了 5 次图像扰动迭代。如果一张图像生成了无效的 InChI(通过 rdkit 验证),我们会扰动该图像并再次尝试推理。
    (本地 CV 0.76)
  • 最后,我们应用 rdkit 标准化。
    (公开/私有 LB 0.73/0.74, 本地 CV 0.72)

该集成模型是我们得分最高的提交。我们也有针对每个单独模型的提交。然后我们按 LB 分数对所有提交的 CSV 文件进行排序。创建最终提交的步骤如下:

  • 1. 我们从得分最高的提交 CSV 中的预测结果开始。
  • 2. 对于当前预测为无效 InChI 的情况,如果(且仅当)下一个得分较高的提交 CSV 中对应的预测是有效的,则用其替换当前预测。
  • 3. 对所有 CSV 重复此过程。
    最终 LB 分数为 (公开/私有 LB 0.71/0.71, 本地 CV 0.70)
模型结果图

我们使用随机平移和缩放来扰动图像。


关于集成策略的技巧

集成策略图

我们注意到 LB 分数与无效 InChI 的数量(通过 rdkit 验证)相关。如果你的无效 InChI 越少,你的 LB 分数可能就越好。

与其进行多次提交,你可以利用无效 InChI 的数量来估算你的 LB 分数。要想知道当前方法的 LB 分数极限,你可以将图表外推至可能的 InChI 数量最低点。如果效果不佳,你可以改变集成策略,使图表斜率更陡峭(即每个无效 InChI 对应更好的 LB 分数)。


致谢

非常感谢 Z by HP 和 NVIDIA 赞助我配备双 RTX8000 GPU 的 Z8 工作站用于本次比赛。在最后几天,我需要在 160 万张测试图像上运行 TNT/VIT/CAIT 集成模型(5 个 Transformer)。部分测试图像很大且序列很长。除了高计算能力外,我们还需要高 GPU 显存。

单张 RTX8000 GPU 拥有 48GB 显存。使用该工作站处理所有图像仅需约 7 小时。速度非常快,这绝对帮助我们的团队在最终排名中锁定了第 10 名的金牌!

同比赛其他方案