☰
fairchem 实战指南:用 UMA 机器学习势替代 DFT,把催化模拟提速三个数量级
2026/10/21 2:07:14 网站建设 项目流程

fairchem 实战指南:用 UMA 机器学习势替代 DFT,把催化模拟提速三个数量级

【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp

当你提交一个 DFT 作业去弛豫铜表面的吸附质,等几何收敛时 GPU 队列已经排了两天。fairchem(FAIR Chemistry 团队开源的机器学习势模型库)给出更现实的路线:用预训练势模型 UMA 承接几何优化、分子动力学和高通量筛选,把单步能量/力评估从分钟级压到毫秒级,让你做催化、材料、分子研究的开发者先用 MLIP 筛出候选体系,再把关键构型送 DFT 精算。

这篇实战指南讲三件事:UMA 的任务路由如何让一个模型覆盖 7 个领域、10 行代码拿到第一个弛豫结果、以及选参数和版本时哪些坑不能踩。

一个模型接 7 类任务:UMA 的任务路由

fairchem 的核心不是一堆孤立模型,而是一套预训练势 + 数据工具链。最重要的是 UMA(Universal Model for Atoms):一个等变 GNN,在 5 亿以上 DFT 样本上训练。它的关键设计是任务路由——推理时传入一个task参数,对应不同 DFT 能级:

task训练数据DFT 能级适用场景
oc20OC20(1.33 亿+ DFT 帧,82 种吸附质)RPBE(VASP)金属表面吸附、多相催化
oc22OC22PBE+U氧化物催化剂
oc25OC25(约 800 万 DFT 帧、88 种元素、显式溶剂)RPBE+D3电化界面、电催化
omatOMat24PBE/PBE+U无机材料
omolOMol25ωB97M-V(ORCA)分子、聚合物
odacODAC23PBE+D3MOF 碳捕集
omcOMC25PBE+D3分子晶体

目前主用两个 checkpoint:uma-s-1p2p1(6.6M 激活 / 290M 总参数,最快)与uma-m-1p1(50M 激活 / 1.4B 总参数,精度最高)。模型代码在 src/fairchem/models/uma/,计算器封装在 src/fairchem/core/calculate/。

MoLE 路由让高参数量与快速推理并存

UMA 用 5 个数据集混训,训练配置见 configs/uma/training_release/uma_md_direct_pretrain.yaml,关键超参:

num_moe_experts: 32 cutoff_radius: 6 steps: 2080000 # 80B atoms, 128 ranks, max_atoms 350 bf16: True dataset_list: ["oc20", "omol", "omat", "odac", "omc"]

快速验证:10 行代码跑一次表面吸附位点松弛

上手的最低门槛是FAIRChemCalculator,直接插进任何 ASE 工作流:

pip install fairchem-core huggingface-cli login # 需 HF 账号并申请过 UMA 模型访问权限
from ase.build import fcc100, add_adsorbate, molecule from ase.optimize import LBFGS from fairchem.core import pretrained_mlip, FAIRChemCalculator predictor = pretrained_mlip.get_predict_unit("uma-s-1p2p1", device="cuda") calc = FAIRChemCalculator(predictor, task_name="oc20") slab = fcc100("Cu", (3, 3, 3), vacuum=8, periodic=True) add_adsorbate(slab, molecule("CO"), 2.0, "bridge") slab.calc = calc LBFGS(slab).run(0.05, 100)

弛豫收敛后slab.calc可直接取能量和力;把优化器换成Langevin就能跑分子动力学。多卡场景在get_predict_unit里加workers=8即可,库内部基于 Ray 自动处理多 GPU 并行,且兼容 LAMMPS 做大规模动力学。

📊 精度与速度怎么算数:OMol25 基准数据

MLIP 总被追问"跟 DFT 差多少"。benchmarks/omol/ 给出可复现的量化口径,两项指标:

  • 精度:OMol25 验证集全部 2,720,091 个 ωB97M-V 结构上的力 MAE
  • 速度:1296 原子 ice-Ih 体系上单个 ASE NVE 步的均值(NVIDIA H200,UMA 用 turbo 模式)

横轴 NVE 步耗时(ms),纵轴力 MAE(meV/Å)

复现脚本就在同目录:speed.py计时、force_mae.py算精度,数据可切 200 份多卡并行。对高通量筛选来说,关键问题是"排序对不对",而不是"单点误差是否小于 1 meV/Å"——这个基准的数据密度足以支撑该判断。

高吞吐筛选:CatTSunami 批量枚举 NEB 过渡态

做催化活性研究经常要枚举大量反应路径找决速步,而单条 DFT NEB 每一帧都要几十次 SCF 迭代。仓库里的 src/fairchem/applications/cattsunami/ 正是针对这个痛点:用 OC20 训练的 ML 模型跑 NEB,关键路径再回 DFT 校验。

ML-NEB 相对 DFT-NEB 的加速幅度与成功率先对比

验证集为 932 条收敛的 DFT NEB 轨迹(脱附、解离、转移三类反应,源自 2827 次运行)。论文报告相对 DFT 最高约 2200 倍加速、约 70% 成功率——失败轨迹会被自动识别并回退 DFT。路径筛选思路:先围绕初始吸附位点枚举产物位点,按能量筛选,再弛豫,只保留有效中间体。

分步筛选把无效位点的计算开销挡在弛豫之前

CatTSunami 是独立安装包pip install fairchem-applications-cattsunami,教程 notebook 在其tutorial/子目录。

🔧 踩坑清单:任务参数、版本兼容与数据边界

任务路由参数:填错比不填更糟

  • oc20/omat/odac/omc任务未训练过变电荷与自旋,输入须 charge=0、spin=0;只有omol接受非零电荷与自旋多重度
  • oc22、oc25任务仅 UMA-1.2 checkpoint 可用
  • omol训练数据全为非周期体系,周期体系慎用;oc20不含氧化物与显式溶剂
  • OMat24 的总能量标签与 Materials Project 设置不兼容,算生成能时不要混用 MP 参考值,说明见 README.md 开头

版本与安装

  • UMA 1.0 checkpoint 在新版中不再受支持,直接加载会抛RuntimeError;确需 1.0 请装fairchem-core<=2.21.0
  • 官方基准环境为fairchem-core==2.22.0,该版本 UMA-S turbo 推理再提速约 50%
  • 数据集下载与预处理(含 OC20 S2EF 的 LMDB 转换)统一走 src/fairchem/core/scripts/download_data.py,OC 数据工具在 src/fairchem/data/oc/

下一步动作:git clone https://gitcode.com/GitHub_Trending/oc/ocp拉下源码,或直接pip install fairchem-core按上面 10 行代码跑一次 CO 在 Cu(100) 上的弛豫——量一次单步评估耗时,你就知道自己的筛选流程值不值得迁到 MLIP。

【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询