GithubHelp home page GithubHelp logo

montana / alf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lanl/alf

0.0 1.0 0.0 234 KB

A framework for performing active learning for training machine-learned interatomic potentials.

License: Other

Python 100.00%

alf's Introduction

Active Learning Framework:

This code automates the construction of datasets for machine learned (ML) interatomic potentials through active learning. By automating job execution utilizing the Parsl framework, the active learning process can run for many iterations without human intervention. It breaks the process down into 4 fundamental tasks:

  1. system construction (building)
  2. sampling (samplers)
  3. ML interatomic potential training
  4. electronic structure calculations

The framework uses a general purpose ensembling calculator that enables the tracking of model uncertainty during the training process.

This package is closely interfaced to the Parsl framework which enables task execution through a queueing system or smaller clusters. Some requirements, such as the Parsl resource config file in alframework/parsl_resource_configs will need to be modified for your computer system.

This code is currently a work in progress and documentation is still sparse.

Requirements:

The requirements for this software are evolving, though generally, they will include the following:

  1. NumPy
  2. ASE
  3. a QM software package with interface (usually ASE)
  4. a ML interatomic potential model (HIPPYNN is open source and an interface is provided)

Configuration:

To control job flow in the active learning framework, 5 json files are used. The master configuration file controls how all pieces of the framework are assembled and defines where to find the other 4 files. Each of the other 4 files passes inputs to one of the four subtasks enumerated in the first section. To see how these files relate to one another, please see the examples folder.

With the json files completed, the PYTHONPATH environment variable must be set to the directory where alframework is held. Eventually, this step will be replaced by making alframework an installable package.

Testing:

Once the environment is constructed with the required packages, it is important to test individual operations done by the active learning framework for erorrs. This is done to ensure all processes complete successufuly when run in active learning. Testing each of of the four sub processes is enabled in the following way:

python -m alframework master.json --test_builder #Test structure building
python -m alframework master.json --test_sampler #Test mlmd sampling
python -m alframework master.json --test_ml 
python -m alframework master.json --test_qm

These functions will execute in such a way as to pass errors back to the front end to enable easier debugging. Errors encountered in the active learning phase.

Execution:

Once each task has been tested, active learning can be started with:

python -m alframework master.json

It is generally advised to run the master process on a head node. It will automatically interface with the queueing system and run future jobs on compute nodes.

Citations

[1] Justin S. Smith, Benjamin Nebgen, Nithin Mathew, Jie Chen, Nicholas Lubbers, Leonid Burakovsky, Sergei Tretiak, Hai Ah Nam, Timothy Germann, Saryu Fensin, Kipton Barros "Automated discovery of a robust interatomic potential for aluminum" Nat. Comm. 2021, 12, 1257. https://doi.org/10.1038/s41467-021-21376-0

[2] Maksim Kulichenko, Kipton Barros, Nicholas Lubbers, Ying Wai Li, Richard Messerly, Sergei Tretiak, Justin S. Smith, Benjamin Nebgen "Uncertainty-driven dynamics for active learning of interatomic potentials" Nat. Comp. Sci. 2023, 1968. https://doi.org/10.1038/s43588-023-00406-5

[3] Shuhao Zhang, Malgorzata Makos, Ryan Jadrich, Elfi Kraka, Kipton Barros, Benjamin Nebgen, Sergei Tretiak, Olexandr Isayev, Nicholas Lubbers, Richard Messerly, Justin Smith "Exploring the frontiers of chemistry with a general reactive machine learning potential". https://doi.org/10.26434/chemrxiv-2022-15ct6

alf's People

Contributors

bnebgen-lanl avatar boogie3d avatar lubbersnick avatar yingwaili avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.