A committee-based active learning framework for systematically building training datasets for AENET (Atomic Energy Network) interatomic potentials.
This framework automates the iterative loop of training neural network potentials, sampling new configurations via molecular dynamics, and selecting the most informative structures for DFT relabeling. It uses a committee of neural networks to estimate prediction uncertainty and identify structures where the model is least confident.
┌─────────────────┐ ┌──────────────────┐ ┌───────────────────┐
│ Train Committee │────▶│ LAMMPS MD │────▶│ Evaluate │
│ (N models) │ │ Sampling │ │ Uncertainty │
└─────────────────┘ └──────────────────┘ └───────┬───────────┘
▲ │
│ ▼
┌───────┴───────────┐ ┌───────────────────┐
│ Update Training │◀──────────────────────────│ VASP DFT │
│ Set │ │ Relabeling │
└───────────────────┘ └───────────────────┘
Each iteration:
- Train a committee of AENET neural network potentials
- Sample new configurations using LAMMPS molecular dynamics
- Evaluate candidate structures using committee disagreement (force/energy deviation)
- Relabel selected structures with VASP DFT calculations
- Update the training set and repeat
pip install git+https://github.com/OneTrueJian/Active-learning-aenet.gitOr install in development mode:
git clone https://github.com/OneTrueJian/Active-learning-aenet.git
cd aenet-active-learning
pip install -e .- Python >= 3.6
- NumPy, SciPy
- ASE (Atomic Simulation Environment)
- AENET + AENET-PyTorch (external)
- LAMMPS with AENET pair style (external)
- VASP for DFT calculations (external)
| File | Purpose |
|---|---|
input.json |
Main config: paths, target structure count, iteration control |
aenet_input.json |
AENET training parameters (architecture, hyperparameters) |
judge.json |
Uncertainty thresholds for structure selection |
lammps_sampling.json |
MD sampling parameters (temperature, timestep, steps) |
vasp.json |
VASP calculation and SLURM submission parameters |
exe.json |
Paths to external executables |
aenet_active_learning --input input.json --exe exe.jsonTo resume from a checkpoint:
aenet_active_learning --input input.json --exe exe.json --restartThe framework tracks iteration state in state.json and supports automatic restart from any step within an iteration.
- Committee-based uncertainty quantification using force and energy deviation across multiple neural network models
- Automatic restart with step-level checkpointing within each iteration
- Configurable selection criteria via
delta_energyanddelta_forcethresholds - HPC integration with SLURM job submission and monitoring for VASP calculations
- Flexible structure I/O supporting XSF, POSCAR, LAMMPS dump, and other ASE-compatible formats
MIT License