From bd7b7413acee70e6e107836205db263fed3af08a Mon Sep 17 00:00:00 2001 From: Nathaniel Corley Date: Fri, 16 May 2025 13:48:49 -0700 Subject: [PATCH] feat: add runs n' poses val set (#210) * feat: add runs n' poses val set * chore: ruff * chore: remove from defaults --- configs/datasets/val/runs_and_poses.yaml | 11 +++++++++++ configs/experiment/pretrained/af3.yaml | 5 ++++- configs/validate.yaml | 6 +----- src/modelhub/validate.py | 12 ++++++++++-- 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 configs/datasets/val/runs_and_poses.yaml diff --git a/configs/datasets/val/runs_and_poses.yaml b/configs/datasets/val/runs_and_poses.yaml new file mode 100644 index 0000000..9f33615 --- /dev/null +++ b/configs/datasets/val/runs_and_poses.yaml @@ -0,0 +1,11 @@ +defaults: + - base + +dataset: + dataset_parser: + _target_: datahub.datasets.parsers.ValidationDFParserLikeAF3 + dataset: + _target_: datahub.datasets.datasets.PandasDataset + data: ${paths.data.pdb_data_dir}/runs_n_poses_entry_level_df.parquet + filters: + - "n_tokens_total < 1000" # Subset to reasonably-sized examples for efficiency diff --git a/configs/experiment/pretrained/af3.yaml b/configs/experiment/pretrained/af3.yaml index abb37fd..8ba3209 100644 --- a/configs/experiment/pretrained/af3.yaml +++ b/configs/experiment/pretrained/af3.yaml @@ -12,4 +12,7 @@ tags: project: af3 -ckpt_path: /net/software/containers/versions/modelhub_inference/ckpts/modelhub_af3_with_confidence_latest.ckpt +ckpt_config: + _target_: modelhub.utils.weights.CheckpointConfig + path: /net/software/containers/versions/modelhub_inference/ckpts/modelhub_af3_with_confidence_latest.ckpt + reset_optimizer: true diff --git a/configs/validate.yaml b/configs/validate.yaml index f6c9da6..af4899b 100644 --- a/configs/validate.yaml +++ b/configs/validate.yaml @@ -42,8 +42,4 @@ callbacks: dump_validation_structures_callback: dump_predictions: True one_model_per_file: False - dump_trajectories: False - -# passing checkpoint path required for validation -# DO NOT set here; set in the experiment config file -ckpt_path: ??? \ No newline at end of file + dump_trajectories: False \ No newline at end of file diff --git a/src/modelhub/validate.py b/src/modelhub/validate.py index c9bfe18..7d592c7 100755 --- a/src/modelhub/validate.py +++ b/src/modelhub/validate.py @@ -118,12 +118,20 @@ def validate(cfg: DictConfig) -> None: loader_cfg=cfg.dataloader["val"], ) + # ... load the checkpoint configuration, regardless of whether it's a path or a config + if "ckpt_path" in cfg and cfg.ckpt_path: + ckpt_path = cfg.ckpt_path + elif "ckpt_config" in cfg and cfg.ckpt_config: + assert ( + "path" in cfg.ckpt_config + ), "No checkpoint path provided in `ckpt_config`!" + ckpt_path = cfg.ckpt_config.path + # ... validate the model ranked_logger.info("Validating model...") - assert cfg.ckpt_path is not None, "No checkpoint path provided for validation!" trainer.validate( val_loaders=val_loaders, - ckpt_path=cfg.ckpt_path, + ckpt_path=ckpt_path, ) ranked_logger.info("Validation complete!")