{"id":"mlip-cloud-baseline-distill","title":"MLIP Cloud Baseline and Distill: First Real 5x5 Results","subtitle":"Cloud Run completed the 25-cell MLIP baseline and produced the first backend-diverse Distill energy wins.","category":"validation","tags":["mlip","cloud-run","distill","baseline","featured"],"source":"articles/docs/mlip-cloud-baseline-distill-report.md","lang":"en","words":920,"readMinutes":4,"toc":[{"depth":2,"text":"What Ran","id":"what-ran"},{"depth":2,"text":"Distill Results","id":"distill-results"},{"depth":2,"text":"What This Proves","id":"what-this-proves"},{"depth":2,"text":"What We Are Not Claiming Yet","id":"what-we-are-not-claiming-yet"},{"depth":2,"text":"Lessons From The Run","id":"lessons-from-the-run"},{"depth":2,"text":"Next Step","id":"next-step"}],"html":"<h1 id=\"mlip-cloud-baseline-and-distill-first-real-5x5-results\">MLIP Cloud Baseline and Distill: First Real 5x5 Results</h1><p>On May 23, 2026, Lupine completed its first real cloud MLIP baseline grid and used it to test the first Distill interventions against the same sealed scoring contract.</p>\n<p>This matters because the result is no longer a smoke test. The baseline grid ran five MLIP backends across five physics rows, with all 25 baseline cells completed through the same Cloud Run runner surface that future GCP and HPC campaigns can reproduce. Distill then entered the loop as an active runtime layer, not a post-hoc dashboard, and produced the first backend-diverse energy accuracy wins.</p>\n<h2 id=\"what-ran\">What Ran</h2><p>The cloud campaign used the MLIP runner jobs built from image tag <code>distill-b7e84b3bc</code>. The baseline grid covered:</p>\n<div class=\"table-wrap\"><table><thead><tr>\n<th>MLIP</th>\n<th align=\"right\">Energy</th>\n<th align=\"right\">Forces</th>\n<th align=\"right\">Stress</th>\n<th align=\"right\">Elastic</th>\n<th align=\"right\">Relaxation</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"MLIP\">CHGNet</td>\n<td align=\"right\" data-label=\"Energy\">0.1035</td>\n<td align=\"right\" data-label=\"Forces\">0.1649</td>\n<td align=\"right\" data-label=\"Stress\">0.4311</td>\n<td align=\"right\" data-label=\"Elastic\">48.8708</td>\n<td align=\"right\" data-label=\"Relaxation\">0.0557</td>\n</tr>\n<tr>\n<td data-label=\"MLIP\">M3GNet</td>\n<td align=\"right\" data-label=\"Energy\">0.4403</td>\n<td align=\"right\" data-label=\"Forces\">0.6262</td>\n<td align=\"right\" data-label=\"Stress\">1022.3483</td>\n<td align=\"right\" data-label=\"Elastic\">21634.7398</td>\n<td align=\"right\" data-label=\"Relaxation\">0.6683</td>\n</tr>\n<tr>\n<td data-label=\"MLIP\">MACE</td>\n<td align=\"right\" data-label=\"Energy\">0.4116</td>\n<td align=\"right\" data-label=\"Forces\">0.2644</td>\n<td align=\"right\" data-label=\"Stress\">0.5669</td>\n<td align=\"right\" data-label=\"Elastic\">35.5238</td>\n<td align=\"right\" data-label=\"Relaxation\">0.5604</td>\n</tr>\n<tr>\n<td data-label=\"MLIP\">ORB-v3</td>\n<td align=\"right\" data-label=\"Energy\">0.4295</td>\n<td align=\"right\" data-label=\"Forces\">0.1240</td>\n<td align=\"right\" data-label=\"Stress\">0.2801</td>\n<td align=\"right\" data-label=\"Elastic\">16.1451</td>\n<td align=\"right\" data-label=\"Relaxation\">0.5327</td>\n</tr>\n<tr>\n<td data-label=\"MLIP\">SevenNet</td>\n<td align=\"right\" data-label=\"Energy\">0.3997</td>\n<td align=\"right\" data-label=\"Forces\">0.1957</td>\n<td align=\"right\" data-label=\"Stress\">0.3536</td>\n<td align=\"right\" data-label=\"Elastic\">38.5337</td>\n<td align=\"right\" data-label=\"Relaxation\">0.5750</td>\n</tr>\n</tbody></table></div><p>Lower is better in each row. The row metrics are not interchangeable units: energy is eV per atom MAE, forces are eV per Angstrom RMSE, stress and elastic are GPa MAE, and relaxation is the sealed relaxation penalty.</p>\n<p>The important operational result is that the 25-cell baseline is complete. It gives us a cloud-reproducible reference surface for comparing future Distill versions and future foundation MLIPs.</p>\n<p><img src=\"/reports/assets/mlip-cloud-baseline-heatmap.svg\" alt=\"Row-rank heatmap for the 25-cell MLIP cloud baseline\"></p>\n<p>The heatmap makes the baseline useful at a glance: CHGNet is strongest on energy and relaxation, ORB-v3 is strongest on forces, stress, and elastic, and the M3GNet stress/elastic cells are bright warnings rather than numbers to smooth away.</p>\n<h2 id=\"distill-results\">Distill Results</h2><p>The first cloud Distill run tested triplets for MACE and SevenNet. A triplet means the same MLIP and same sealed fixture were scored three ways: baseline, <code>distill_accuracy</code>, and <code>distill_accuracy_accelerate</code>.</p>\n<div class=\"table-wrap\"><table><thead><tr>\n<th>Cell</th>\n<th align=\"right\">Baseline</th>\n<th align=\"right\">Distill Accuracy</th>\n<th align=\"right\">Distill Accuracy + Accelerate</th>\n<th>Verdict</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"Cell\">MACE energy</td>\n<td align=\"right\" data-label=\"Baseline\">0.4116</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">0.2038</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">0.2038</td>\n<td data-label=\"Verdict\">Reproduced accuracy win</td>\n</tr>\n<tr>\n<td data-label=\"Cell\">SevenNet energy</td>\n<td align=\"right\" data-label=\"Baseline\">0.3997</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">0.3046</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">0.2773</td>\n<td data-label=\"Verdict\">Backend-diverse accuracy win</td>\n</tr>\n<tr>\n<td data-label=\"Cell\">MACE stress</td>\n<td align=\"right\" data-label=\"Baseline\">0.5669</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">0.9331</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">0.7645</td>\n<td data-label=\"Verdict\">Not promoted</td>\n</tr>\n<tr>\n<td data-label=\"Cell\">MACE forces</td>\n<td align=\"right\" data-label=\"Baseline\">0.2644</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">no material change</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">no material change</td>\n<td data-label=\"Verdict\">Needs vector policy work</td>\n</tr>\n<tr>\n<td data-label=\"Cell\">MACE relaxation</td>\n<td align=\"right\" data-label=\"Baseline\">0.5604</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">no material change</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">no material change</td>\n<td data-label=\"Verdict\">Needs active optimizer guard</td>\n</tr>\n<tr>\n<td data-label=\"Cell\">MACE elastic</td>\n<td align=\"right\" data-label=\"Baseline\">35.5238</td>\n<td align=\"right\" data-label=\"Distill Accuracy\">no support/no-op</td>\n<td align=\"right\" data-label=\"Distill Accuracy + Accelerate\">no support/no-op</td>\n<td data-label=\"Verdict\">Needs support fixture</td>\n</tr>\n</tbody></table></div><p>The energy wins are the current positive result. MACE energy improved by about 50 percent against baseline, and SevenNet energy improved as well, with the accelerate policy giving the best SevenNet energy score in this run.</p>\n<p>The stress result is also valuable: it blocked promotion. The local stress improvement did not transfer cleanly into the cloud run, which means the row-specific policy needs stronger calibration before it can be treated as a general Distill capability.</p>\n<p><img src=\"/reports/assets/mlip-distill-triplets.svg\" alt=\"Distill triplet score ratios for MACE energy, SevenNet energy, and MACE stress\"></p>\n<p>The normalized triplet chart is the cleanest current claim surface. The two energy cells move below baseline, while MACE stress moves above baseline and should stay blocked.</p>\n<h2 id=\"what-this-proves\">What This Proves</h2><p>This run proves that the system can now do the real loop:</p>\n<ol>\n<li>Establish a cloud baseline with multiple MLIPs and multiple physics rows.</li>\n<li>Apply a Distill runtime intervention without changing the underlying MLIP.</li>\n<li>Compare baseline, Distill Accuracy, and Distill Accuracy + Accelerate under one scoring contract.</li>\n<li>Preserve failed or non-transferable interventions as evidence instead of burying them.</li>\n</ol>\n<p>That is the right shape for the product. A researcher should be able to run their normal MLIP stack while Lupine adds a governed correction and policy layer that can improve, refuse, backtrack, or expose a fault line during the run.</p>\n<h2 id=\"what-we-are-not-claiming-yet\">What We Are Not Claiming Yet</h2><p>We are not yet claiming broad 5x5x3 superiority. The complete cloud baseline exists, but Distill has only been validated on a small subset of triplets.</p>\n<p>We are also not claiming a speed win yet. On small fixtures, support fitting, runner startup, and artifact I/O can dominate runtime. The first acceleration policy is structurally useful, but the speed claim needs larger cells, warmer runners, and cleaner checkpoint behavior before it becomes publishable.</p>\n<p><img src=\"/reports/assets/mlip-5x5x3-coverage.svg\" alt=\"5x5x3 evidence surface showing baseline complete and early Distill coverage\"></p>\n<p>This is the honest state of the campaign: the baseline plane is full, the Distill planes have real promoted cells, and most of the 5x5x3 surface remains intentionally unclaimed until the row policies earn it.</p>\n<h2 id=\"lessons-from-the-run\">Lessons From The Run</h2><ul>\n<li>Energy correction is the first strong lane. It transferred across MACE and SevenNet.</li>\n<li>Stress needs a stricter row policy. A correction that looks good locally can fail when model precision, fixture path, or cloud loading behavior shifts.</li>\n<li>Elastic needs a real support fixture. The current path can complete baseline scoring, but Distill elastic cannot promote without non-overlapping support structures.</li>\n<li>M3GNet stress and elastic are outliers by orders of magnitude. That may be a unit, fixture, model, or backend-contract issue and should be investigated before using those rows in a headline claim.</li>\n<li>Checkpointing needs backoff and batching. Concurrent GCS checkpoint flushes hit <code>429 Too Many Requests</code>; disabling checkpoints unblocked the baseline, but the durable fix is retry-aware artifact writing.</li>\n</ul>\n<h2 id=\"next-step\">Next Step</h2><p>The next publishable target is not just &quot;run more cells.&quot; It is to turn this into a robust Distill hill climb:</p>\n<ol>\n<li>Keep the 25-cell cloud baseline as the reference.</li>\n<li>Expand Distill triplets first where energy wins transfer cleanly.</li>\n<li>Build row-specific policies for stress, forces, elastic, and relaxation.</li>\n<li>Promote only interventions that beat baseline on sealed eval data.</li>\n<li>Use Phoenix and the app report as the evidence home, while the Rust Distill engine owns the inner-loop decisions.</li>\n</ol>\n<p>The first cloud result is encouraging because it is honest: the baseline is complete, Distill already has real energy wins, and the rows that are not ready are visible. That is exactly the kind of surface we need before asking larger labs to run bigger, more valuable workloads through the same contract.</p>\n"}