FAIRChem OMat24 无机材料数据集全解析:结构与标签、子数据集、ASE 读取与能量校正实践
【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp
导读
OMat24(Open Materials 2024)是 FAIR Chemistry 面向无机块体材料发布的 DFT 数据集,收录超过 100 万条由扰动(rattled)结构与 AIMD 轨迹构成的结构-能量-受力-应力样本,并以其与 Matbench-Discovery 基准完全兼容的划分而著称,是 FAIRChem 系列机器学习原子间势(MLIP)在无机材料方向上的核心训练与评测数据。本文以 docs/inorganic_materials/datasets/summary.md 与其主文档 docs/inorganic_materials/datasets/omat24.md 为主体骨架,结合 src/fairchem/data/omat 源码、matbench-discovery 评测配置 与 形成能教程,带你掌握 OMat24 的数据构成、下载组织、ASE 读取方式、OMat24 专属 DFT 能量校正原理,以及如何用它评测 MLIP 模型。
OMat24 数据集总览
根据 docs/inorganic_materials/datasets/summary.md 的定位,OMat24 是 FAIRChem 文档中无机材料数据集的唯一主数据集:"Over 1 million structures from rattled and AIMD calculations for inorganic materials, fully compatible with Matbench-Discovery"。其关键属性在 docs/inorganic_materials/datasets/omat24.md 中汇总如下:
| 属性 | 值 |
|---|---|
| 规模 | 训练集 1.07M 结构 + 验证集 1.02M 结构 |
| 领域 | 无机块体材料(inorganic bulk materials) |
| 标签 | 总能(eV)、原子受力(eV/Å)、应力(eV/ų) |
| 理论级别 | DFT(PBE / PBE+U) |
| 许可证 | CC BY 4.0 |
| 基准兼容性 | 与 Matbench-Discovery 兼容 |
数据内容上,OMat24 同时包含非平衡结构的单点计算与结构弛豫两类样本:来自扰动结构(rattled)的非平衡构型用于让模型学习远离平衡位置时的势能面形态,而 AIMD 轨迹与弛豫结构则覆盖平衡附近的构型空间。所有标签统一为总能、受力与应力,格式为 ASE DB 兼容的 LMDB 文件,可直接被 FAIRChem 数据管线消费。
与 Matbench-Discovery 的兼容性约定
OMat24 训练/验证划分与 Matbench-Discovery 基准测试集完全兼容,这是该数据集最受关注的特性。官方文档明确了两条保证:
- 划分中不含任何其初始或弛豫结构带有 WBM 数据集 protostructure 标签的结构;
- 划分中不包含任何从 Alexandria 弛豫结构出发生成、且初始或弛豫结构带 WBM protostructure 标签的结构。
换言之,OMat24 在构造时就系统性地排除了与 WBM(Wren/Bartel/Matthew)测试集重叠的构型,避免模型在评测时出现训练/测试泄漏。这一点在仓库的基准配置中得到印证:评测脚本直接以 WBM 的 IS2RE 数据与 Matbench-Discovery 官方汇总文件作为输入(见下文"基准评测"一节)。
子数据集构成:扰动结构与 AIMD 轨迹
OMat24 由若干**按生成方式划分的子数据集(subdatasets)**组成,文档列出了 8 类:
- rattled-1000-subsampled 与 rattled-1000
- rattled-500-subsampled 与 rattled-300
- rattled-300-subsampled 与 rattled-500
- aimd-from-PBE-1000-npt
- aimd-from-PBE-1000-nvt
- aimd-from-PBE-3000-npt
- aimd-from-PBE-3000-nvt
- rattled-relax
文档特别说明:每个 rattled- 成对子数据集(如 rattled-1000 与 rattled-1000-subsampled)都采用与论文描述完全相同的生成流程,区别仅在于采样/规模(subsampled 版本按能量间隔等准则抽稀),因此在训练时可以按需取舍而不会引入流程不一致。
仓库源码进一步揭示了这些子数据集的 DFT 生成参数。在 src/fairchem/data/omat/vasp/sets.py 中:
OMat24StaticSet:静态单点计算的 VASP 输入集,POTCAR 默认使用 PBE_54 版本;OMat24RelaxSet:弛豫输入集,在静态基础上追加IBRION=2、NSW=99、ISIF=3(即同时弛豫原子位置与晶胞);OMat24AIMDSet:AIMD 输入集,默认start_temperature=1000、end_temperature=1000、ensemble="nvt"、thermostat="nose"、time_step=2.0 fs、steps=100;若选择npt系综则强制使用 langevin 热浴(MDALGO=3)并可通过PSTRESS设置压力(单位 kB)。这解释了 AIMD 子数据集命名中"1000/3000"对应起始温度、"-npt/-nvt"对应系综的含义。
文件组织与下载清单
训练集划分
| 子数据集 | 结构数 | 文件大小 |
|---|---|---|
| rattled-1000 | 122,937 | 21 GB |
| rattled-1000-subsampled | 41,786 | 7.1 GB |
| rattled-500 | 75,167 | 13 GB |
| rattled-500-subsampled | 43,068 | 7.3 GB |
| rattled-300 | 68,593 | 12 GB |
| rattled-300-subsampled | 37,393 | 6.4 GB |
| aimd-from-PBE-1000-npt | 223,574 | 26 GB |
| aimd-from-PBE-1000-nvt | 215,589 | 24 GB |
| aimd-from-PBE-3000-npt | 65,244 | 25 GB |
| aimd-from-PBE-3000-nvt | 84,063 | 32 GB |
| rattled-relax | 99,968 | 12 GB |
| 合计 | 1,077,382 | 185.8 GB |
各子数据集以独立的.tar.gz归档发布,解压后即为.aselmdb格式的 LMDB 文件。每个子数据集可独立下载、独立使用,也可按需组合。
验证集划分(1M 子集)
验证集是用于训练 eqV2 等模型时从 5M 验证划分中抽出的 1M 子集,按相同子数据集结构组织:
| 子数据集 | 结构数 | 文件大小 |
|---|---|---|
| rattled-1000 | 117,004 | 218 MB |
| rattled-1000-subsampled | 39,785 | 77 MB |
| rattled-500 | 71,522 | 135 MB |
| rattled-500-subsampled | 41,021 | 79 MB |
| rattled-300 | 65,235 | 122 MB |
| rattled-300-subsampled | 35,579 | 69 MB |
| aimd-from-PBE-1000-npt | 212,737 | 261 MB |
| aimd-from-PBE-1000-nvt | 205,165 | 251 MB |
| aimd-from-PBE-3000-npt | 62,130 | 282 MB |
| aimd-from-PBE-3000-nvt | 79,977 | 364 MB |
| rattled-relax | 95,206 | 118 MB |
| 合计 | 1,025,361 | 1.98 GB |
注意:原始验证集存在重复结构问题,官方已于 2024-12-20 上传修正版验证集,文档明确提示用户重新下载修正版本后再用于训练/评测。
sAlex 微调数据集
除主训练/验证集外,OMat24 还配套提供sAlex数据集,用于 OMat 模型的微调。sAlex 是对 Alexandria 数据库的抽稀版本,其构造规则为:剔除与 WBM 匹配的结构,并且仅沿轨迹按能量差大于 10 meV/atom的标准采样。其规模为:
| 数据集 | 划分 | 结构数 | 文件大小 |
|---|---|---|---|
| sAlex | train | 10,447,765 | 7.6 GB |
| sAlex | val | 553,218 | 408 MB |
用 AseDBDataset 读取 ASE Atoms 对象
OMat24 文件以AseLMDBDatabase形式组织,它是 ASE Database 接口在 LMDB 格式上的实现——单个.aselmdb文件可像任何 ASE DB 一样被查询,而 FAIRChem 提供了AseDBDataset类用于一次性读取多个 DB 文件并直接拿到Atoms对象。其实现位于 src/fairchem/core/datasets/ase_datasets.py。
读取单个子数据集(以 rattled-relax 为例):
from fairchem.core.datasets import AseDBDataset dataset_path = "/path/to/omat24/train/rattled-relax" config_kwargs = {} # 见附加配置教程 dataset = AseDBDataset(config=dict(src=dataset_path, **config_kwargs)) # 按索引获取 atoms 对象 atoms = dataset.get_atoms(0)同时读取多个子数据集时,只需将路径列表传给src:
from fairchem.core.datasets import AseDBDataset config_kwargs = {} # 见附加配置教程 dataset_paths = [ "/path/to/omat24/train/rattled-relax", "/path/to/omat24/train/rattled-1000-subsampled", "/path/to/omat24/train/rattled-1000", ] dataset = AseDBDataset(config=dict(src=dataset_paths, **config_kwargs))若希望一次读取完整的 OMat24 训练或验证划分,把全部子数据集路径传入即可。该数据类同时被 fairchem 训练/评测配置 中的RelaxationRunner复用(fairchem.core.datasets.ase_datasets.AseDBDataset),意味着同一套读取逻辑贯穿数据准备、训练与推理全流程。
OMat24 专属能量校正:不要混用 MP2020 校正
这是使用 OMat24 训练模型时最容易踩的坑,src/fairchem/data/omat/README.md 开篇即给出醒目警告:
OMat24 的 DFT 计算与 Materials Project(MP)计算不兼容。若模型仅在 OMat24 上训练,必须使用 OMat24 专属的单质参考与 MP2020 风格阴离子/GGA-GGA+U 混合校正(见 entries 目录),禁止使用 MP2020 校正或 MP 参考单质。此外,在计算形成能、能量高于凸包等能量差值并与 Materials Project 对比时需格外小心,因为赝势不同且磁基态可能不同。
为什么需要单独校正?OMat24 采用 PBE/PBE+U 混合计算,而 MP2020 校正项是针对 MP 的 PBE54 基组与计算流程拟合的。仓库通过OMat24Compatibility类(compatibility.py)在MaterialsProject2020Compatibility的基础上替换默认配置文件为 OMat24Compatibility.yaml,其中保存了针对 OMat24 弛豫设置(OMat24RelaxSet)拟合的 222 种化合物的校正系数,例如:
- GGA/GGA+U 混合校正(eV/atom):Fe 氧化物 -2.428、Ni -2.58、Mn -1.701、Mo -2.972 等;
- 组分校正:oxide -0.657、peroxide -0.433、superoxide -0.152、S -0.487、F -0.436、Cl -0.6、N -0.303 等;
- 每一类校正都附有对应的不确定度(Uncertainties 字段)。
这些校正通过apply_mp_style_corrections(energy, atoms, correction_type="OMat24")或generate_computed_structure_entry(...)直接作用于 ASEAtoms/Structure对象,返回校正后的能量。校正由OMat24StaticSet生成的 VASP 输入参数(hubbards、run_type 等)驱动,确保与数据生成流程一致。
实战:用 UMA 模型计算无机材料形成能
在模型侧,FAIRChem 将 OMat24 作为 UMA 模型的一个专用任务(task_name="omat")。docs/inorganic_materials/examples_tutorials/formation_energy.md 给出了完整示例:先用quacc的relax_job配合预训练 UMA(uma-s-1p2,任务omat)对 Cu 块体做晶胞+原子位置弛豫,再用FAIRChemCalculator与FormationEnergyCalculator计算形成能:
from fairchem.core.calculate import FAIRChemCalculator, FormationEnergyCalculator # 基于预训练 UMA 构建计算器(task_name="omat" 使用 OMat24 兼容校正) calculator = FAIRChemCalculator.from_model_checkpoint("uma-s-1p2", task_name="omat") # 应用 MP2020 风格 + OMat24 兼容性校正 form_e_calc = FormationEnergyCalculator(calculator, apply_corrections=True) atoms.calc = form_e_calc form_energy = atoms.get_potential_energy()文档特别说明:仅用 OMat24 训练的模型,其形成能预测必须使用 OMat24 兼容的参考与 PBE/PBE+U 混合校正,而所需的参考数据可通过fairchem.data.omat包获取(即上文介绍的 entries 模块)。示例以 MgO 为目标时,可将预测值与 Materials Project 中报告的值(-3.038 eV/atom)对比,同时注意因 DFT 设置差异预期会有偏差。此外,示例还演示了huggingface-cli login/HF_TOKEN配置,用于访问受限托管的预训练权重。
基准评测:Matbench-Discovery 跑通示例
FAIRChem 在 configs/uma/benchmark/matbench-discovery-discovery.yaml 中提供了开箱即用的 Matbench-Discovery 评测配置,可直接验证 OMat24 训练模型在 WBM 测试集上的表现:
- 计算器:
calculator.task_name: omat,即用 OMat24 专属语义驱动能量/受力计算; - Runner:
fairchem.core.components.calculate.RelaxationRunner,输入为matbench-discovery/WBM_IS2RE.aselmdb,fmax=0.02、steps=500,优化器为 ASEFIRE,晶胞用FrechetCellFilter过滤; - Reducer:
MaterialsDiscoveryReducer,输入 WBM 官方 summary(2023-12-13-wbm-summary.csv.gz)、computed structure entries 与 MP 元素参考(2023-02-07-mp-elemental-reference-entries.json.gz)三个文件,用于产出能量高于凸包(E-hull)等标准指标。
该配置将 OMat24 数据集、OMat24 校正与 Matbench-Discovery 基准评测三者串成完整闭环,是复现论文结果或评测自有模型时的直接参照。
引用 OMat24
OMat24 数据集采用 Creative Commons Attribution 4.0(CC BY 4.0)许可证。在论文或工作中使用该数据集与相关模型时,官方文档建议引用以下文献:
@article{barroso_omat24, title={Open Materials 2024 (OMat24) Inorganic Materials Dataset and Models}, author={Barroso-Luque, Luis and Muhammed, Shuaibi and Fu, Xiang and Wood, Brandon, Dzamba, Misko, and Gao, Meng and Rizvi, Ammar and Zitnick, C. Lawrence and Ulissi, Zachary W.}, journal={arXiv preprint arXiv:2410.12771}, year={2024} } @article{schmidt_2023_machine, title={Machine-Learning-Assisted Determination of the Global Zero-Temperature Phase Diagram of Materials}, author={Schmidt, Jonathan and Hoffmann, Noah and Wang, Hai-Chen and Borlido, Pedro and Carri{\c{c}}o, Pedro JMA and Cerqueira, Tiago FT and Botti, Silvana and Marques, Miguel AL}, journal={Advanced Materials}, volume={35}, number={22}, pages={2210788}, year={2023}, publisher={Wiley Online Library} }总结
OMat24 为无机材料 MLIP 提供了规模可观、标签完整(能量/受力/应力)、且与 Matbench-Discovery 严格兼容的训练与评测数据。使用该数据集的关键要点可归纳为:按子数据集(rattled / AIMD)灵活组织训练数据;通过AseDBDataset以 ASE Atoms 形式消费.aselmdb文件;在计算形成能等能量差值时务必使用 OMat24 专属校正(OMat24Compatibility+ OMat24Compatibility.yaml)而非 MP2020 校正;最后可借助 matbench-discovery-discovery.yaml 一键完成标准评测。相关源码与配置均可在本仓库 src/fairchem/data/omat、src/fairchem/core/datasets/ase_datasets.py 与 docs/inorganic_materials 文档目录中进一步查阅。
【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考