Skip to content

nvidia-alchemi: document AIMNet2 as incomplete - #3

Open
faranm-stack wants to merge 1 commit into
anogassis:add-nvidia-alchemi-agentfrom
faranm-stack:pr212-aimnet2-docs
Open

faranm-stack wants to merge 1 commit into
anogassis:add-nvidia-alchemi-agentfrom
faranm-stack:pr212-aimnet2-docs

Conversation

@faranm-stack

Copy link
Copy Markdown

Summary

Documents AIMNet2 as incomplete and experimental in the nvidia-alchemi agent, as agreed for microsoft#212, and corrects a stale AIMNet2 cache path in the agent instructions.

Type of change

  • New agent (under agents/<name>/)
  • Update to an existing agent
  • New starter kit (under starter-kits/<name>/)
  • Update to an existing starter kit
  • Schema change (docs/schemas/**)
  • Workflow / script change (.github/**)
  • Documentation only
  • Other (describe below)

Related issue / tracking

refs microsoft#212; follows #1 and #2.

Schema impact

  • No schema changes
  • Schema changes are backward compatible
  • Schema changes are breaking — add the breaking-change label and link the rollout plan below

Validation checklist

  • Documentation (README.md, schemas) is updated to match the change.
  • No hand-edits to .auto-registry/** (it is generated post-merge).
  • No OS / editor artefacts committed (.DS_Store, .env, *.swp, .idea/, .vs/, etc.).
  • If model-weight files are added, they are Git-LFS tracked, ≤5 GB each, and in an allowed format. (No model-weight files added.)
  • No secrets, customer data, or internal-only URLs are committed.
  • All Markdown links resolve.

Reviewer notes (optional)

Why. The nvalchemi AIMNet2 wrapper disables the Coulomb and DFT-D3 terms (its docstring says to compose them separately), but the bundled aimnet2 checkpoint requires both: its metadata sets needs_coulomb, needs_dispersion and coulomb_mode: sr_embedded. load_model("aimnet2") therefore returns only the short-range neural-network term. On the bundled water molecule, compared with the aimnet package's reference calculator using its metadata defaults:

load_model("aimnet2") aimnet reference
Maximum force 9.48 eV/Å 0.68 eV/Å
O–H stretch force +5.55 eV/Å (apart) −0.45 eV/Å (together)
Symmetric O–H scan minimum none below 1.10 Å 0.959 Å

The agent path matches the reference calculator with Coulomb and D3 disabled (|ΔE| ≤ 4×10⁻⁴ eV, |ΔF| ≤ 6×10⁻⁷ eV/Å), and its forces match finite differences of its own energy, so the gap is the missing terms rather than the force calculation. The existing release checks (finite values, GPU/CPU agreement, rotation invariance) cannot detect this.

Changes (6 files, text only; no numerical code paths change):

  • Agent, tool and metadata descriptions: validated scope is MACE inference, relaxation and MD; AIMNet2 is incomplete.
  • Agent instructions: AIMNet2 joins the workflows that require disclosure and explicit confirmation (requirement 9), and the potentials table marks it experimental. The AIMNet2 cache path now reads /opt/cache/aimnet/aimnet2_wb97m_d3_0.pt, where nvidia-alchemi: hardening fixes and H100 revalidation for #212 #1 moved it.
  • list_models() description, README verification status and coverage list, and CHANGELOG.

Validation on this exact commit:

  • The repository's validate_pr.py from current main, run against this branch merged with main: passed, 0 failures.
  • Clean image build: pip check passed; all three checkpoints loaded after hash verification; all 43 tests passed with no skips.
  • Agent instructions are 31,936 characters; the schema limit is 32,000, so future additions will need trimming elsewhere.

Not changed: the AIMNet2 wrapper behaviour itself. Restoring the Coulomb and D3 terms by default, with the reference comparison above as a regression test, is a possible follow-up for the maintainers.

The nvalchemi AIMNet2 wrapper disables the Coulomb and DFT-D3 terms that the
bundled aimnet2 checkpoint requires (its metadata sets needs_coulomb,
needs_dispersion and coulomb_mode sr_embedded), so load_model("aimnet2")
returns only the short-range neural-network term. On the bundled water
molecule the maximum force is 9.48 eV/A versus 0.68 eV/A from the aimnet
reference calculator, and a symmetric O-H stretch scan has no minimum below
1.10 A versus 0.959 A.

- Mark AIMNet2 as incomplete and experimental in the agent, tool and metadata
  descriptions, the agent's potentials table, list_models() and the README.
- Add AIMNet2 to the workflows that require disclosure and explicit user
  confirmation before use.
- Correct the AIMNet2 cache path in the agent instructions to
  /opt/cache/aimnet/aimnet2_wb97m_d3_0.pt.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant