【免费下载链接】RFD4-Proteina
本教程带你用 Diffusers 的 RFD4ProteinaPipeline 一步步加载 RFD4-Proteina 蛋白质设计模型的权重,准备 Annotated CIF 输入,调用 pipeline 生成蛋白质设计,并把结果保存为标准 CIF 文件 🧬
RFD4-Proteina 是 Baker Lab 与 NVIDIA 联合推出的 flow-matching 生物分子设计模型:它同时生成蛋白质序列和全原子结构,并支持以结合靶点、酶基序、配体或指定结构特征作为条件输入。本仓库是官方权重库,包含配对好的 flow 模型与自编码器(VAE),总存储参数约 4.36 亿,FP32 权重约 1.74 GB。
为什么选 Diffusers 路线?
官方提供两种加载入口,权重本身是同一份,没有重新训练:
| 调用方式 | 权重位置 | 适用场景 |
|---|---|---|
Proteina.from_pretrained("nvidia/RFD4-Proteina") | 本仓库根目录 config.json + model.safetensors | 原生 RFD4 运行时(完整工作流) |
RFD4ProteinaPipeline.from_pretrained("nvidia/RFD4-Proteina-Diffusers") | 独立 Diffusers 仓库(张量重加前缀,拆分为 transformer/ 与 vae/) | 在 Diffusers 生态中做生成、微调 |
Diffusers 侧的权重就是本仓库同一批张量的"换前缀拆分版":transformer/ 放 flow 模型,vae/ 放自编码器。如果你已经熟悉 Diffusers 的 pipeline 开发范式,这条路线上手最快 ⚡
环境准备:硬件要求与 Diffusers 安装
Diffusers 路线面向 NVIDIA GPU,硬件要求如下:
| 项目 | 要求 |
|---|---|
| 系统 | Linux x86_64 |
| Python | 3.12 |
| 驱动 | CUDA 13 兼容的 NVIDIA 驱动 |
| 已验证 GPU | A100 / H100 / H200 / L40S / B200、B300、GB200、RTX 6000 Ada、RTX PRO 6000 等 |
显存峰值取决于 token 数、batch 尺寸与 recycle 深度,而非权重大小;bfloat16 精度下单卡 24 GB 以上即可尝试中小规模设计。
安装命令(RFD4ProteinaPipeline 于 2026-10-20 合入 Diffusers,将随下一个正式版发布;在此之前需从 git 安装,预处理包固定到一个 commit):
pip install git+https://github.com/huggingface/diffusers git+https://huggingface.co/nvidia/RFD4-Proteina-prep@c9959efdebd75ac7fe9129fbbf0e291a6e0487d5 accelerate
# 正式版发布后,只需:
# pip install diffusers git+https://huggingface.co/nvidia/RFD4-Proteina-prep@c9959efdebd75ac7fe9129fbbf0e291a6e0487d5
加载权重:RFD4ProteinaPipeline.from_pretrained
一行代码即可加载配对好的 flow 模型 + 自编码器,并放到指定 GPU 上:
import torch
from diffusers import RFD4ProteinaPipeline
pipe = RFD4ProteinaPipeline.from_pretrained(
"nvidia/RFD4-Proteina-Diffusers", dtype=torch.bfloat16
).to("cuda:0")
对应关系上,这份 Diffusers 权重等价于本仓库中的配对检查点:
两者的 SHA-256 与配对关系都记录在 release-checkpoints.json 中,需要严格复现时可以固定仓库 revision 并校验 checksum。
准备输入:什么是 Annotated CIF?
RFD4-Proteina 的设计规格由 Annotated CIF 描述:注释标明"哪些部分保持固定、哪些部分交给模型设计"。一份普通结构文件不算完整的设计规格——必须带注释才有效。
仓库自带三组开箱即用的示例,直接拿来跑:
| 设计目标 | 输入文件 | 官方示例输出 |
|---|---|---|
| 蛋白-蛋白结合物(PD-L1 binder) | examples/protein_binder/input.cif | examples/protein_binder/design.cif |
| 酶基序支架设计 | examples/enzyme_design/input.cif | examples/enzyme_design/design.cif |
| 抗体设计(HER2) | examples/antibody_design/input.cif | examples/antibody_design/design.cif |
| 无条件单聚体 | examples/monomer.cif(仅长度规格,无输入坐标) | — |
生成并输出 CIF:完整调用流程
核心代码只有四步:预处理输入 → 拆分条件特征 → 调用 pipeline → 写出 CIF。
from rfd4_proteina_prep import prepare_cif, write_cif
# 1. 解析 Annotated CIF,得到特征张量与原子信息
features, atoms = prepare_cif("input.cif", seed=42, device=pipe.device)
# 2. 五个"必备"特征直接传参,其余特征打包为 conditioning_features
required = ["padding_mask", "is_in_context_conditioning", "supports_local_latent",
"token_type", "atom37_mask", "coords_nm"]
conditioning = {k: v for k, v in features.items() if k not in required}
# 3. 调用 pipeline,固定随机种子保证可复现
output = pipe(
padding_mask=features["padding_mask"],
is_in_context_conditioning=features["is_in_context_conditioning"],
supports_local_latent=features["supports_local_latent"],
token_type=features["token_type"],
atom37_mask=features["atom37_mask"],
conditioning_features=conditioning,
generator=torch.Generator("cuda:0").manual_seed(42),
)
# 4. 将生成的序列+结构写回标准 CIF 文件
write_cif(output, features, atoms, "design.cif")
生成的 design.cif 包含模型设计出的残基身份与全部原子坐标,可直接用 PyMOL、ChimeraX 等工具可视化检查。该移植版还支持部分扩散(partial diffusion)与逆折叠(inverse folding)。
调优技巧:计算预设与复现性
原生运行时的算力预设按"trunk 回收深度"分为三档(共 60 步采样),质量与耗时递增:
| 预设 | trunk 通道数 | 特点 |
|---|---|---|
thinking_low | 120 | 快速验证 |
thinking_medium(默认) | 180 | 质量/速度平衡 |
thinking_high | 300 | 追求最高设计质量 |
复现性建议清单:
- ✅ 固定随机种子:
prepare_cif的seed与generator.manual_seed用同一个值 - ✅ 固定模型仓库 revision,避免后续更新影响结果
- ✅ 核对 flow 模型与自编码器版本配对(本代 latent 维度为 32、残基词表 147 类;上一代为 16 / 33 类,跨代混用会产生错误结果)
- ✅ 推理默认配置可参考 inference.yaml,其中
precision: bf16-mixed、batch_size: 1适合单卡起步
常见问题 FAQ
Q1:生成的结构看起来很乱,是权重下错了吗? 大概率是 flow 模型和自编码器不配对——自编码器定义了 flow 模型生成所在的潜空间,跨发布版本混用会得到"乱码"而非报错。请以 release-checkpoints.json 中的配对为准。
Q2:没有 CUDA GPU 能跑吗? Diffusers 路线示例绑定 cuda:0 设备,面向 NVIDIA GPU。仓库 runtime/ 提供了 CPU 变体的 Apptainer 镜像,但那主要用于原生 CLI 与导入验证。
Q3:显存不够怎么办? 显存峰值由 token 数、batch 与 recycle 深度决定:降低输入 token 数、用 thinking_low 档、保持 batch_size=1,并确认已启用 bfloat16。
Q4:计算通过的设计就一定有实验活性吗? 不一定。官方基准指标衡量的是计算意义上的"结构可折叠通过率",最终设计仍需结构评估与实验验证。基准数据与判定方法见 benchmarks/METHODS.md。
小结
到这里,你已经走通了 Diffusers 接入 RFD4-Proteina 的完整链路:安装 RFD4ProteinaPipeline → 一行 from_pretrained 加载 1.74 GB 配对权重 → 用 Annotated CIF 描述设计约束 → pipeline 一次调用生成序列+结构 → write_cif 输出 CIF 文件。🎯 想进一步探索,可以从 README.md 的"Start with one design"章节和原生 RFD4 运行时(奖励引导搜索、refolding 指标)继续深入。
【免费下载链接】RFD4-Proteina
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







