{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "!pip install graph-pes" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "# ensure we start from a clean slate\n", "!rm -rf graph-pes-results/custom-model-run* custom_model.py config.yaml" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Implement a model\n", "\n", "> FYI, you can open this notebook in [Google Colab](https://colab.research.google.com/github/jla-gardner/graph-pes/blob/main/docs/source/quickstart/implement-a-model.ipynb) and follow along interactively 😊\n", "\n", "Any and all [GraphPESModel](https://jla-gardner.github.io/graph-pes/models/root.html#graph_pes.GraphPESModel) subclasses are fully compatible with ``graph-pes``! You can:\n", "\n", "- train them using `graph-pes-train`\n", "- run MD in LAMMPS using `pair_style graph_pes`\n", "- load and analyse them using [load_model](https://jla-gardner.github.io/graph-pes/models/root.html#graph_pes.models.load_model)\n", "\n", "To demonstrate this, below we'll implement a somewhat arbitrary model, and train it on the [QM7](https://jla-gardner.github.io/load-atoms/datasets/QM7.html) dataset.\n", "\n", "## Implementation\n", "\n", "This model generates embeddings of neighbouring atoms as a function of their distance from the central atom and their atomic number.\n", "\n", "These embeddings are summed over all neighbouring atoms to generate an embedding of the local environment, before being read out to predict the local energy:\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing custom_model.py\n" ] } ], "source": [ "%%writefile custom_model.py\n", "\n", "from __future__ import annotations\n", "\n", "import torch\n", "from graph_pes import AtomicGraph, GraphPESModel\n", "from graph_pes.atomic_graph import (\n", " PropertyKey,\n", " index_over_neighbours,\n", " neighbour_distances,\n", " sum_over_neighbours,\n", ")\n", "from graph_pes.models.components.distances import Bessel, PolynomialEnvelope\n", "from graph_pes.utils.nn import MLP, PerElementEmbedding\n", "\n", "\n", "class CustomModel(GraphPESModel):\n", " def __init__(\n", " self,\n", " cutoff: float,\n", " channels: int,\n", " radial_features: int,\n", " ):\n", " super().__init__(\n", " cutoff,\n", " implemented_properties=[\"local_energies\"],\n", " )\n", "\n", " # node embeddings\n", " self.Z_embedding = PerElementEmbedding(channels)\n", "\n", " # messages\n", " self.radial_basis = Bessel(radial_features, cutoff)\n", " self.envelope = PolynomialEnvelope(cutoff)\n", " self.message = MLP(\n", " layers=[\n", " radial_features + channels,\n", " 2 * channels,\n", " 2 * channels,\n", " channels,\n", " ],\n", " activation=\"CELU\",\n", " bias=False,\n", " )\n", "\n", " # readout\n", " self.readout = MLP(\n", " layers=[channels, channels, 1],\n", " activation=\"CELU\",\n", " )\n", "\n", " def forward(self, graph: AtomicGraph) -> dict[PropertyKey, torch.Tensor]:\n", " # compute the local energies\n", " # assume that the input graph has N atoms, E edges\n", " # and denote the number of radial features as R\n", " # and the number of channels as C\n", "\n", " # 1. embed node features\n", " h = self.Z_embedding(graph.Z) # (N, C)\n", "\n", " # 2. expand distances\n", " r = neighbour_distances(graph) # (E,)\n", " r_features = self.radial_basis(r) # (E, R)\n", " r_features = self.envelope(r_features) # (E, R)\n", "\n", " # 3. create neigbour embeddings\n", " h_neighbour = index_over_neighbours(h, graph) # (E, C)\n", " neighbour_embeddings = torch.cat(\n", " [h_neighbour, r_features], dim=-1\n", " ) # (E, C + R)\n", "\n", " # 4. create messages\n", " messages = self.message(neighbour_embeddings) # (E, C)\n", "\n", " # 5. aggregate messages\n", " aggregated_messages = sum_over_neighbours(messages, graph) # (N, C)\n", "\n", " # 6. update node embeddings\n", " h = h + aggregated_messages # (N, C)\n", "\n", " # 7. readout\n", " local_energies = self.readout(h).squeeze(-1) # (N,)\n", "\n", " return {\"local_energies\": local_energies}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now use and instantiate our model as normal:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'local_energies': tensor([0.6992, 0.4318, 0.4318], grad_fn=)}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ase.build import molecule\n", "from custom_model import CustomModel\n", "from graph_pes import AtomicGraph\n", "\n", "model = CustomModel(cutoff=5.0, channels=3, radial_features=8)\n", "graph = AtomicGraph.from_ase(molecule(\"H2O\"))\n", "model(graph)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get all the functionality of a [GraphPESModel](https://jla-gardner.github.io/graph-pes/models/root.html#graph_pes.GraphPESModel) for free:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'energy': tensor(1.5627, grad_fn=),\n", " 'forces': tensor([[-0.0000e+00, -0.0000e+00, -1.2980e-05],\n", " [-0.0000e+00, -7.9464e-06, 6.4898e-06],\n", " [-0.0000e+00, 7.9464e-06, 6.4898e-06]], grad_fn=),\n", " 'local_energies': tensor([0.6992, 0.4318, 0.4318], grad_fn=)}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.get_all_PES_predictions(graph)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training\n", "\n", "Let's train our architecture on the ``QM7`` dataset. Below, we\n", "use [load-atoms](https://jla-gardner.github.io/load-atoms/) to load this dataset, and save the training and validation, splits to files ``train.xyz`` and ``val.xyz``:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "39aa9d14f94a40be8f1f2c0d00578033", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ase.io import write\n",
    "from load_atoms import load_dataset\n",
    "\n",
    "dataset = load_dataset(\"QM7\")\n",
    "train, val, test = dataset.random_split([1000, 100, 500])\n",
    "write(\"train.xyz\", train)\n",
    "write(\"val.xyz\", val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our configuration file is as normal (see the [graph-pes-train guide](https://jla-gardner.github.io/graph-pes/cli/graph-pes-train.html) for more details):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Writing config.yaml\n"
     ]
    }
   ],
   "source": [
    "%%writefile config.yaml\n",
    "\n",
    "model:\n",
    "    +custom_model.CustomModel:\n",
    "        cutoff: 5.0\n",
    "        channels: 3\n",
    "        radial_features: 8\n",
    "\n",
    "data:\n",
    "    train: train.xyz\n",
    "    valid: val.xyz\n",
    "\n",
    "loss: +PerAtomEnergyLoss()\n",
    "\n",
    "fitting:\n",
    "    trainer_kwargs:\n",
    "        max_epochs: 150\n",
    "        accelerator: cpu\n",
    "        check_val_every_n_epoch: 5\n",
    "\n",
    "    optimizer:\n",
    "        name: AdamW\n",
    "        lr: 0.001\n",
    "    \n",
    "    loader_kwargs:\n",
    "        batch_size: 64\n",
    "\n",
    "general:\n",
    "    run_id: custom-model-run\n",
    "    progress: logged\n",
    "\n",
    "wandb: null"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[graph-pes INFO]: Started `graph-pes-train` at 2024-12-05 15:23:22.097\n",
      "[graph-pes INFO]: Successfully parsed config.\n",
      "[graph-pes INFO]: ID for this training run: custom-model-run\n",
      "[graph-pes INFO]: \n",
      "Output for this training run can be found at:\n",
      "   └─ graph-pes-results/custom-model-run\n",
      "      ├─ logs/rank-0.log    # find a verbose log here\n",
      "      ├─ model.pt           # the best model\n",
      "      ├─ lammps_model.pt    # the best model deployed to LAMMPS\n",
      "      └─ train-config.yaml  # the complete config used for this run\n",
      "\n",
      "GPU available: True (mps), used: False\n",
      "TPU available: False, using: 0 TPU cores\n",
      "HPU available: False, using: 0 HPUs\n",
      "[graph-pes INFO]: Logging to graph-pes-results/custom-model-run/logs/rank-0.log\n",
      "[graph-pes INFO]: Preparing data\n",
      "[graph-pes INFO]: Setting up datasets\n",
      "[graph-pes INFO]: Pre-fitting the model on 1,000 samples\n",
      "[graph-pes INFO]: Number of learnable params : 159\n",
      "[graph-pes INFO]: Sanity checking the model...\n",
      "[graph-pes INFO]: Starting fit...\n",
      "                            valid/metrics   valid/metrics   timer/its_per_s   timer/its_per_s\n",
      "   epoch      time   per_atom_energy_rmse     energy_rmse             train             valid\n",
      "       5       0.9                0.95875        15.93489         142.85715         225.00000\n",
      "      10       1.9                0.86565        12.73514         125.00000         250.00000\n",
      "      15       2.8                0.83548        12.34085         142.85715         225.00000\n",
      "      20       3.8                0.80516        11.67857         142.85715         225.00000\n",
      "      25       4.7                0.75636        11.28497         142.85715         250.00000\n",
      "      30       5.6                0.67931         9.89885         142.85715         266.66669\n",
      "      35       6.6                0.47443         6.82189         125.00000         225.00000\n",
      "      40       7.6                0.30103         4.54500         125.00000         225.00000\n",
      "      45       8.6                0.29590         4.52308          90.90909         183.33334\n",
      "      50       9.6                0.30439         4.76209         111.11111         250.00000\n",
      "      55      10.5                0.28471         4.38400         142.85715         225.00000\n",
      "      60      11.7                0.28413         4.37031         125.00000         200.00000\n",
      "      65      12.6                0.27077         4.18555         142.85715         266.66669\n",
      "      70      13.5                0.26347         4.06702         142.85715         225.00000\n",
      "      75      14.5                0.25786         3.99087         111.11111         225.00000\n",
      "      80      15.4                0.25494         3.93345         142.85715         250.00000\n",
      "      85      16.4                0.24410         3.77900         125.00000         225.00000\n",
      "      90      17.3                0.23976         3.70559         125.00000         208.33334\n",
      "      95      18.3                0.23695         3.71650         142.85715         225.00000\n",
      "     100      19.2                0.23006         3.61704         142.85715         225.00000\n",
      "     105      20.2                0.21487         3.33465         125.00000         225.00000\n",
      "     110      21.1                0.20718         3.20724         166.66667         225.00000\n",
      "     115      22.1                0.20142         3.11764         125.00000         225.00000\n",
      "     120      23.1                0.18958         2.94265         142.85715         250.00000\n",
      "     125      24.0                0.18257         2.83350         142.85715         291.66669\n",
      "     130      25.1                0.17456         2.71116         142.85715         225.00000\n",
      "     135      26.3                0.16515         2.58272         125.00000         225.00000\n",
      "     140      27.2                0.16033         2.48846         142.85715         250.00000\n",
      "     145      28.2                0.15938         2.47974         111.11111         208.33334\n",
      "     150      29.2                0.14885         2.31319         142.85715         225.00000\n",
      "`Trainer.fit` stopped: `max_epochs=150` reached.\n",
      "[graph-pes INFO]: Loading best weights from \"graph-pes-results/custom-model-run/checkpoints/best.ckpt\"\n",
      "[graph-pes INFO]: Training complete. Awaiting final Lightning and W&B shutdown...\n"
     ]
    }
   ],
   "source": [
    "!graph-pes-train config.yaml"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Analysis\n",
    "--------\n",
    "\n",
    "We can now load our trained model and analyse the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CustomModel(\n",
       "  (Z_embedding): PerElementEmbedding(dim=3, elements=[])\n",
       "  (radial_basis): Bessel(n_features=8, cutoff=5.0, trainable=True)\n",
       "  (envelope): PolynomialEnvelope(cutoff=5.0, p=6)\n",
       "  (message): MLP(11 → 6 → 6 → 3, activation=CELU(alpha=1.0))\n",
       "  (readout): MLP(3 → 3 → 1, activation=CELU(alpha=1.0))\n",
       ")"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from graph_pes.models import load_model\n",
    "\n",
    "model = load_model(\"graph-pes-results/custom-model-run/model.pt\")\n",
    "model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is a very unsophisticated architecture, so we don't expect it to be particularly accurate..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EREpjOGcyIEYu7KsXbsW8fHxDOhEREQuhuGcyEE0bpfo5uaGVq1a2bkqIiIiUhLDOZEDYB9zIiIiAhjOieyOwZyIiIiMGM6J7IjBnIiIiOpjOCeyEwZzIiIiaozhnMhODhw4gK1btwJgMCciIqJaDOdEdnL99dcjMTERGo2GwZyIiIgAcIdQIrsaOXIkzpw5gzZt2ti7FCIiInIAHDknUohOp8MPP/xw1eMM5kRERGTEcE6kAOPiz/j4eMyfP9/e5RAREZGDYjgnklnjriyzZs1CVlaWnasiIiIiR8RwTiSjptolhoSE2LkyIiIickQM50QyYR9zIiIishbDOZEMGMyJiIjIFgznRBJjMCciIiJbMZwTSWzatGkM5kRERGQThnMiic2YMQP+/v4M5kRERGQ17hBKJLHevXvjwoUL9i6DiIiInJBgMBgM9i6CnFd1dTXy8vIAAAEBAXBz4+s9IiIiIlsxnBMREREROQjOOSciIiIichAM50REREREDoLhnIiIiIjIQTCcExERERE5CIZzIiIiIiIHwXBOREREROQgGM6JiIiIiBwEwzkRERERkYNgOCciIiIichAM50REREREDoLhnIiIiIjIQTCcExERERE5CIZzIiIiIiIHwXBOREREROQgGM6JiIiIiBwEwzkRERERkYNgOCciIiIichAM50REREREDoLhnIiIiIjIQTCcExERERE5CIZzIiIiIiIHwXBOREREROQg3OxdAJE1qqurkZeXZ+8yiIiIyMUEBATAzU3+6MxwTk4lLy8PISEh9i6DiIiIXExWVhaCg4Nlvw+ntRAREREROQjBYDAY7F0EkaU4rcV6586dQ0xMDAAgJSUFnTt3tnNFZAn+3JwPf2bOiT8352OvnxmntRCZ4ObmpshbSi1V586d+ffnhPhzcz78mTkn/tycT0v8mXFaCxERERGRg2A4JyIiIiJyEAznREREREQOguGciIiIiMhBMJwTERERETkIhnMiIiIiIgfBcE5ERERE5CC4CRERERERkYPgyDkRERERkYNgOCciIiIichAM50REREREDoLhnIiIiIjIQTCcExERERE5CIZzIiIiIiIHwXBOREREROQgGM6JiIiIiBwEwzkRERERkYNgOCciIiIichAM50QtyNChQyEIgkUfUvnjjz8wYcIEhIWFwcvLCwEBARgxYgS+/vpr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r68v1Go13N3dERoainfffRfZ2dl1hq3Ieeedd7Bq1SoMGTIE7u7uiuPEg4ODcerUKbz99tsYMGAAXF1dYWtrC29vb0RGRmLr1q1IS0trloXHTHH58mXs3bsXAPDcc8+1cG3ofqASog080URERPed2NhYrFmzBp07d8aPP/5oNP3kyZORnJwMNzc3/PTTT9BoNGarS0pKijT84uLFi7LjuC1BWFgYDh48iLi4OCxdurSlq9PqLVmyBPPnz0fPnj1x4sSJVjlHO1kW9pwTEVGrU1FRIT2IaKynGKhdJGjz5s0AaoN0cwbmADB+/Hj069cPpaWljXogtqkVFxdL4/SNjWcn48rKyvD+++8DABYuXMjAnMyCwTkREVmcc+fOyU5V+euvv2LOnDnS7Bi6VT+VLF++XFpeffbs2ear6P9TqVRYtmwZAOBf//qX4tSDLam0tBTz58/Hm2++KbsqKJnugw8+wI0bNxAaGirNCETUWBzWQkREFicmJgbZ2dmYOHEiBgwYAE9PT1RUVODYsWNYtWoVcnNzAdTOPf/111/X67Gsrq5GYWEhKisrkZGRgZdffhmVlZUYO3as0an/GiMhIQE3btzAhAkT0KtXryYrhyzDhx9+iKKiIkRGRiIoKKilq0P3CQbnRERkcWJiYgzOc61v8ODB+OKLLwyuhFlYWFhn4Smg9qHRI0eO4MEHHzRrXYmIzInznBMRkcV5/fXX0b17d+zatQuFhYUoLi7GnTt30L59e4SEhCAqKgoTJ06U5spW4unpibCwMCxdupSBORFZPPacExERERFZCD4QSkRERERkIRicExERERFZCAbnREREREQWgsE5EREREZGFYHBORERERGQhGJwTEREREVkIBudERERERBaCwTkRERERkYVgcE5EREREZCEYnBMRERERWQgG50REREREFoLBORERERGRhWBwTkRERERkIRicExERERFZCAbnREREREQWgsE5EREREZGFYHBORERERGQhGJwTEREREVkIBudERERERBbi/wB4FsgXChdxlwAAAABJRU5ErkJggg==",
      "text/plain": [
       "
" ] }, "metadata": { "image/png": { "height": 308, "width": 371 } }, "output_type": "display_data" } ], "source": [ "from graph_pes.utils.analysis import parity_plot\n", "\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "parity_plot(\n", " model,\n", " test,\n", " property=\"energy_per_atom\",\n", " units=\"eV/atom\",\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MD\n", "\n", "Running MD with our new model architecture is straightforward.\n", "\n", "Below, we use ASE-driven MD for simplicity - please see the [LAMMPS MD guide](https://jla-gardner.github.io/graph-pes/tools/lammps.html) for instructions on how to run MD with our model in LAMMPS." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ase import units\n", "from ase.build import molecule\n", "from ase.md.langevin import Langevin\n", "\n", "# set up calculator and structure\n", "calculator = model.ase_calculator()\n", "structure = molecule(\"CH4\")\n", "structure.center(vacuum=3.0) # place in a large unit cell\n", "structure.pbc = True\n", "\n", "# set up MD\n", "structure.calc = calculator\n", "dynamics = Langevin(\n", " structure,\n", " timestep=0.1 * units.fs,\n", " temperature_K=300,\n", " friction=0.01 / units.fs,\n", ")\n", "dynamics.attach(\n", " lambda: structure.write(\"dump.xyz\", append=True),\n", " interval=100,\n", ")\n", "\n", "# run MD\n", "dynamics.run(1000) # 1000 steps = 0.1 ps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unsurprisingly, our very simple model has not been able to keep the simulation stable:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", "
\n", " \n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
\n", " \n", " \n", "\n" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from load_atoms import view\n", "\n", "view(structure, show_bonds=True)" ] } ], "metadata": { "kernelspec": { "display_name": "graph-pes", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.21" } }, "nbformat": 4, "nbformat_minor": 2 }