Skip to content

0.5.1

Latest

Choose a tag to compare

@jnwei jnwei released this 28 Oct 06:45
· 42 commits to main since this release
795e45b

OpenFold3 v0.5.1

Highlights

  • Large memory reduction for inference and validation. MSA and template features are now kept as compact indices and coordinates, and are expanded inside the model only when needed. On a 2,022-token / 20,003-atom sample, persistent feature memory dropped from about 8.2 GB to about 430 MB (#462, @christinaflo).
  • Deterministic inference. Feature creation (e.g. ligand conformers) is now seeded per datapoint. Atom→token aggregation at inference uses an order-stable segmented reduction instead of CUDA scatter_add_. Together these make repeated runs reproducible. Chunk-size tuning results are also cached across targets (#320, @heathcliff233).
  • Numerics and kernel improvements from @GMNGeoffrey:
    • fp32 boolean mask sums (#282)
    • Triton tl.dot now respects torch fp32 matmul precision (#457)
    • TF32 is no longer enabled globally in tests (#470), and tests fail on leaked precision changes (#471)
    • attention kernel backward test fixes (#258)
    • GPU tests now run on ROCm (#433)
  • Lower peak GPU memory. PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True is now the default, which cuts reserved memory by about 3 GB at token budget 384, with larger savings at higher budgets (#414, @chelsea0x3b). Metrics computation is also more memory-efficient (#393).
  • Biotite 2 support. Biotite ≥2.0 now works (#464, #465). This release also drops the temporary biotite<2 pin (#460) and the rdkit<2026 pin (#485).

⚠️ Breaking and behavior changes

  • Python ≥3.12 is now required (#480). The floor was raised from 3.10, following [SPEC 0](https://scientific-python.org/specs/spec-0000/).
  • Conda has been removed from installation and CI paths (#401). Pixi is now the documented development setup (#443).
  • Seeding behavior changed:
    • --num_model_seeds now starts from the configured seed instead of a fixed 42 (#436).
    • Feature RNG is scoped to each datapoint’s seed (#320).Outputs for the same inputs may differ from v0.5.0.
  • MSA deletion_value fix (#347). The coefficient was 4× too large (8/π instead of 2/π). This changes model inputs for nearly every query that has an MSA.
  • Config changes for training users (#462):
    • Template distogram bin settings moved to model.template.template_pair_embedder.distogram.
    • The feature dict now carries msa as uint8 indices and template_pseudo_beta_coords / template_frame_atom_coords instead of the distogram and unit-vector features.

What's Changed - full list

  • Update readme with OpenBind-0 information by @etowahadams in #377
  • Fix naming of openbind parameter download by @jnwei in #380
  • chore(typing): annotate inference configurations by @ahmedtaha100 in #384
  • Specify file destination path of AMD parameter by @jnwei in #387
  • Allow custom residue names for SMILES ligands by @ahmedtaha100 in #386
  • fixes #390: citation file updates by @jandom in #391
  • chore(deps): bump prefix-dev/setup-pixi from 0.10.1 to 0.10.2 in the github-actions group by @dependabot[bot] in #392
  • Update parameter documentation by @jnwei in #396
  • Add CIF template-based generating example notebook by @sukritsingh in #255
  • Add round robin retry of AWS AZs for GPU CI tests by @jnwei in #400
  • Removes conda from installation and CI paths by @jnwei in #401
  • In CI / CD tests: Fix OPENFOLD_CACHE env variable leakage between tests by @jnwei in #402
  • Fix documentation dependency and pocket configuration example by @peter-s-obi in #398
  • More memory efficient metrics by @chelsea0x3b in #393
  • fix: keep inference intermediates under the output directory by @ahmedtaha100 in #363
  • chore: update pixi to 0.8.0 by @jandom in #403
  • [CI/CD] Stop the AMD and EC2 runners sharing a parameter cache by @jnwei in #404
  • ci: fix broken integration tests by @jandom in #405
  • Improve template fetching by ColabFoldQueryRunner from RSCB server by @jnwei in #417
  • chore(deps): bump docker/build-push-action from 7.3.0 to 7.4.0 in the github-actions group by @dependabot[bot] in #424
  • doc update for #172: updating the docs to correctly reflect that msa … by @Pana-TsK in #337
  • Fix cached template reuse in inference query sets by @ahmedtaha100 in #425
  • test: fix flaky BF16 Triton template stack by @ahmedtaha100 in #429
  • Use upstream AZ fallback from start-aws-gha-runner v1.4.0 by @jnwei in #426
  • Don't skip GPU tests on ROCm by @GMNGeoffrey in #433
  • fix: make register_dataset_config return the decorated class by @alexbinnie-apheris in #434
  • Do boolean mask sums directly in fp32 by @GMNGeoffrey in #282
  • chore: update mypy-baseline by @jandom in #437
  • Start --num_model_seeds from the configured seed instead of a fixed 42 by @OtoYuki in #436
  • Inference determinism: atom aggregation, feature seeding, and chunk-size reuse by @heathcliff233 in #320
  • Sets PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True by default by @chelsea0x3b in #414
  • ci: fix daily tests after expandable_segments by @jandom in #438
  • [Feat] Template preprocessing for training dataset cache jsons by @jnwei in #439
  • [Feature] Template preprocessing entry point by @jnwei in #440
  • docs: document Pixi development setup for contributors by @ethanholz in #443
  • Remove unnecessary script init files by @sdvillal in #446
  • Workflow for nightly CI on Brev runners by @jnwei in #448
  • Fix cyclic relpos offsets: shortest ring distance, handle tokenized residues, only cyclize residue offsets by @GMNGeoffrey in #445
  • Replace assert_sole_holder with check for freed storage by @GMNGeoffrey in #451
  • chore(deps): bump prefix-dev/setup-pixi from 0.10.2 to 0.11.0 in the github-actions group by @dependabot[bot] in #452
  • refactor: remove monkeypatch from tests by @jandom in #449
  • fix: correct deletion_value coefficient (was 4x too large) by @Pana-TsK in #347
  • fix: use bin centers, not left edges, for pLDDT/PAE/PDE classificatio… by @Pana-TsK in #355
  • Parse a query entry from an mmcif file by @jnwei in #381
  • initial draft of SKILLS.md by @jnwei in #382
  • chore: strict mypy on everything but the tests by @jandom in #454
  • Use torch fp32 matmul precision setting for tl.dot by @GMNGeoffrey in #457
  • chore: side-step issue with dot_precision.py typing by @jandom in #461
  • fix: pin biotite version to below 2.0 by @rchauhan9 in #460
  • fix: configurable cluster environment; stop SLURM autodetection hangs by @jandom in #459
  • Keep instance defaults for partial dataset config updates by @GMNGeoffrey in #458
  • Fix degeneracy in attention kernel backward tests by @GMNGeoffrey in #258
  • chore(deps): bump prefix-dev/setup-pixi from 0.11.0 to 0.11.2 in the github-actions group by @dependabot[bot] in #467
  • adds g6.4xlarge to allowed instance types for brev integration tests by @jnwei in #469
  • Avoid enabling TF32 globally in tests by @GMNGeoffrey in #470
  • Biotite v2 compatibility changes by @jnwei in #464
  • Allow biotite 2 by @jnwei in #465
  • Feature dict refactor to reduce memory for validation / inference by @christinaflo in #462
  • Mark test_shape_large_bf16_train test as slow by @GMNGeoffrey in #478
  • chore: bump to 3.12 by @jandom in #480
  • Fail tests on leaked changes to fp32 matmul precision by @GMNGeoffrey in #471
  • ci: python floor checks by @jandom in #481
  • Fix/skip biotite ccd update by @jnwei in #474
  • Ci/gpu test marker by @jnwei in #472
  • fix: two bugs in extract_alignments_to_pair (crash + off-by-one) by @Pana-TsK in #350
  • fix: conformer generating timeout escape by @jandom in #483
  • test: add msa_mask/padding tests for create_msa_feature_precursor_of3 by @Pana-TsK in #346
  • perf: restrict frame-atom distance matrix to start-atom rows by @heathcliff233 in #455
  • [chore] update openfold3 release to v0.5.1 by @jnwei in #484
  • Remove rdkit<2026 pin by @jnwei in #485
  • Pin ruff version by @GMNGeoffrey in #489

New Contributors

Full Changelog: 0.5.0...0.5.1