UMA — Universal Models for Atoms
UMA is a family of universal machine-learning interatomic potentials developed by Meta's FAIR Chemistry team. Trained on approximately 500 million unique 3D atomic structures spanning molecules, materials, and catalysts, UMA is designed to serve as a single universal model that handles diverse chemical domains without requiring fine-tuning.
MAPLE defaults to the small UMA v1.1 checkpoint (uma-s-1p1) for compatibility. You can explicitly select newer or larger checkpoints, and you can choose the FAIR Chemistry inference interface for speed-critical GPU workloads.
Configuration
Basic usage with all defaults (task = inferred from the system, size = uma-s-1p1, inference = default):
#model=uma
Specify task and/or size explicitly:
#model=uma(task=omat, size=uma-s-1p2)
The task, size, and inference parameters are optional and can be used independently:
# Only change task (size stays at default uma-s-1p1)
#model=uma(task=oc20)
# Only change size (task remains auto-selected)
#model=uma(size=uma-m-1p1)
# Only change the FAIR Chemistry inference interface
#model=uma(inference=turbo)
Model Sizes
Three checkpoints are available, offering different tradeoffs between speed and accuracy:
| Checkpoint | Version | Active Params | Total Params | Notes |
|---|---|---|---|---|
uma-s-1p2 |
v1.2 | 6.6M | ~150M | Latest and fastest; ~50% faster, ~40% more accurate than v1.1 on molecular benchmarks |
uma-s-1p1 |
v1.1 | 6.6M | ~150M | Default. Compatibility-first small checkpoint |
uma-m-1p1 |
v1.1 | ~50M | ~1.4B | Higher accuracy across all benchmarks; slower and more GPU memory |
Tip
The default uma-s-1p1 is the compatibility-first choice. Select uma-s-1p2 when you want the newer v1.2 checkpoint, or uma-m-1p1 when you need higher accuracy and can tolerate slower evaluation.
Inference Interface
The inference option selects the FAIR Chemistry inference interface used by UMA. The MAPLE input keyword is inference; "interface" here describes the backend path being selected.
| Mode | Use case | Notes |
|---|---|---|
default |
General-purpose calculations and CPU runs | Default. Safest for short jobs and changing-composition workflows. |
turbo |
CUDA runs with repeated fixed-composition evaluations | Opt-in fast path for workloads such as NEB, TS, and frequency calculations; short jobs may not recover the startup cost. |
# Explicitly request the CUDA turbo inference interface
#model=uma(inference=turbo)
#device=gpu0
# Combine task, size, and inference options
#model=uma(task=omat, size=uma-s-1p2, inference=turbo)
Note
On CPU, MAPLE falls back to inference=default even if turbo is requested, because the turbo path depends on CUDA-oriented FAIR Chemistry kernels.
Task Domains
UMA is a multi-task model trained on different DFT methodologies. The task parameter selects which domain-specific head to use, matching the DFT level of theory for your system type:
| Task | Domain | DFT Method | Typical Applications |
|---|---|---|---|
omol |
Organic Molecules | ωB97M-V / def2-TZVPD | Drug design, polymers, biochemistry |
omat |
Inorganic Materials | PBE / PBE+U | Photovoltaics, batteries, superconductors |
oc20 |
Heterogeneous Catalysis | RPBE | Fuel cells, renewable energy, surface reactions |
odac |
MOFs / Direct Air Capture | PBE+D3 | Carbon capture, gas adsorption, porous materials |
omc |
Molecular Crystals | PBE+D3 | Organic electronics, pharmaceutical crystals |
oc22 |
Oxide Catalysis | PBE+U (spin-polarized) | Oxide surfaces, electrocatalysis on oxides |
oc25 |
Electrolyte Interfaces | RPBE+D3 | Electrochemistry, solid-liquid interfaces |
Important
The oc22 and oc25 tasks are only available with UMA v1.2 checkpoints (uma-s-1p2). Using these tasks with v1.1 checkpoints will result in an error.
Charge and Spin
UMA supports charge and spin multiplicity for the omol task. Specify them in the coordinate block:
#model=uma
#opt(method=lbfgs)
-1 2
O 0.000000 0.000000 0.000000
O 1.210000 0.000000 0.000000
The first line of the coordinate block is charge multiplicity (here: charge = −1, multiplicity = 2 for a doublet superoxide anion).
Warning
Charge and spin are only meaningful for the omol task. Other tasks (materials, catalysis) do not use these parameters.
Usage Examples
Default: molecular geometry optimization
# Default: uma-s-1p1 checkpoint, omol task for this molecular system
#model=uma
#device=gpu0
#opt(method=lbfgs)
0 1
C 0.000000 0.000000 0.000000
O 1.200000 0.000000 0.000000
H -0.540000 0.940000 0.000000
H -0.540000 -0.940000 0.000000
Inorganic material optimization (omat)
#model=uma(task=omat)
#device=gpu0
#opt(method=lbfgs)
XYZ /path/to/material.xyz
Catalysis with medium model for higher accuracy
#model=uma(task=oc20, size=uma-m-1p1)
#device=gpu0
#opt(method=lbfgs)
XYZ /path/to/catalyst_surface.xyz
Molecular crystal with v1.1 fallback
#model=uma(task=omc, size=uma-s-1p1)
#device=gpu0
#opt(method=lbfgs)
XYZ /path/to/crystal.xyz
Transition state search with UMA
#model=uma
#device=gpu0
#ts(method=neb)
XYZ /path/to/reactant.xyz
XYZ /path/to/product.xyz
With implicit solvation (GBSA)
#model=uma
#device=gpu0
#solv(method=gbsa, implicit=water)
#opt(method=lbfgs)
0 1
C 0.000000 0.000000 0.000000
O 1.200000 0.000000 0.000000
H -0.540000 0.940000 0.000000
H -0.540000 -0.940000 0.000000
Compatibility Notes
- D4 dispersion: Not supported with UMA. The model's training data already includes dispersion-corrected DFT for relevant tasks (PBE+D3 for omc, odac, oc25).
- GBSA solvation: Fully supported. QEq charges are computed automatically when implicit solvation is enabled.
- All MAPLE job types are compatible with UMA: single point, optimization, transition state search, IRC, frequency, PES scan, and molecular dynamics.
- UMA inference interface: use
inference=turboonly when you explicitly want the CUDA fast path; otherwise keep the default interface. - Requires
fairchem-corePython package (v2.9+) and a HuggingFace account with access to thefacebook/UMArepository.
