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=turbo only when you explicitly want the CUDA fast path; otherwise keep the default interface.
  • Requires fairchem-core Python package (v2.9+) and a HuggingFace account with access to the facebook/UMA repository.