fairchem

GitHub
2.1k 463 简单 1 次阅读 今天NOASSERTION其他
AI 解读 由 AI 自动生成,仅供参考

fairchem 是 Meta FAIR Chemistry 团队打造的开源机器学习库,专为材料科学与量子化学研究设计。它集中提供了丰富的数据、预训练模型及应用示例,旨在利用人工智能加速新材料的发现与分子性质的预测。

传统化学研究依赖昂贵的密度泛函理论(DFT)计算,耗时且算力需求大。fairchem 通过高精度的机器学习势函数模型(如最新发布的 UMA 系列),在保持接近 DFT 计算精度的同时,将模拟速度提升数十倍,有效解决了大规模分子动力学模拟中的效率瓶颈。

这款工具特别适合化学领域的研究人员、计算材料科学家以及 AI for Science 方向的开发者使用。用户可以直接调用预训练模型进行快速推理,也能基于其架构开发新的算法。

fairchem 的技术亮点在于其强大的扩展性与前沿性能。最新版本 UMA-1.2 不仅计算速度提升了约 50%,准确率也显著提高,并扩大了对催化剂、聚合物等复杂体系的数据覆盖。此外,它还原生支持多节点、多 GPU 并行推理,并提供与 LAMMPS 等专业模拟软件的无缝接口,让研究者能够轻松开展亿级原子规模的大尺度动力学模拟,极大地降低了高性能计算的使用门槛。

使用场景

某新能源材料研发团队正致力于筛选高效锂硫电池催化剂,需要在数万个候选氧化物结构中快速预测其吸附能与稳定性。

没有 fairchem 时

  • 依赖传统密度泛函理论(DFT)计算单个分子的能量需耗时数小时甚至数天,无法在合理时间内完成大规模筛选。
  • 不同团队使用的 DFT 伪势和磁基态设置不一致,导致数据难以对齐,复现性差且容易引入人为误差。
  • 缺乏针对催化剂界面和聚合物的大规模预训练模型,从头训练需要海量标注数据和昂贵的算力资源。
  • 手动编写脚本对接量子化学软件与机器学习框架,接口繁琐且极易出错,严重拖慢研发迭代速度。

使用 fairchem 后

  • 利用 UMA-1.2 模型进行推理,预测速度提升约 50%,能在几分钟内完成原本需要数周的成千上万个候选物筛选。
  • 直接调用基于 OMat24 数据集训练的标准化模型,自动处理 DFT+U 修正与参考化合物对齐,确保能量计算的一致性与准确性。
  • 借助覆盖氧化物、界面及聚合物的扩展数据覆盖范围,无需额外训练即可直接对复杂催化体系进行高精度性质预测。
  • 通过无缝集成的 ASE 接口与 LAMMPS 动力学支持,研究人员可用几行代码直接调用预训练模型,大幅简化工作流并聚焦科学问题。

fairchem 将原本耗时数月的材料筛选周期压缩至几天,让科学家能从繁重的计算中解放出来,专注于高价值的创新发现。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU (代码示例中指定 device='cuda'),多卡支持需通过 workers 参数配置 (示例提及 H100),具体显存和 CUDA 版本未说明

内存

未说明 (大模型 uma-m-1p1 被描述为更占用内存)

依赖
notes1. 使用前必须拥有 Hugging Face 账号并申请 UMA 模型仓库的访问权限,需通过 'huggingface-cli login' 登录。2. 推荐使用 'uv' 或虚拟环境进行安装以解决依赖问题。3. v2 版本与 v1 不兼容,旧模型需单独安装 v1 版本。4. 运行分子动力学或多卡推理时需安装额外依赖包 (fairchem-core[extras]) 以支持 Ray。5. 不同任务领域(如催化、无机材料、分子等)需选择对应的 task_name。
python3.10+
fairchem-core
ase
huggingface-cli
ray (多卡/分布式推理必需)
numpy
fairchem hero image

快速开始

tests PyPI - Version Static Badge codecov DOI

Open in GitHub Codespaces

fairchem 由 FAIR 化学团队开发

fairchemFAIR 化学团队的集中式存储库,包含了其在材料科学和量子化学领域的所有数据、模型、演示及应用成果。

:warning: FAIRChem 2.0 版本与 1.0 版本相比存在重大变更,不兼容我们之前的预训练模型和代码。 如果您希望使用 1.0 版本中的旧模型或代码,您需要安装 1.0 版本, 具体方法请参见 此处

