fairchem 版本演进指南:从 v1 到 UMA 1.2,机器学习势函数推理提速近 50%

📅 发布时间:2026/10/21 4:45:12
fairchem 版本演进指南:从 v1 到 UMA 1.2,机器学习势函数推理提速近 50%
fairchem 版本演进指南:从 v1 到 UMA 1.2,机器学习势函数推理提速近 50%【免费下载链接】ocpFAIR Chemistrys library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocpfairchem 是 FAIR Chemistry 的原子尺度模拟机器学习库。从 fairchem v1 到 v2(UMA 1.0 → 1.2),核心变化是:旧版 OCPCalculator 与单域模型体系被彻底重写为backbone heads统一架构,推理提速约 50%,任务覆盖从 5 个扩到 7 个。旧版本(fairchem v1)为什么不够用了第一个短板是一个模型一个用途。v1 里的 EquiformerV2、GemNet-OC 等模型各自服务一个领域——催化归催化、材料归材料,换个研究对象就得换模型、重新学接口。docs/core/fairchemv1_v2.md 中那份 v1 旧模型清单,就是这种局面的缩影。第二个短板是接口链路断裂。官方文档明确写着:v2 是completely rewritten trainer, fine-tuning, models, and calculators,而旧的 OCPCalculator 与 trainer 代码will NOT be revived。也就是说,从 v1 到 v2 没有兼容过渡,只能迁移。第三个短板,旧栈在 v2 时代就已经官方冻结。UMA 1.1 曾只是一个 bug fix 版本,专门修复能量不随体系大小线性缩放的问题(大小扩展性);而 UMA 1.0 的 checkpoint 在新版中加载会直接抛出 RuntimeError,官方给的路径是回退安装fairchem-core2.21.0。老版本不是还能用,而是不再维护。新版本的核心变化一个 backbone、多个 heads:统一架构怎么做到的fairchem 2 用 HydraModel 组织模型:同一个 backbone 统一提取原子特征,多个 head 分别预测能量、力、应力等属性;组件通过 registry 注册器加 YAML 里的_target_字段动态实例化(源码见 src/fairchem/core/)。命令行只需fairchem -c config.yaml keyvalue,改参数不用改代码。大白话:v1 是一堆各自为政的整机,v2 换成一块主板 可插拔的接口,加新任务不再意味着重造模型。体量上,uma-s 系列激活参数约 6.6M,uma-m 激活 50M/总 1.4B,靠 MoLE 混合专家结构做到参数大、推理快。任务覆盖从 5 个到 7 个:新增了哪些领域UMA 1.0(2025 年 5 月首发)支持 5 个任务:oc20、omat、omol、odac、omc,分别对应异相催化、无机材料、有机分子、MOF 与分子晶体,基于 5 亿以上 DFT 计算训练。UMA 1.2 新增 oc22(氧化物催化)和 oc25(电解质/无机界面),训练数据总量升到约 5.2 亿条 DFT 计算。 新增数据带来的是可量化的精度提升:得益于改进的电荷态处理,UMA 1.2 在生物分子上相对 UMA-S-1.1 提升约 50%,在电解质体系上提升约 30%。类比一下:旧版本会算气-固界面催化,新版本把溶液里的电催化也一并接住了。UMA 1.2 推理速度:提速约 50%,2.22.0 再降内存UMA 1.2 的 turbo 模式让 UMA-S 推理速度相比上一代快约 50%,同时在 OMol 测试集上精度提升约 40%。2026 年 9 月发布的fairchem-core2.22.0 又做了一轮推理优化:冻结推理参数后,编译后的通用推理在单张 H100 上再快 15%–17%,100–2000 原子体系的峰值显存占用降低 27%–29%。下图的基准测试基于 OMol25 公开验证集全部 2,720,091 个唯一结构(ωB97M-V 参考),速度指标是单张 H200 上 1296 原子冰 Ih 体系跑一步 NVE 的平均耗时:图中越靠左下越好:UMA-S 1.2.1 的力误差约 7.5 meV/Å,每步耗时不到 50 ms,在同精度档位里明显快于多个 MACE、PET 系列模型。复现脚本在 benchmarks/omol/。从单卡到集群:多 GPU 并行怎么开想跑大规模分子动力学,v1 用户得自己配置 MPI、CUDA、Kokkos;v2 把这些藏到了workersN参数后面——传给pretrained_mlip.get_predict_unit(),底层由 Ray 自动做多卡、多节点切分。官方口径:体系规模支持到 100 万原子,已在数百张 GPU 上验证;对成批的小体系结构弛豫,单张 H100 上相对串行最高提速 4 倍。大白话:你只改一个数字,集群替你干活。新旧版本一眼对比对比维度fairchem v1(OCPCalculator)fairchem v2 / UMA 1.2意味着什么模型架构按领域分模型,接口互不相通一个 UMA backbone 任务 heads一套代码通吃各领域任务覆盖单领域模型7 个任务:oc20/omat/omol/odac/omc/oc22/oc25换 task_name 即换领域推理速度基线turbo 模式快约 50%,2.22.0 显存再降 27%–29%同一张卡多跑动力学步数并行能力需手动配 MPI/KokkosworkersN多 GPU,支持到 100 万原子分布式不再需要专门学习旧 checkpoint可加载UMA 1.0 checkpoint 不再支持1.0 用户需 fairchem-core2.21.0实际怎么用起来安装一行命令:pip install fairchem-core。最典型的用法是把它挂成 ASE calculator,几行代码就能对催化表面上的吸附质做弛豫:from fairchem.core import pretrained_mlip, FAIRChemCalculator predictor pretrained_mlip.get_predict_unit(uma-s-1p2p1, devicecuda) calc FAIRChemCalculator(predictor, task_nameoc20)task_name就是领域开关:oc20 做催化,omat 做无机材料,omol 做分子与聚合物,odac 做 MOF;注意 oc22 与 oc25 目前只有 1p2 系列权重支持。组合示例:做直接空气捕获(DAC)方向,可以配合 src/fairchem/data/odac/ 的 ODAC 数据与力场,以及 docs/dac/examples_tutorials/ 的教程结构跑 MOF 柔性弛豫。下图展示了 CO₂ 与 H₂O 在不同 DFT 相互作用能区间内的分布,柱高为该区间内的平均误差——这类图正是 ODAC 力场开发时用的校准手段:想自己训练或微调,从 configs/ 里的 YAML 模板起步即可,backbone、tasks、dataset按模型与任务拆分,配合 Hydra 覆盖参数即可,不用改源码。这次升级适合谁v1 存量用户:还在用 OCPCalculator 的话,建议直接规划迁移;旧代码明确不再复活,v2 的文档与示例是目前最完整的路径。跑分子动力学的用户:直接吃到约 50% 的提速和降内存红利,同样的 GPU 一天能多跑不少步。多任务团队:催化、分子晶体、MOF 研究并行的组,可以用一个模型加不同 task_name,不必维护多条模型流水线。有多卡或多机硬件的用户:workers参数让单卡工作流原地变成集群工作流,不用碰 MPI 配置。从 v1 到 UMA 1.2,fairchem 走完的是接口统一和能力扩容两步棋。对新人,成本只是一行安装命令和一个 task_name;对老用户,回报是速度、显存和并行这三件过去要自己写代码才能拿到的东西。随着 oc22、oc25 这类新数据集持续并入 backbone,选个领域、填个任务名会成为原子模拟工作流里的默认姿势。【免费下载链接】ocpFAIR Chemistrys library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考