一键导入
ml-committee-uncertainty
Quantify prediction uncertainty of MACE MLIPs using committee (ensemble) models; flag high-uncertainty structures for DFT verification.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Quantify prediction uncertainty of MACE MLIPs using committee (ensemble) models; flag high-uncertainty structures for DFT verification.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Compute phonon-limited carrier mobility and mode-resolved electron-phonon coupling in 2D materials from first principles with Quantum ESPRESSO and EPW.
GPU-accelerated batched inference for MACE, MatGL (TensorNet/M3GNet/CHGNet), and FairChem MLIPs using NValchemi, enabling parallel static, relax, and MD workflows across multiple structures simultaneously.
Extract structured synthesis procedures from a folder of PDFs using the LeMat-Synth GeneralSynthesisOntology schema, producing one JSON file per paper with per-material synthesis records.
Predict LC-MS/MS (MS2, tandem mass spectra) from SMILES via ICEBERG, a two-stage deep neural network. Outputs predicted m/z vs intensity spectrum, fragment ion SMILES, and a spectrum plot.
Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation. Supports local catalog lookup, public database fallback, and pluggable similarity metrics.
Generate crystal structures with exact composition control using DiffCSP++ (space group + Wyckoff positions), or unconditionally from trained distributions.
| name | ml-committee-uncertainty |
| description | Quantify prediction uncertainty of MACE MLIPs using committee (ensemble) models; flag high-uncertainty structures for DFT verification. |
| category | ["machine-learning","materials","chemistry"] |
To estimate the epistemic uncertainty of a MACE MLIP by running inference with a committee (ensemble) of independently trained models. Structures where the committee disagrees strongly (high energy or force variance) are flagged as candidates for DFT labelling, supporting active learning workflows and validating MLIP reliability in under-sampled regions of configuration space.
The uncertainty estimate is:
[!WARNING] Energy std is only a valid disagreement signal when every committee member shares the same energy reference — the same training dataset, level of theory, and atomic reference energies (
E0). If the committee instead pools several independently pretrained foundation models (e.g. different MACE-MP / MACE-OMAT / MACE-MATPES releases) rather than same-data/different-seed checkpoints, their absolute energies are not on a common scale: an energy-std ranking will mostly reflect per-model reference-energy offsets, not genuine epistemic disagreement. For this heterogeneous committee flavor, rank structures by force disagreement instead — forces are invariant to each model's arbitrary atomic reference energy, so they remain a reliable cross-model signal. See the heterogeneous-committee note under Constraints.
A committee requires N ≥ 3 independently trained MACE checkpoints covering the same chemical system. There are two ways to obtain them:
Option A — Train with different random seeds (recommended for fine-tuned models)
Run ml-mace-finetune N times, varying only the random seed via the --seed flag in generate_mace_config.py. Save each checkpoint to a separate directory:
# Env: mace-agent
# Run for seed=0, seed=1, seed=2 (at minimum)
for SEED in 0 1 2; do
conda run -n mace-agent python .agents/skills/ml-mace-finetune/scripts/generate_mace_config.py \
--train-file ./mace_data/train.xyz \
--valid-file ./mace_data/valid.xyz \
--model MACE-MH-1 \
--epochs 200 \
--lr 1e-4 \
--batch-size 4 \
--freeze-backbone \
--seed ${SEED} \
--output-dir ./committee_models/seed_${SEED}
conda run -n mace-agent mace_run_train \
--config ./committee_models/seed_${SEED}/finetune_config.yaml
done
Option B — Use pre-existing models from the registry
mcp_base_search_model_registry(
chemical_system="Li-Fe-P-O",
backend="mace",
)
# If multiple models exist for the same system, they can form a committee.
Pass all checkpoint paths to the inference script. It will run each model independently and compute mean ± std across the committee.
# Env: mace-agent
python .agents/skills/ml-committee-uncertainty/scripts/run_committee_inference.py \
--structures /path/to/structures_dir_or_file.cif \
--models ./committee_models/seed_0/mace_finetuned.model \
./committee_models/seed_1/mace_finetuned.model \
./committee_models/seed_2/mace_finetuned.model \
--output-dir ./uncertainty_results \
--energy-threshold 10.0 \
--force-threshold 200.0
# For MACE-MH foundation models, add:
# --head omat_pbe
Key parameters:
| Parameter | Description | Typical value |
|---|---|---|
--structures | Path to structure file, directory, or .xyz trajectory | — |
--models | Space-separated list of MACE checkpoint paths | ≥ 3 models |
--energy-threshold | Flag if energy std > this value (meV/atom) | 5–20 meV/atom |
--force-threshold | Flag if max force std > this value (meV/Å) | 100–300 meV/Å |
--output-dir | Directory for results and plots | — |
--device | cuda or cpu | cuda |
--head | Head name for multi-head models (e.g. omat_pbe for MACE-MH-1) | None |
The script produces:
uncertainty_summary.json — per-structure energy/force mean ± stdhigh_uncertainty_structures/ — .cif files of flagged structures requiring DFTuncertainty_distribution.png — histogram of energy uncertainty across all structuresThresholds for DFT flagging: There is no universal threshold. Empirically:
[!TIP] Run this skill on your MD trajectory after a few nanoseconds to check whether the MLIP remains in-distribution throughout the simulation. High uncertainty at late simulation times suggests the trajectory has drifted into unexplored configuration space.
Pass the flagged structures to the DFT labelling pipeline. See the mat-sample-pes-by-md skill for context on when and how to label new structures.
# High-uncertainty structures needing DFT labels are in:
ls ./uncertainty_results/high_uncertainty_structures/
# → Pass these to atomate2 DFT workflow for labelling
After determining an appropriate uncertainty threshold for your system, update the registry so future tasks can apply the same criterion automatically:
mcp_base_register_model(
checkpoint_path="./committee_models/seed_0/mace_finetuned.model",
chemical_system="Li-Fe-P-O",
backend="mace",
base_model="MACE-MH-1",
notes="Committee of 3 models (seed 0/1/2). Use energy_std > 10 meV/atom as DFT flag threshold.",
tags_json='["battery", "committee"]',
)
--model flag during fine-tuning). Different architectures cannot be meaningfully ensembled.mace-agent conda environment.Author: Yu Yao Contact: GitHub @AI4SciDisc