Skip to content

Showing off a very basic example of fine-tuning an MLIP and using it for reaction barrier prediction

License

Notifications You must be signed in to change notification settings

Garden-AI/catalysis-intro

Repository files navigation

catalysis-intro

This repo is a very basic example of fine-tuning an MLIP and testing it against a reaction barrier prediction task.

AI Disclosure

This was a heavily vibe-coded proof of concept. Almost all the code in here was written by Claude 4.5. I did not clean it much afterwards.

What I'd like to try with more time

  • Create a bigger finetuning set (Only had ~100 reactions in my filtered dataset)
  • Run on bigger MACE variants, not just small
  • Do multihead replay finetuning instead of this "naive approach"
  • See if the finetuned model regressed on other tasks
  • See if I can finetune other model architectures

How to reproduce

Step 1: Download part of the OMOL25 dataset locally. Specifically the validation set, val.tar.gz. It's ~20GB. See DATASET.md in their Hugging Face repo for more details.

Step 2: Extract some data for fine-tuning. Use extract_data.py to pull out a subset of the big dataset that will be useful specifically for examining reactions with transition metals. I did this locally. This is in extract_reactions_from_omol.py.

Step 3: Fine-tune MACE on the data. I did this on Modal. This is in finetune_mace_on_modal.py.

Step 4: Evaluate the "plain" and fine-tuned small MACE variants side by side. I did this on Colab, and a copy of the notebook is in evaluation_on_rxn_barrier_prediction_task.ipynb.

Plain model results

plain model graphs

Fine-tuned model results

finetuned model graphs

About

Showing off a very basic example of fine-tuning an MLIP and using it for reaction barrier prediction

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published