{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ea36f7b0",
   "metadata": {},
   "source": [
    "# How much data do you need to fine-tune?\n",
    "\n",
    "This notebook is the *How much data do you need?* section of the\n",
    "[Fine-tuning universal models](https://aitomistic.com/mlatom/tutorial_finetuning.html)\n",
    "tutorial, with the data set bundled so that it runs as it stands.\n",
    "\n",
    "We take 50 ethanol geometries carrying **B3LYP/6-31G\\*** reference energies, hold 15\n",
    "of them out, and fine-tune **AIQM2** on 5, 10, 20 and 35 of the rest. At every size we\n",
    "measure two things on the held-out geometries: the constant offset between the model\n",
    "and the reference, and the error that is left once that offset has been removed.\n",
    "\n",
    "The whole experiment is then repeated six times, each time with a different draw of\n",
    "which geometries are held out and which are trained on. At these sizes one run on its\n",
    "own is not worth much — the section *Why six repeats* below shows why.\n",
    "\n",
    "**What you need installed:** MLatom, and the `xtb` and `dftd4` programs — AIQM2 is a\n",
    "GFN2-xTB\\* baseline plus a neural-network correction plus a D4 dispersion term, and\n",
    "fine-tuning has to evaluate the first and the third over your geometries. MLatom\n",
    "finds them through the `xtbbin` and `dftd4bin` environment variables. Making the data\n",
    "set in the first place also needs PySCF, but the file is bundled, so you only need\n",
    "PySCF if you want to remake it.\n",
    "\n",
    "**Everything random is seeded.** The one seed is set in the next cell, and everything\n",
    "else is derived from it: repeat number *i* uses seed + *i*, which fixes both the draw\n",
    "of held-out geometries and the starting point of the fine-tuning runs. The geometries\n",
    "themselves were made at the same seed — the last section shows how."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f5e34f58",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:48:59.075383Z",
     "iopub.status.busy": "2026-08-14T07:48:59.074927Z",
     "iopub.status.idle": "2026-08-14T07:49:01.182669Z",
     "shell.execute_reply": "2026-08-14T07:49:01.181551Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MLatom 3.25.0\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import random\n",
    "import shutil\n",
    "\n",
    "import numpy as np\n",
    "import torch\n",
    "import mlatom as ml\n",
    "\n",
    "SEED = 20260814\n",
    "random.seed(SEED)\n",
    "np.random.seed(SEED)\n",
    "torch.manual_seed(SEED)\n",
    "\n",
    "KCAL = ml.constants.Hartree2kcalpermol\n",
    "\n",
    "print('MLatom', ml.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a1c8e06",
   "metadata": {},
   "source": [
    "## The reference data\n",
    "\n",
    "`ethanol_50.json` holds 50 ethanol geometries, each with a B3LYP/6-31G\\* energy. They\n",
    "are Wigner samples taken around the B3LYP/6-31G\\* equilibrium structure, so they cover\n",
    "a real stretch of the ground-state surface rather than sitting on top of each other."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "91622561",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:49:01.186705Z",
     "iopub.status.busy": "2026-08-14T07:49:01.186381Z",
     "iopub.status.idle": "2026-08-14T07:49:01.197331Z",
     "shell.execute_reply": "2026-08-14T07:49:01.196318Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "50 geometries, 9 atoms each\n",
      "elements: ['C', 'H', 'O']\n",
      "reference energies span 38.1 kcal/mol\n"
     ]
    }
   ],
   "source": [
    "db = ml.data.molecular_database.load('ethanol_50.json', format='json')\n",
    "\n",
    "E_ref = np.array(db.get_properties('energy'))\n",
    "\n",
    "print(f'{len(db)} geometries, {len(db[0].atoms)} atoms each')\n",
    "print('elements:', sorted(set(db[0].element_symbols)))\n",
    "print(f'reference energies span {(E_ref.max() - E_ref.min()) * KCAL:.1f} kcal/mol')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d79bba05",
   "metadata": {},
   "source": [
    "## The two numbers we measure\n",
    "\n",
    "**The offset** is the average of model minus reference over the held-out geometries.\n",
    "AIQM2 and B3LYP/6-31G\\* do not put the zero of energy in the same place — they treat\n",
    "the separated atoms differently — so their absolute energies differ by an amount that\n",
    "depends on which atoms are present. Every geometry here is the same molecule, C₂H₆O,\n",
    "so that difference is one number for all fifty.\n",
    "\n",
    "**The error about the offset** is how much the errors still scatter once that offset\n",
    "has been taken out. That is the part that says how well the *shape* of the surface is\n",
    "reproduced, and it is the part fine-tuning has to work for. Removing the offset is\n",
    "the easiest thing in the world for fine-tuning to do, so the plain RMSE flatters it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f067e49c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:49:01.201058Z",
     "iopub.status.busy": "2026-08-14T07:49:01.200769Z",
     "iopub.status.idle": "2026-08-14T07:49:01.207236Z",
     "shell.execute_reply": "2026-08-14T07:49:01.206220Z"
    }
   },
   "outputs": [],
   "source": [
    "def compare(model, reference_db):\n",
    "    'Model energies, and model minus reference, on the same geometries, in kcal/mol.'\n",
    "    predicted = reference_db.copy(atomic_labels=['xyz_coordinates'],\n",
    "                                  molecular_labels=[])\n",
    "    model.predict(molecular_database=predicted, calculate_energy=True)\n",
    "    E = np.array(predicted.get_properties('energy')) * KCAL\n",
    "    return E, E - np.array(reference_db.get_properties('energy')) * KCAL\n",
    "\n",
    "\n",
    "def summarise(difference):\n",
    "    'Offset, RMSE, and RMSE about the offset.'\n",
    "    offset = difference.mean()\n",
    "    return (offset,\n",
    "            np.sqrt((difference ** 2).mean()),\n",
    "            np.sqrt(((difference - offset) ** 2).mean()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fc6fdc4",
   "metadata": {},
   "source": [
    "## The runs\n",
    "\n",
    "Six repeats, and within each repeat one fine-tuning run per training-set size.\n",
    "Everything except the amount of data is held the same: a single ensemble member is\n",
    "fine-tuned rather than all eight (`model_index=0`, about eight times faster), the\n",
    "dispersion term is AIQM2's own D4 with the ωB97X parameters, and training runs for\n",
    "200 passes over the data. Every run starts from the shipped model again rather than\n",
    "from the previous run's.\n",
    "\n",
    "Within one repeat, the smaller training sets are the first part of the same pool, so\n",
    "the 5 geometries are also among the 10, and so on — each size adds data rather than\n",
    "drawing something unrelated.\n",
    "\n",
    "Each run begins by working out what there is to fit: the GFN2-xTB\\* baseline and the\n",
    "D4 term are computed over the training geometries and subtracted from the reference\n",
    "energies, and it is that difference the network learns.\n",
    "\n",
    "This is the slow cell. The first repeat leaves its four fine-tuned models behind in\n",
    "`ft_5/`, `ft_10/`, `ft_20/` and `ft_35/`; the later repeats reuse one scratch\n",
    "directory, which is removed at the end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9d2c43e9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:49:01.210238Z",
     "iopub.status.busy": "2026-08-14T07:49:01.209953Z",
     "iopub.status.idle": "2026-08-14T07:52:12.723853Z",
     "shell.execute_reply": "2026-08-14T07:52:12.721974Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_5\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_5/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_10\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_10/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_20\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_20/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_35\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_35/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 1, RMSE about the offset / kcal mol-1:  as shipped: 1.63   5: 1.27   10: 0.79   20: 0.84   35: 0.40\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 2, RMSE about the offset / kcal mol-1:  as shipped: 1.48   5: 1.32   10: 1.17   20: 0.84   35: 0.30\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 3, RMSE about the offset / kcal mol-1:  as shipped: 1.52   5: 1.12   10: 1.10   20: 0.68   35: 0.48\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 4, RMSE about the offset / kcal mol-1:  as shipped: 0.98   5: 0.99   10: 1.00   20: 0.50   35: 0.32\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 5, RMSE about the offset / kcal mol-1:  as shipped: 1.12   5: 1.12   10: 0.82   20: 0.64   35: 0.47\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Start retraining on model 0...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AIQM2 TL model saved in /home/mlatom/ethanol_ft/nb/ft_scratch\n",
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_scratch/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "repeat 6, RMSE about the offset / kcal mol-1:  as shipped: 1.23   5: 1.05   10: 1.23   20: 0.70   35: 0.38\n"
     ]
    }
   ],
   "source": [
    "sizes = [5, 10, 20, 35]\n",
    "n_repeats = 6\n",
    "\n",
    "rows = {key: [] for key in ['as shipped'] + sizes}   # one (offset, RMSE, shape) per repeat\n",
    "scatter = {}                                         # the first repeat, kept for the picture\n",
    "\n",
    "for repeat in range(n_repeats):\n",
    "    seed = SEED + repeat\n",
    "    random.seed(seed)\n",
    "    np.random.seed(seed)\n",
    "    torch.manual_seed(seed)\n",
    "\n",
    "    order = np.random.RandomState(seed).permutation(len(db))\n",
    "    test_db = ml.data.molecular_database([db[int(i)] for i in order[:15]])\n",
    "    pool_db = ml.data.molecular_database([db[int(i)] for i in order[15:]])\n",
    "\n",
    "    E, difference = compare(ml.models.methods(method='AIQM2', model_index=0), test_db)\n",
    "    rows['as shipped'].append(summarise(difference))\n",
    "    if repeat == 0:\n",
    "        scatter['reference'] = np.array(test_db.get_properties('energy')) * KCAL\n",
    "        scatter['as shipped'] = E\n",
    "\n",
    "    for n in sizes:\n",
    "        workdir = f'ft_{n}' if repeat == 0 else 'ft_scratch'\n",
    "        if os.path.isdir(workdir):\n",
    "            shutil.rmtree(workdir)          # never start from an earlier run's files\n",
    "\n",
    "        random.seed(seed)\n",
    "        np.random.seed(seed)\n",
    "        torch.manual_seed(seed)\n",
    "\n",
    "        train_db = ml.data.molecular_database([pool_db[i] for i in range(n)])\n",
    "\n",
    "        model = ml.models.methods(method='AIQM2', model_index=0)\n",
    "        model.train(\n",
    "            molecular_database=train_db,\n",
    "            property_to_learn='energy',\n",
    "            dispersion_kwargs={'method': 'd4', 'functional': 'wb97x'},\n",
    "            file_to_save_model=workdir + '/',\n",
    "            hyperparameters={'max_epochs': 200},\n",
    "        )\n",
    "\n",
    "        E, difference = compare(ml.models.aiqm2.load(workdir + '/'), test_db)\n",
    "        rows[n].append(summarise(difference))\n",
    "        if repeat == 0 and n == sizes[-1]:\n",
    "            scatter['fine-tuned'] = E\n",
    "\n",
    "    print(f'repeat {repeat + 1}, RMSE about the offset / kcal mol-1:  '\n",
    "          + '   '.join(f'{key}: {rows[key][-1][2]:.2f}'\n",
    "                       for key in ['as shipped'] + sizes), flush=True)\n",
    "\n",
    "if os.path.isdir('ft_scratch'):\n",
    "    shutil.rmtree('ft_scratch')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "68614795",
   "metadata": {},
   "source": [
    "## The numbers\n",
    "\n",
    "The first column is the plain RMSE against the reference. The second subtracts the\n",
    "offset before taking the RMSE, so it measures only the part that varies from geometry\n",
    "to geometry. Each is the average over the six repeats, with the smallest and the\n",
    "largest of them in brackets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "370dfc29",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:52:12.729212Z",
     "iopub.status.busy": "2026-08-14T07:52:12.727661Z",
     "iopub.status.idle": "2026-08-14T07:52:12.740970Z",
     "shell.execute_reply": "2026-08-14T07:52:12.739572Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " training geometries           RMSE            RMSE about the offset\n",
      "          as shipped   87.29  (86.74 to 87.76)    1.33  (0.98 to 1.63)\n",
      "                   5    2.03  (1.17 to 3.54)    1.15  (0.99 to 1.32)\n",
      "                  10    1.60  (0.84 to 2.95)    1.02  (0.79 to 1.23)\n",
      "                  20    0.84  (0.63 to 1.13)    0.70  (0.50 to 0.84)\n",
      "                  35    0.44  (0.34 to 0.52)    0.39  (0.30 to 0.48)\n",
      "\n",
      "mean over 6 repeats, in kcal/mol, on 15 held-out geometries each time\n",
      "offset of the shipped model: 87.3 kcal/mol\n"
     ]
    }
   ],
   "source": [
    "def spread(values):\n",
    "    v = np.array(values)\n",
    "    return f'{v.mean():5.2f}  ({v.min():.2f} to {v.max():.2f})'\n",
    "\n",
    "\n",
    "offset_shipped = np.array(rows['as shipped'])[:, 0].mean()\n",
    "\n",
    "print(f'{\"training geometries\":>20}   {\"RMSE\":^21}   {\"RMSE about the offset\":^21}')\n",
    "for key in ['as shipped'] + sizes:\n",
    "    r = np.array(rows[key])\n",
    "    print(f'{str(key):>20}   {spread(r[:, 1]):>21}   {spread(r[:, 2]):>21}')\n",
    "\n",
    "print(f'\\nmean over {n_repeats} repeats, in kcal/mol, on 15 held-out geometries each time')\n",
    "print(f'offset of the shipped model: {offset_shipped:.1f} kcal/mol')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d9de695",
   "metadata": {},
   "source": [
    "## Why six repeats\n",
    "\n",
    "Look at the brackets, and at what the cell below prints. Even the shipped model — the\n",
    "same model in every repeat — gives a different answer each time, because the 15\n",
    "geometries it is being graded on change. The fine-tuned runs move for that reason and\n",
    "because they saw different training geometries as well. At 5, 10 and 20 the resulting\n",
    "spread is comparable to the step from one training-set size to the next, so a single\n",
    "run at a single size cannot tell you whether more data helped: it can come out flat,\n",
    "or backwards. By 35 the repeats agree closely with one another, which is itself part\n",
    "of the answer to the question in the title."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2a79525f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:52:12.744679Z",
     "iopub.status.busy": "2026-08-14T07:52:12.744241Z",
     "iopub.status.idle": "2026-08-14T07:52:12.751088Z",
     "shell.execute_reply": "2026-08-14T07:52:12.749870Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          as shipped: RMSE about the offset varies by 0.65 kcal/mol across the 6 repeats\n",
      "                   5: RMSE about the offset varies by 0.33 kcal/mol across the 6 repeats\n",
      "                  10: RMSE about the offset varies by 0.44 kcal/mol across the 6 repeats\n",
      "                  20: RMSE about the offset varies by 0.33 kcal/mol across the 6 repeats\n",
      "                  35: RMSE about the offset varies by 0.17 kcal/mol across the 6 repeats\n"
     ]
    }
   ],
   "source": [
    "for key in ['as shipped'] + sizes:\n",
    "    v = np.array(rows[key])[:, 2]\n",
    "    print(f'{str(key):>20}: RMSE about the offset varies by '\n",
    "          f'{v.max() - v.min():.2f} kcal/mol across the {n_repeats} repeats')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f0b3482",
   "metadata": {},
   "source": [
    "## The picture\n",
    "\n",
    "Left: both errors against the size of the training set, averaged over the repeats,\n",
    "with the shaded band covering the best to the worst repeat. Right: the held-out\n",
    "energies from the first repeat, each set measured from its own mean — which is\n",
    "exactly the operation that removes the offset, so a number that large does not appear\n",
    "on the plot. What is left there is the disagreement about shape."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d6e03fc3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:52:12.754592Z",
     "iopub.status.busy": "2026-08-14T07:52:12.754170Z",
     "iopub.status.idle": "2026-08-14T07:52:13.856222Z",
     "shell.execute_reply": "2026-08-14T07:52:13.855175Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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wQexWq19fAcE4YjGxkbmzZvX5XZMTMyABI56snnzZjIyMrr8XI8dO5bc3Fw+/PDDkz7eYrFw/fXXExcXhyzLlJWV8dxzz3HvvfcSFxdHTEwMt956KzEx/gmDO3bsYMWKFfzyl7/EaDQiyzJ5eXmsXbuWa6+9dsBeZzCYTKYuv3sEQRCE/ufz+SgpKaGmpob4+HgmTJggkgEE4TSddjAHQJZl5s+fz/z583nqqacoLi7mvffe47nnnuMHP/gBs2bN4vLLL+eGG24YNt/gCQNv/CgbD14yif+8OBu3VyPMKHfrYi9LEvPGxzM3M47CimZeXl/O5vImAOrtbv7wWQkvrSvnuzPGcVVeEhFhxp6eSuglVdOpa3UTGWYk0mLocarA1q1bMZlMXHzxxXz44YdccsklKErPwZ/33nuP3NxcFi5cGNg2e/ZsWltbeeedd7p8oMrNzeXrr7/G6XRisVgoLy8HICUlJbBPSkpKl9tz5szh/fffp7q6ukumTye3281rr71GWVkZqqqSmJjIVVddxdixYwF/dsK//vUvamtrURSF1NRUli5d2u04uq7z/vvvs3nzZjweDxEREVx++eWB9Wuaxr/+9S8KCwsJCwvj0ksvJTc3F4DXX38di8XCFVdcEcgmWbRoEatXr8btdjN9+nSuuOIKDAZDILPpoosuYvXq1YHXeMEFFwT+Lvbu3cuHH35IfX09UVFRXHLJJUyePBnwXzi98847bNmyhbCwMM4777we/16OZ8+ePXz44Yc0NDRgNBqZMmUKl19+eZcxzjU1NXzyySc0NDSQmprKddddR1RUFAANDQ3861//orKykvDwcObNmxfIHukp8+a//uu/+N73vofL5eKzzz5D13UeeughAB5//PFu6zv6vfz9738PwGOPPQb4s3ays7P55z//SWlpKbquExcXx6233trjFw4ul4v33nuPXbt2ATB58mQuu+wyzGYzjz76KHa7nVdeeQVZlrn44ot5//33UVWVhx56iGnTprFo0SLefPNNdu7ciaZpREVFcd1115GSkoKu63z99desXbuWtrY2xo4dyzXXXMPo0aP529/+RnNzc+DY+fn5PWZv7dq1K/D32qkzuPTJJ5+c9O/SbDaTkJAA+H9+JUlC13WampqIi4vDarUGAkWapiFJEm63m9bW1sC3pllZWbz88ssnfa6hxOVysW3b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5hARERERERERVSNM5hARERERERERVSNM5hARERERERERVSNM5hARERERERERVSNM5hARERERERERVSNM5hBRiVxdXbFmzZoylw8LC4NEIsHDhw8rLKbahnVKRERERETPkgghhK6DIKLy07VrVzRv3vy5EjAlSUlJgbGxMYyMjMpUPjs7G/fv34ednR0kEkm5xFATLVy4ELt27UJUVFSpZVmnRERERET0LLbMIaqFhBDIzc0tU1kbG5syJ3IAQC6Xw97enkmHcpKTk8M6JSIiIiIqxsCBA2FhYYH//Oc/ug6lUjGZQ1SDBAYG4siRI1i7di0kEgkkEgkSEhI03XT27NkDHx8fKBQKHD9+HHFxcejfvz/s7OygVCrRunVrHDx4UGufBbtZSSQSfP755xg4cCCMjIzg4eGB//73v5r1BbsEhYaGwtzcHPv27UOjRo2gVCrh7++PpKQkzTa5ubmYMmUKzM3NYWVlhdmzZyMgIAADBgwo8Xy3bt0KJycnGBkZYeDAgfjkk09gbm6uVebXX39Fy5YtYWBggHr16mHRokVaiazExET0798fSqUSpqameOONN3Dnzh3N+oULF6J58+bYtm0bnJ2doVQqMWHCBKhUKqxcuRL29vawtbXFhx9+qHXchw8f4q233oKNjQ1MTU3xyiuv4MKFC5o6WbRoES5cuKB5n0JDQzX1u2nTJrz22mswNjbGhx9+WGQ3q+PHj6NTp04wNDSEk5MTpkyZgoyMDM36Tz/9FB4eHjAwMICdnV2t+3IjIiIiotph6tSp+PLLL3UdRqVjMoeoBlm7di3at2+PsWPHIikpCUlJSXByctKsnzNnDpYvX47o6Gg0a9YM6enp6NOnDw4dOoTz58/D398f/fr1Q2JiYonHWbRoEd544w389ddf6NOnD4YNG4b79+8XW/7x48f4+OOP8dVXX+Ho0aNITExEUFCQZv2KFSvwzTffICQkBOHh4UhNTcWuXbtKjCE8PBzjxo3D1KlTERUVhZ49exZKqBw7dgwjR47E1KlTceXKFWzZsgWhoaGacmq1Gv3798f9+/dx5MgRHDhwANevX8eQIUO09hMXF4c9e/Zg7969+O677/DFF1+gb9++uHXrFo4cOYIVK1bgvffeQ2RkpGabwYMH4+7du9izZw/Onj2Lli1bonv37rh//z6GDBmCmTNnonHjxpr36dlj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vLwQFBSECRMmlOncQkNDMWrUqOeeJao0ixcvho2NDZYtW4br16/D3NwcLVu2xLvvvgsg7wHQ999/jylTpqBJkybw9PTEunXrNO+5qakpjh49ijVr1iA1NRUuLi5YtWoVevfurTnG3LlzER8fj1dffRVmZmZYvHhxqS1zyhIbAHz00UeahKKJiQlmzpyJR48elUvdLF++HGq1GiNGjEBaWhpatWqFffv2wcLColz2/6ygoCAEBATAy8sLT548KVP9AGWro2eV9n6VZX9FxZo//svLetnr8UUU97lRGk9PT/z555+aFjqrVq3C+++/Dz09PcyfPx+3b9+Gg4MDxo0bVyFxl1VlXsc1nUSU9ycwERERERHhtddeQ8eOHTFr1ixdh1LuFixYgCNHjnCMNqJyVpM/N6h8sWUOEREREVEF6NixI4YOHarrMCrEnj17NGNzEFH5qcmfG1S+2DKHiIiIiIiIiKgaefmRoYiIiIiIiIiIqNIwmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI0wmUNEREREREREVI38P86GP35rE0M0AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1150x460 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import NullLocator\n",
    "\n",
    "mean_rmse = [np.array(rows[n])[:, 1].mean() for n in sizes]\n",
    "mean_shape = [np.array(rows[n])[:, 2].mean() for n in sizes]\n",
    "lo_rmse = [np.array(rows[n])[:, 1].min() for n in sizes]\n",
    "hi_rmse = [np.array(rows[n])[:, 1].max() for n in sizes]\n",
    "lo_shape = [np.array(rows[n])[:, 2].min() for n in sizes]\n",
    "hi_shape = [np.array(rows[n])[:, 2].max() for n in sizes]\n",
    "shipped_shape = np.array(rows['as shipped'])[:, 2].mean()\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11.5, 4.6))\n",
    "\n",
    "ax1.axhline(shipped_shape, color='0.6', ls=':', lw=1.2)\n",
    "ax1.text(sizes[-1], shipped_shape * 1.05,\n",
    "         f'AIQM2 as shipped, about its offset ({shipped_shape:.2f})',\n",
    "         ha='right', va='bottom', color='0.45', fontsize=9)\n",
    "ax1.fill_between(sizes, lo_rmse, hi_rmse, color='#1f77b4', alpha=0.13, lw=0)\n",
    "ax1.fill_between(sizes, lo_shape, hi_shape, color='#d62728', alpha=0.13, lw=0)\n",
    "ax1.plot(sizes, mean_rmse, 'o-', color='#1f77b4', lw=2, ms=7, label='RMSE')\n",
    "ax1.plot(sizes, mean_shape, 's--', color='#d62728', lw=2, ms=7,\n",
    "         label='RMSE about the offset')\n",
    "ax1.set_yscale('log')\n",
    "ax1.set_xticks(sizes)\n",
    "ax1.set_xticklabels([str(n) for n in sizes])\n",
    "ax1.xaxis.set_minor_locator(NullLocator())\n",
    "ax1.set_xlim(sizes[0] - 2, sizes[-1] + 2)\n",
    "ax1.set_ylim(min(lo_shape) * 0.75, max(hi_rmse) * 1.6)\n",
    "# plain numbers on the log axis, and no minor ticks to crowd them\n",
    "ax1.yaxis.set_minor_locator(NullLocator())\n",
    "yticks = [t for t in (0.2, 0.3, 0.5, 1, 2, 3, 5, 10) if\n",
    "          ax1.get_ylim()[0] <= t <= ax1.get_ylim()[1]]\n",
    "ax1.set_yticks(yticks)\n",
    "ax1.set_yticklabels([f'{t:g}' for t in yticks])\n",
    "ax1.set_xlabel('training geometries')\n",
    "ax1.set_ylabel('error on 15 held out / kcal mol$^{-1}$')\n",
    "ax1.set_title('Error against B3LYP/6-31G*, averaged over '\n",
    "              f'{n_repeats} repeats', fontsize=11)\n",
    "ax1.legend(frameon=False, loc='lower left')\n",
    "\n",
    "ref_c = scatter['reference'] - scatter['reference'].mean()\n",
    "shipped_c = scatter['as shipped'] - scatter['as shipped'].mean()\n",
    "tuned_c = scatter['fine-tuned'] - scatter['fine-tuned'].mean()\n",
    "\n",
    "lo = min(ref_c.min(), shipped_c.min(), tuned_c.min()) - 2\n",
    "hi = max(ref_c.max(), shipped_c.max(), tuned_c.max()) + 2\n",
    "ax2.plot([lo, hi], [lo, hi], color='0.75', lw=1, zorder=0)\n",
    "ax2.scatter(ref_c, shipped_c, marker='s', s=45, color='#d62728',\n",
    "            label='AIQM2 as shipped')\n",
    "ax2.scatter(ref_c, tuned_c, marker='o', s=45, color='#1f77b4',\n",
    "            label=f'fine-tuned on {sizes[-1]}')\n",
    "ax2.set_xlim(lo, hi)\n",
    "ax2.set_ylim(lo, hi)\n",
    "ax2.set_xlabel('B3LYP/6-31G*, measured from the set mean / kcal mol$^{-1}$')\n",
    "ax2.set_ylabel('predicted, from its own mean / kcal mol$^{-1}$')\n",
    "ax2.set_title('Both axes are differences within the set, so the\\n'\n",
    "              f'{abs(offset_shipped):.0f} kcal/mol between the two zeros '\n",
    "              'is not on this plot', fontsize=11)\n",
    "ax2.legend(frameon=False, loc='upper left')\n",
    "\n",
    "fig.tight_layout()\n",
    "fig.savefig('learning_curves.png', dpi=150)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "621303e1",
   "metadata": {},
   "source": [
    "## Does it reproduce what it was trained on?\n",
    "\n",
    "Held-out numbers are only worth reading once the fit itself is sound, so here is the\n",
    "first repeat's largest model measured on its own training geometries — the fit rather\n",
    "than a prediction, on the same footing as the held-out column above.\n",
    "\n",
    "It comes out about twice as tight as the prediction, which is the expected shape of\n",
    "things. With the first and third layers of the network held fixed there is not much\n",
    "room to memorise 35 geometries. A training error near zero standing beside a held-out\n",
    "error of a few tenths would be the warning sign; a factor of two is not."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "1196a748",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-14T07:52:13.861383Z",
     "iopub.status.busy": "2026-08-14T07:52:13.860802Z",
     "iopub.status.idle": "2026-08-14T07:52:16.317577Z",
     "shell.execute_reply": "2026-08-14T07:52:16.316101Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "model loaded from /home/mlatom/ethanol_ft/nb/ft_35/cv0.pt\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the first repeat, fine-tuned on 35 geometries\n",
      "  on those same 35 geometries:  RMSE about the offset 0.20 kcal/mol,  largest single error 0.73 kcal/mol\n",
      "  on the 15 it never saw:      RMSE about the offset 0.40 kcal/mol\n"
     ]
    }
   ],
   "source": [
    "order = np.random.RandomState(SEED).permutation(len(db))\n",
    "pool_db = ml.data.molecular_database([db[int(i)] for i in order[15:]])\n",
    "train_db = ml.data.molecular_database([pool_db[i] for i in range(sizes[-1])])\n",
    "\n",
    "_, difference = compare(ml.models.aiqm2.load(f'ft_{sizes[-1]}/'), train_db)\n",
    "_, _, shape_on_training = summarise(difference)\n",
    "\n",
    "print(f'the first repeat, fine-tuned on {sizes[-1]} geometries')\n",
    "print(f'  on those same {len(train_db)} geometries:  RMSE about the offset '\n",
    "      f'{shape_on_training:.2f} kcal/mol,  largest single error '\n",
    "      f'{np.abs(difference - difference.mean()).max():.2f} kcal/mol')\n",
    "print(f'  on the 15 it never saw:      RMSE about the offset '\n",
    "      f'{rows[sizes[-1]][0][2]:.2f} kcal/mol')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35c31a91",
   "metadata": {},
   "source": [
    "## How the data set was made\n",
    "\n",
    "`ethanol_50.json` was made with the script below, at the same seed. It optimises\n",
    "ethanol at B3LYP/6-31G\\*, computes the harmonic frequencies at the same level, draws\n",
    "50 Wigner samples from that distribution and puts a B3LYP/6-31G\\* energy on each. It\n",
    "needs PySCF; nothing else in this notebook does. On 40 cores it took about 20\n",
    "minutes, almost all of it in the geometry optimisation and the 50 energies.\n",
    "\n",
    "```python\n",
    "#!/usr/bin/env python3\n",
    "# Makes ethanol_50.json: 50 Wigner-sampled ethanol geometries with\n",
    "# B3LYP/6-31G* reference energies.  Everything random is seeded (SEED below).\n",
    "import time\n",
    "import numpy as np\n",
    "import mlatom as ml\n",
    "\n",
    "SEED = 20260814\n",
    "np.random.seed(SEED)\n",
    "\n",
    "t0 = time.time()\n",
    "\n",
    "ethanol = ml.data.molecule.from_xyz_string('''9\n",
    "\n",
    "C          -1.2334000000        0.2049000000        0.0000000000\n",
    "C           0.0000000000       -0.6656000000        0.0000000000\n",
    "O           1.1748000000        0.1300000000        0.0000000000\n",
    "H          -2.1360000000       -0.4131000000        0.0000000000\n",
    "H          -1.2413000000        0.8433000000        0.8871000000\n",
    "H          -1.2413000000        0.8433000000       -0.8871000000\n",
    "H           0.0182000000       -1.3097000000        0.8865000000\n",
    "H           0.0182000000       -1.3097000000       -0.8865000000\n",
    "H           1.9412000000       -0.4470000000        0.0000000000\n",
    "''')\n",
    "\n",
    "dft = ml.models.methods(method='B3LYP/6-31G*')\n",
    "print('reference method:', type(dft).__name__, dft.method, dft.basis, flush=True)\n",
    "\n",
    "# 1. equilibrium geometry at the reference level\n",
    "eqmol = ml.optimize_geometry(model=dft, initial_molecule=ethanol,\n",
    "                             program='ASE').optimized_molecule\n",
    "print('optimised, E =', eqmol.energy, 'Hartree; t =', round(time.time()-t0, 1), 's', flush=True)\n",
    "eqmol.dump(filename='ethanol_eq.json', format='json')\n",
    "\n",
    "# 2. harmonic frequencies at the same level -> the Wigner distribution\n",
    "ml.freq(model=dft, molecule=eqmol)\n",
    "freqs = np.array(eqmol.frequencies)\n",
    "print('frequencies / cm^-1:', np.round(freqs, 1), flush=True)\n",
    "print('freq done; t =', round(time.time()-t0, 1), 's', flush=True)\n",
    "eqmol.dump(filename='ethanol_eq_freq.json', format='json')\n",
    "\n",
    "# 3. Wigner sampling, seeded\n",
    "init = ml.generate_initial_conditions(molecule=eqmol,\n",
    "                                      generation_method='wigner',\n",
    "                                      number_of_initial_conditions=50,\n",
    "                                      initial_temperature=0,\n",
    "                                      random_seed=SEED)\n",
    "print('sampled', len(init), 'geometries; t =', round(time.time()-t0, 1), 's', flush=True)\n",
    "\n",
    "# 4. keep only the geometries, then label them at the reference level\n",
    "db = init.copy(atomic_labels=['xyz_coordinates'], molecular_labels=[])\n",
    "print('db props before labelling:', db[0].__dict__.keys(), flush=True)\n",
    "dft.predict(molecular_database=db, calculate_energy=True)\n",
    "print('labelled; t =', round(time.time()-t0, 1), 's', flush=True)\n",
    "\n",
    "E = np.array(db.get_properties('energy'))\n",
    "print('energies Hartree: min', E.min(), 'max', E.max())\n",
    "print('span / kcal mol-1:', (E.max()-E.min())*627.5094740631)\n",
    "print('above the minimum-energy structure / kcal mol-1:',\n",
    "      (E - eqmol.energy).min()*627.5094740631, '..',\n",
    "      (E - eqmol.energy).max()*627.5094740631)\n",
    "print('any NaN:', np.isnan(E).any())\n",
    "\n",
    "db.dump(filename='ethanol_50.json', format='json')\n",
    "print('wrote ethanol_50.json; total t =', round(time.time()-t0, 1), 's', flush=True)\n",
    "\n",
    "# round trip check\n",
    "chk = ml.data.molecular_database.load('ethanol_50.json', format='json')\n",
    "Echk = np.array(chk.get_properties('energy'))\n",
    "print('round trip: n =', len(chk), 'max |dE| =', np.abs(Echk-E).max())\n",
    "print('elements:', sorted(set(chk[0].element_symbols)))\n",
    "```"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
