FAIRChem 是 Meta 推出的化学机器学习框架(前身为 Open Catalyst Project,OCP),提供面向材料科学与量子化学的机器学习方法。该技能文档用于指导用户使用 FAIRChem 进行 ML 势函数计算。
【用途】 适用于:使用机器学习势进行材料与分子模拟;用预训练模型快速做几何优化;大规模分子动力学(MD)模拟;不依赖 DFT 计算能量与力;使用 UMA 模型;对催化、分子、晶体、MOF 做预测;将 ML 模型接入 ASE 工作流;在多 GPU 上扩展计算。
【核心概念】
- UMA 模型:在多样数据集上训练的通用模型。uma-s-1p1 为小模型(约 5000 万参数),推理更快;uma-m-1p1 为中等模型(约 3 亿参数),精度更高。
- 任务名称(领域):oc20 对应催化(表面与吸附物);omat 对应无机材料(晶体、体相);omol 对应分子(有机化学);odac 对应金属有机框架(MOF);omc 对应分子晶体。同一模型只需更改 task_name 即可跨领域使用。
- FAIRChemCalculator:包装 UMA 模型的 ASE 计算器接口,可替代 DFT 计算器,支持全部 ASE 工作流,提供能量、力与应力,兼容优化、MD、NEB。
- 推理设置:turbo 模式速度最快但精度略降;标准模式平衡速度与精度;多 GPU 通过 workers=N 做分布式推理。
【安装】 pip install fairchem-core;GPU 支持用 pip install fairchem-core[gpu];UMA 模型需安装 huggingface-hub 并执行 huggingface-cli login,且需 Hugging Face 账号并申请 UMA 模型仓库访问权限。
【基本用法】 从 fairchem.data.ase 导入 FAIRChemCalculator,从 fairchem.predict 导入 load_predict_unit;先 load_predict_unit("uma-m-1p1") 加载模型,再用 FAIRChemCalculator(predict_unit=..., task_name="omat") 创建计算器,赋给 ASE 的 atoms.calc 后即可获取能量、力并用 LBFGS 等优化器优化结构。
【典型工作流】 文档给出五个完整示例:催化表面吸附(fcc111 平板加 CO 吸附物,固定底层后 LBFGS 优化);体相材料晶格优化(Fe bcc,配合 FrechetCellFilter 同时优化原子位置与晶胞);分子动力学(小模型加 turbo 设置,MaxwellBoltzmannDistribution 初始化速度,Langevin NVT 动力学);分子体系(H2O 优化);NEB 计算(插值中间图像并计算能垒)。另含模型加载选项(指定 device、加载本地 checkpoint)、任务选择对照表、多 GPU 推理、turbo 模式与批量预测等性能优化内容。
【最佳实践与限制】 应按体系选择正确 task_name;初筛用小模型加 turbo,生产计算用中等模型,超大体系用小模型加多 GPU。ML 模型误差特性与 DFT 不同(约 0.1 eV),关键结果需与 DFT 对比验证;模型不提供不确定性量化。大体系需注意显存管理。FAIRChem v2 与 v1 不兼容,UMA 模型要求 FAIRChem >= 2.0。与 DFT 相比,FAIRChem 速度快 100-1000 倍、可线性扩展至数千原子,适合初筛、长时 MD 与高通量流程;高精度验证、训练数据外的新化学体系、电子结构与磁性分析仍应使用 DFT。