[!CAUTION] 使用 OMat24 训练的 UMA 模型以及传统无机块体模型采用的是 DFT 和 DFT+U 总能量标签进行训练。 这些模型与 Materials Project 的计算结果并不兼容。如果您仅将 UMA 或仅基于 OMat24 训练的模型用于此类计算, 可以在 OMat24 Hugging Face 仓库 中找到针对参考单质化合物的 OMat24 特定计算, 以及 MP2020 风格的阴离子和 GGA/GGA+U 混合校正。请勿在使用 OMat24 训练模型时采用 MP2020 校正或 MP 参考化合物。 在计算诸如形成能、相图上能量等能量差值并与 Materials Project 中的计算结果进行比较时,需格外注意, 因为 DFT 假势的不同以及磁性基态可能存在的差异。

最新消息

2026年3月 - UMA-1.2 发布!速度提升约50%,在 Open Molecules 测试集上的准确率提高约40%,并扩展了对催化剂(氧化物和界面)、分子及聚合物的数据覆盖!

2025年10月 - 查看我们的无缝多节点、多 GPU 以及 LAMMPS 接口,以运行大规模动力学模拟!

阅读我们的最新发布文章!

了解关于 UMA 模型和 OMol25 数据集 发布的信息。

Meta FAIR Science Release

体验演示!

如果您想探索模型的功能,请访问我们的 教育演示

Educational Demo

安装

尽管不是必需的,但我们强烈建议使用包管理器和虚拟环境来安装,例如 uv,它比单独使用 pip 更快,且在解决依赖关系方面表现更好。

使用 pip 安装 fairchem-core

pip install fairchem-core

如果您希望参与贡献或对代码进行修改,可以克隆仓库并以编辑模式安装:

git clone git@github.com:facebookresearch/fairchem.git

pip install -e fairchem/packages/fairchem-core[dev]

快速入门

使用预训练模型最简单的方式是通过 ASEFAIRChemCalculator。 只需选择适合特定领域预测的任务名称,即可利用单一的 uma 模型完成化学和材料科学中的多种应用。

从预训练模型实例化计算器

请确保您拥有 Hugging Face 账户,并已申请访问 UMA 模型仓库 的权限,同时使用访问令牌登录 Hugging Face。 您可以使用以下命令保存身份验证令牌:

huggingface-cli login

模型通过其名称引用,以下是当前支持的模型:

模型名称 描述
uma-s-1p2 UMA 小型模型的最新版本,在大多数基准测试中仍保持 SOTA 水平,且速度最快(激活参数/总参数:6.6M/290M)
uma-s-1p1 UMA 小型模型的早期版本,同样在大多数基准测试中保持 SOTA 水平(激活参数/总参数:6.6M/150M)
uma-m-1p1 在各项指标上均属一流的 UMA 模型,但速度较慢且内存占用较高(激活参数/总参数:50M/1.4B)

为您的应用设置任务并进行计算

  • oc20: 适用于催化领域
  • oc22: 仅限 1p2 版本,适用于氧化物催化
  • oc25: 仅限 1p2 版本,适用于(电)催化
  • omat: 适用于无机材料
  • omol: 适用于分子和聚合物
  • odac: 适用于 MOF
  • omc: 适用于分子晶体

在催化表面上优化吸附物种,

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-1p2", device="cuda")
calc = FAIRChemCalculator(predictor, task_name="oc20")

# 将您的体系设置为 ASE atoms 对象
slab = fcc100("Cu", (3, 3, 3), vacuum=8, periodic=True)
adsorbate = molecule("CO")
add_adsorbate(slab, adsorbate, 2.0, "bridge")

slab.calc = calc

# 设置 LBFGS 动力学对象
opt = LBFGS(slab)
opt.run(0.05, 100)

对无机晶体进行弛豫,

from ase.build import bulk
from ase.optimize import FIRE
from ase.filters import FrechetCellFilter
from fairchem.core import pretrained_mlip, FAIRChemCalculator

predictor = pretrained_mlip.get_predict_unit("uma-s-1p2", device="cuda")
calc = FAIRChemCalculator(predictor, task_name="omat")

atoms = bulk("Fe")
atoms.calc = calc

opt = FIRE(FrechetCellFilter(atoms))
opt.run(0.05, 100)

运行分子动力学 (MD)

注意:pretrained_mlip.get_predict_unit() 目前使用一个种子来设置 numpy 随机数生成器的全局状态。为了在每次运行以下代码时获得不同的轨迹,我们需要按照如下方式设置随机种子:

