grace-foundation-models / CHANGELOG.md
yury-lysogorskiy's picture
Re-issue 2L SavedModels with compute_dense (model-v3-uq-v6 one-time reset)
9f0ed97 verified
|
Raw
History Blame Contribute Delete
5.67 kB

GRACE foundation-model deployment changelog

Each entry = one HF release of the foundation models. Versioning follows pgs/uq/deployment_protocol.md Β§4:

  • vX β€” single incremental release version (1, 2, 3, …), shared by the model-vX / checkpoint-vX / kk-vX tags of a release. Monotonic; never reused.
  • -uq-vN β€” UQ feature version of the artifacts in that release (uqv6 β†’ -uq-v6).

This file is the source of truth, tracked in-repo. On every deploy a copy is uploaded to the HF repo root as CHANGELOG.md (same create_commit as the payloads). Newest release on top.


v3 β€” uq-v6 β€” model tag RE-ISSUED 2026-07-06 (add compute_dense to 2L)

  • Deliberate, one-time reset of the immutable model-v3-uq-v6 tag (protocol Β§4 tags are normally never moved; done here on explicit request). Only the SavedModel payload changed β€” checkpoint-v3-uq-v6 and kk-v3-uq-v6 are untouched (checkpoints and kokkos are byte-identical; the re-export was made from those same checkpoints).
  • What changed: the 10 2L models (OMAT/SMAX/SMAX-OMAT, medium+large), both fp32 and -fp64 = 20 SavedModels, re-exported so the SavedModel now also carries the compute_dense signature (fast dense-reshape neighbor engine) beside compute (segment_sum). Enables TPCalculator(..., mode="uniform") / the dense engine on these models.
  • 1L unchanged (8 models): 1L is a local, scalar-SPBF architecture with no equivariant dense engine, so compute_dense does not apply β€” the 1L SavedModels under the tag are the same v3 artifacts.
  • Re-export reused the existing uqv6 GMM artifacts (no retrain, no GMM rebuild). Weights identical: re-export vs the previous SavedModel agrees to machine precision (fp64 dE=0, dF~1e-15; fp32 pure summation-reorder round-off ≀5e-6). compute vs compute_dense E/F agree (fp64 dE=0). fp64 dirs re-exported with GRACE_UQ_LENIENT_LOAD=1 (old-format checkpoints carry one extra non-weight bool flag; validated safe against the deployed fp64).
  • Client URLs unchanged β€” foundation_models.py already pins model-v3-uq-v6; the shifted tag serves the compute_dense 2L SavedModels transparently.

v4 β€” uq-v6 β€” DEPLOYED 2026-07-06

  • First 3-layer (3L) GRACE foundation models, shipped with UQ: GRACE-3L-OMAT-large (base, fitted on OMat24) and GRACE-3L-OMAT-large-ft-AM (fine-tuned on sAlex+MPTraj).
  • uqv6 UQ feature (schema 6, basis-RP D=132, normalize + log-norm density); per-atom gamma flags both compression and stretch.
  • fp32-only. These models are natively fp32 (no fp64 build exists), so the bare name is the fp32 payload β€” there is no -fp64 variant (unlike the 18 v3 2L/1L models). kokkos.npz is float-promoted (fp64 storage), served separately.
  • LAMMPS kk = pair_style grace/3l/kk[/fp32] β€” MIXED/FP32 precision only (there is no fp64 3L kk kernel). Requires the schema-6-aware build with grace/3l/kk compiled in (its cuBLAS-sgemm selftest threshold is sized for fp32 GEMM). KK-vs-TF agreement is therefore at fp32 tolerance (E ≀5e-7 eV/atom, F ≀1.5e-6 eV/Γ…, gamma rel ≀3e-5), not the ~1e-8 of the fp64 2L/1L kk.
  • Validated (2026-07-06): KK-vs-TF (E/F/stress + gamma, both models) + quick E-nn (gamma bounded, no compression blow-up).
  • Tags: model-v4-uq-v6, checkpoint-v4-uq-v6, kk-v4-uq-v6.
  • Supersedes the earlier upload-only, non-UQ model-v3 ft-AM SavedModel (left in place; immutable).

v3 β€” uq-v6 β€” DEPLOYED 2026-06-26

  • All 18 foundation models rebuilt with the uqv6 UQ feature (schema 6: L2-normalized basis direction (B/β€–Bβ€–)@R + log-norm density channels). De-collapses GMM covariance and flags both compression and stretch.
  • Default precision flipped to fp32. The bare model name now resolves to the fp32 SavedModel + checkpoint (2Γ— faster, Β½ memory; fp32↔fp64 gap negligible β€” gamma max-rel ≀5e-5). The full-precision build is published non-default as <name>-fp64. ⚠ Users who pull the bare name get fp32 on the next cache-miss; use <name>-fp64 for tight finite-difference / bit-reproducible work. kokkos is precision-agnostic (one fp64 npz serves both).
  • kokkos exports re-baked from the uqv6 artifacts (uq_schema_version = 6, uq_feature_dim 130 (1L) / 131 (2L), uq_rp_normalize + uq_rp_add_density_channel).
  • kokkos.npz distributed separately as a raw file (not bundled in the model tarball) β€” see protocol Β§6.
  • Tags: model-v3-uq-v6, checkpoint-v3-uq-v6, kk-v3-uq-v6.
  • Done (2026-06-26): all 18 kokkos exported; UFF-GARDEN restaged fp32-default + -fp64; foundation_models.py wired (fp32 default, -fp64 registered, kokkos separate-dist); bin/upload_v3_{uqv6,kokkos}_hf.sh written + dry-run-validated; schema-6-aware kk pair_style grace C++ build shipped (kk-vs-TF validated 18/18 OK for E/F/stress fp64 GPU + gamma fp64 GPU / fp32 CPU).
  • Deployed (2026-06-26): pushed to HF AMS-ICAMS-RUB/grace-foundation-models β€” models+checkpoints (72 archives, 10.2 GB) at commit 4aff666 (tags model-v3-uq-v6, checkpoint-v3-uq-v6); kokkos (18 npz, 3.28 GB) at commit 75456fa (tag kk-v3-uq-v6); CHANGELOG.md uploaded. Client (foundation_models.py/grace_models.py) committed ef000a2 already resolves these tags. No blockers left.

v2 β€” superseded by v3 (2026-06-26)

  • Previous generation, live on the legacy HF tags kk (model archives, kokkos bundled) and uq-v1 (original 8 OMAT-UQ checkpoints). UQ = uqv2/uqv3-era.
  • This is the baseline the v3 rollout supersedes.