第 9 名解决方案 - d4t4 团队
第 9 名解决方案 - d4t4 团队
副标题:适配的 ProteinX 模型
非常感谢 Kaggle 和竞赛主办方组织这次伟大的挑战,并给予我们参与的机会。
📂 数据集创建
我们通过合并几个互补的来源构建了训练数据集:
-
斯坦福 RNA 3D 折叠竞赛数据 (Stanford RNA 3D Folding Competition Data)
-
CASP16 顶级预测 (伪标签)
- 我们将每个目标的 Top-1 预测结构作为伪标签包含在内。
-
RNA PDB 数据库(截止日期:2025 年 3 月 31 日)
- 仅包含在 2025 年 3 月 31 日或之前发布的条目。
🧩 处理缺失残基
- PDB 中具有未解析原子的残基保留在序列中,但在坐标中被掩码 (masked)。
- 缺失的原子进行零填充或在损失计算中忽略。
- 这确保了可靠的训练,同时不会丢失序列上下文。
🔁 多种构象
- 对于某些数据集(PDB 和 CASP16),我们为每个 RNA 序列生成了多达 5 种构象。
- 这些构象作为 (num_conf, seq_len, 3) 数组存储在数据集中。
- 在训练期间,我们支持两种策略:
- 仅 Top-1 → 使用第一个构象作为确定性基线。
- 多构象采样 → 让模型接触所有 5 种构象,要么:
- 作为 coordinate_multi 返回(所有构象一次性可用),或
- 每个 epoch 随机选择一种构象,以便模型在训练过程中看到不同的结构。
- 这种方法增加了结构多样性并提高了泛化能力,而无需改变整体数据集大小。
🔬 MSA 流程
- 对于有进化信息可用的序列,我们将多序列比对 (MSA) 纳入训练。
- 我们使用 MMseqs2 针对精选的 RNA 序列数据库构建 RNA MSA。
- 预计算的 MSA 存储在专用目录中,并在训练期间链接。
- 对于没有 MSA 覆盖的序列,流程回退到虚拟/无 MSA 特征,确保一致的输入格式。
- 这种混合策略丰富了许多目标的结构上下文,并提高了保守 RNA 的准确性。
📊 最终输出
- consolidated 合并了竞赛、CASP16 和 PDB 的序列数据集。
- 对齐原子级标签,缺失残基被掩码,每个序列多达 5 种构象。
- 为部分结构预计算了 MSA(通过 MMseqs2)。
⚙️ 训练配置
-
硬件
- GPU: NVIDIA H100 (96 GB)
- 混合精度:bfloat16 (bf16)
-
优化
- 批量大小 (Batch size): 8
- 最大步数 (Max steps): 12,000
- 预热步数 (Warmup steps): 50
- 学习率 (Learning rate): 1e-4
- 裁剪大小 (Crop size): 800 个核苷酸
-
采样
- 扩散步数 (Diffusion steps): 20
-
评估
- 检查点间隔:每 2,000 步
- 评估间隔:每 50,000 步
-
特征
- MSA 流程:对于有比对可用的序列,使用 MMseqs2 预计算。
- 回退模式:当没有 MSA 覆盖时使用虚拟/无 MSA 特征。
- 多构象:每个 RNA 序列包含多达 5 种构象。
- 掩码残基:PDB 中未解析的残基被掩码以避免噪声监督。
构象选择策略
- 为每个序列生成多种构象。
- 步骤 1:按 pLDDT 分数(最高置信度)选择 Top-1 结构。
- 步骤 2:从剩余预测中,使用 Kabsch RMSD 算法迭代选择最大化 RMSD 多样性的构象。
- 最终输出:每个序列 Top-5 多样化构象。
📊 结果总结
| 模型 / 策略 |
序列长度 |
训练步数 |
分数 |
| Protenix (标准) |
≤ 800 |
8000 |
0.46388 |
| Protenix + RibonanzaNet (混合,处理 >800) |
≤ 800 + >800 |
8000 |
0.478 |
| Protenix + Nufold (混合,处理 >800) |
≤ 800 + >800 |
8000 |
0.479 |
- 提交:单模型,无集成 → 排行榜得分 0.46388。