from ase import units
from ase.io import Trajectory
from ase.md.langevin import Langevin
from ase.build import molecule
from fairchem.core import pretrained_mlip, FAIRChemCalculator

seed = np.random.randint(0, np.iinfo(np.int32).max, dtype=int)
predictor = pretrained_mlip.get_predict_unit("uma-s-1p2", device="cuda", seed=seed)
calc = FAIRChemCalculator(predictor, task_name="omol")

atoms = molecule("H2O")
atoms.calc = calc

dyn = Langevin(
    atoms,
    timestep=0.1 * units.fs,
    temperature_K=400,
    friction=0.001 / units.fs,
)
trajectory = Trajectory("my_md.traj", "w", atoms)
dyn.attach(trajectory.write, interval=1)
dyn.run(steps=1000)

计算自旋能隙,

from ase.build import molecule
from fairchem.core import pretrained_mlip, FAIRChemCalculator

predictor = pretrained_mlip.get_predict_unit("uma-s-1p2", device="cuda")

# 单重态 CH2
singlet = molecule("CH2_s1A1d")
singlet.info.update({"spin": 1, "charge": 0})
singlet.calc = FAIRChemCalculator(predictor, task_name="omol")

# 三重态 CH2
triplet = molecule("CH2_s3B1d")
triplet.info.update({"spin": 3, "charge": 0})
triplet.calc = FAIRChemCalculator(predictor, task_name="omol")

triplet.get_potential_energy() - singlet.get_potential_energy()

多 GPU 推理与 LAMMPS

如果您有多块 GPU(或多个节点),我们只需通过一个参数(workers=N)即可在后台为您处理所有并行计算。例如,您可以运行以下包含 8000 个原子的 MD 模拟,性能约为每秒 10 步(使用 8 块 H100 GPU),比单 GPU 推理快约 10 倍!目前的基准测试表明,在真实的 MD 场景中,我们可以以每天约 1 纳秒的速度运行 uma-s 模型,处理超过 10 万个原子的体系(更多内容即将发布)。此功能也兼容 LAMMPS,可用于执行大规模 MD 模拟。有关详细信息,请参阅我们的 文档。这需要安装 Ray 包,并且包含 extras 组件。

pip install fairchem-core[extras]
from ase import units
from ase.md.langevin import Langevin
from fairchem.core import pretrained_mlip, FAIRChemCalculator
import time

from fairchem.core.datasets.common_structures import get_fcc_crystal_by_num_atoms

seed = np.random.randint(0, np.iinfo(np.int32).max, dtype=int)
predictor = pretrained_mlip.get_predict_unit(
    "uma-s-1p2", inference_settings="turbo", device="cuda", workers=8, seed=seed,
)
calc = FAIRChemCalculator(predictor, task_name="omat")

atoms = get_fcc_crystal_by_num_atoms(8000)
atoms.calc = calc

dyn = Langevin(
    atoms,
    timestep=0.1 * units.fs,
    temperature_K=400,
    friction=0.001 / units.fs,
)
# 预热 10 步
dyn.run(steps=10)
start_time = time.time()
dyn.attach(
    lambda: print(
        f"步数: {dyn.get_number_of_steps()}, 能量: {atoms.get_potential_energy():.3f} eV, "
        f"QPS: {dyn.get_number_of_steps()/(time.time()-start_time):.2f}"
    ),
    interval=1,
)
dyn.run(steps=1000)

许可证

fairchem 采用 MIT 许可证。不同应用领域的模型/检查点许可证可能有所不同。

版本历史

fairchem_core-2.19.02026/03/26
fairchem_core-2.18.12026/03/23
fairchem_core-2.18.02026/03/16
fairchem_lammps-0.5.02026/03/09
fairchem_core-2.17.02026/03/08
fairchem_core-2.16.02026/03/05
fairchem_core-2.15.02026/02/25
fairchem_core-2.14.02026/02/17
fairchem_lammps-0.4.02026/02/17
fairchem_core-2.13.02025/12/11
fairchem_core-2.12.02025/11/21
fairchem_data_omc-0.1.02025/11/21
fairchem_data_omat-0.2.02025/11/14
fairchem_core-2.11.02025/11/13
fairchem_lammps-0.3.02025/10/24
fairchem_core-2.10.02025/10/23
fairchem_data_omat-0.1.02025/10/13
fairchem_core-2.9.02025/10/09
fairchem_core-2.8.02025/10/07
fairchem_lammps-0.2.02025/10/07

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|1周前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|1周前
其他图像数据工具

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2周前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75.8k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2周前
开发框架其他