{"id":"mlip-ni-zero-point-policy-replay","title":"Ni Zero-Point Policy Replay","subtitle":"Local Rust replay turns the Ni promotion canary green before a Cloud Run image rebuild.","category":"validation","tags":["mlip","distill","ni","hyperribbon","live-lab"],"source":"articles/docs/mlip-ni-zero-point-policy-replay.md","lang":"en","words":359,"readMinutes":2,"toc":[{"depth":2,"text":"Why This Matters","id":"why-this-matters"},{"depth":2,"text":"Result","id":"result"},{"depth":2,"text":"Pair Table","id":"pair-table"},{"depth":2,"text":"Interpretation","id":"interpretation"},{"depth":2,"text":"Next Gate","id":"next-gate"}],"html":"<h1 id=\"ni-zero-point-policy-replay-and-canary\">Ni Zero-Point Policy Replay And Canary</h1><p><strong>Status:</strong> local replay gate passed; Cloud Run promotion canary passed<br><strong>Generated:</strong> 2026-05-27<br><strong>Campaign:</strong> <code>ni-fcc-eam-home-turf-paired-accuracy-v1</code><br><strong>Replay artifact:</strong> <code>library-site/src/reports/assets/mlip/ni-paired-accuracy-zero-point-replay-summary.json</code><br><strong>Cloud canary artifact:</strong> <code>library-site/src/reports/assets/mlip/ni-paired-accuracy-promotion-canary-summary.json</code></p>\n<h2 id=\"why-this-matters\">Why This Matters</h2><p>The first full Ni paired run rejected our broad transfer ribbon: no measured\npair improved and ten pairs regressed. That was not a launch failure; it was the\nsystem doing its job. The artifacts showed that the prior support family was\nnot appropriate for pure Ni, so the next question became sharper:</p>\n<p>Can a same-material, non-overlapping Ni support ribbon improve energy and\nrelaxation accuracy without changing the MLIP or rerunning raw predictions?</p>\n<p>The answer from local replay was yes enough to justify a new Cloud Run canary.\nThe rebuilt MACE, CHGNet, and ORB Cloud Run jobs then confirmed the same\ndirection: six improved canary pairs, zero regressions.</p>\n<h2 id=\"result\">Result</h2><div class=\"table-wrap\"><table><thead><tr>\n<th>Measure</th>\n<th align=\"right\">Replay</th>\n<th align=\"right\">Cloud canary</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"Measure\">Canary pairs</td>\n<td align=\"right\" data-label=\"Replay\">6</td>\n<td align=\"right\" data-label=\"Cloud canary\">6</td>\n</tr>\n<tr>\n<td data-label=\"Measure\">Improved pairs</td>\n<td align=\"right\" data-label=\"Replay\">6</td>\n<td align=\"right\" data-label=\"Cloud canary\">6</td>\n</tr>\n<tr>\n<td data-label=\"Measure\">Regressed pairs</td>\n<td align=\"right\" data-label=\"Replay\">0</td>\n<td align=\"right\" data-label=\"Cloud canary\">0</td>\n</tr>\n<tr>\n<td data-label=\"Measure\">Mean relative error lift</td>\n<td align=\"right\" data-label=\"Replay\">75.12%</td>\n<td align=\"right\" data-label=\"Cloud canary\">about 75%</td>\n</tr>\n<tr>\n<td data-label=\"Measure\">Policy mode applied</td>\n<td align=\"right\" data-label=\"Replay\"><code>material_family_zero_point</code></td>\n<td align=\"right\" data-label=\"Cloud canary\"><code>material_family_zero_point</code></td>\n</tr>\n<tr>\n<td data-label=\"Measure\">Claim status</td>\n<td align=\"right\" data-label=\"Replay\">Spend gate passed</td>\n<td align=\"right\" data-label=\"Cloud canary\">Accuracy canary passed</td>\n</tr>\n</tbody></table></div><h2 id=\"pair-table\">Pair Table</h2><div class=\"table-wrap\"><table><thead><tr>\n<th>Row</th>\n<th>MLIP</th>\n<th align=\"right\">Baseline error</th>\n<th align=\"right\">Cloud Distill error</th>\n<th align=\"right\">Lift</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"Row\">Energy-volume</td>\n<td data-label=\"MLIP\">MACE-MP-0</td>\n<td align=\"right\" data-label=\"Baseline error\">1.2803</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.3200</td>\n<td align=\"right\" data-label=\"Lift\">75.01%</td>\n</tr>\n<tr>\n<td data-label=\"Row\">Relaxation stability</td>\n<td data-label=\"MLIP\">MACE-MP-0</td>\n<td align=\"right\" data-label=\"Baseline error\">1.2798</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.3184</td>\n<td align=\"right\" data-label=\"Lift\">75.12%</td>\n</tr>\n<tr>\n<td data-label=\"Row\">Energy-volume</td>\n<td data-label=\"MLIP\">CHGNet</td>\n<td align=\"right\" data-label=\"Baseline error\">1.2943</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.3236</td>\n<td align=\"right\" data-label=\"Lift\">75.00%</td>\n</tr>\n<tr>\n<td data-label=\"Row\">Relaxation stability</td>\n<td data-label=\"MLIP\">CHGNet</td>\n<td align=\"right\" data-label=\"Baseline error\">1.2930</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.3196</td>\n<td align=\"right\" data-label=\"Lift\">75.28%</td>\n</tr>\n<tr>\n<td data-label=\"Row\">Energy-volume</td>\n<td data-label=\"MLIP\">ORB-v3</td>\n<td align=\"right\" data-label=\"Baseline error\">1.0438</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.2608</td>\n<td align=\"right\" data-label=\"Lift\">75.01%</td>\n</tr>\n<tr>\n<td data-label=\"Row\">Relaxation stability</td>\n<td data-label=\"MLIP\">ORB-v3</td>\n<td align=\"right\" data-label=\"Baseline error\">1.0427</td>\n<td align=\"right\" data-label=\"Cloud Distill error\">0.2575</td>\n<td align=\"right\" data-label=\"Lift\">75.31%</td>\n</tr>\n</tbody></table></div><h2 id=\"interpretation\">Interpretation</h2><p>The old policy treated all large energy corrections as dangerous. The Ni canary\nshowed a more specific case: the support set and sealed evaluation set share the\nsame material family, have no structural leakage, pass exact support/eval\ndistance, and show roughly 99.5-99.9% support lift. In that case, the correction\nis best treated as a guarded energy zero-point alignment, not ordinary\ncross-material transfer.</p>\n<p>The Rust policy now keeps the old <code>max_energy_bias_ev_per_atom</code> cap for normal\ncorrections and adds a separate\n<code>max_energy_zero_point_shift_ev_per_atom</code> path that requires:</p>\n<ul>\n<li>energy or relaxed-energy row only</li>\n<li>same material-root overlap</li>\n<li>exact support/eval distance gate</li>\n<li>high support-lift threshold</li>\n<li>bounded ribbon feature distance</li>\n</ul>\n<h2 id=\"next-gate\">Next Gate</h2><p>Promote the Ni material-family ribbon to the full 5x5 paired accuracy run. The\npromotion rule stays strict: paired baseline and Distill cells must share raw\nprediction checkpoints, every pair must be measured, and no pair may regress.\nAcceleration remains out of scope until accuracy is locked.</p>\n"}